转角C槽篇2020-11-17

作者: new_blash | 来源:发表于2020-11-17 16:56 被阅读0次

和C槽类似,只是参数多几个,判断方法多几个

public static string[] 转角C槽核心算法(string N_编码, string N_数量)
        {
            //5N400-400 N400-400 5DN400-400 DN400-400(忠旺体系的编码)
            //定义型材信息
            string[] 计算结果 = new string[6];//结果
            string[] 错误结果 = new string[1];//结果

            String[] N_无字母参数 = null;
            String[] N_无数字参数 = null;

            //去除编码中的符号和字母
            N_无字母参数 = N_编码.Split(new char[] { '-', 'P', 'J', 'Q', 'C', 'D', 'K', 'L', '/', '(', ')', 'A', 'B', 'E', 'F', 'G', 'H', 'I', 'J', 'M', 'N', 'O', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }, StringSplitOptions.RemoveEmptyEntries);
            //去除编码中的数字
            N_无数字参数 = N_编码.Split(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.' }, StringSplitOptions.RemoveEmptyEntries);
            //去除编码中的空格,然后转化为string类型
            String N_字符串 = String.Join("", N_无数字参数.Select(y => y.ToString()).ToArray());
            char[] N_字符数组 = N_字符串.ToCharArray();

            if (N_编码 != "" && N_数量 != "")
            {
                //判断获取到的编码是不是N类型,并保证编码中只有一个N或者DN字符
                switch (N_字符串)
                {
                    case "N-":
                        switch (N_无字母参数.Length)
                        {
                            //2个参数的算法 N***-***,给参数指定范围
                            case 2:
                                if (N_编码.Substring(0, 1) == "N")
                                {
                                    if (float.Parse(N_无字母参数[0]) <= 500 && float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[0]) >= 150 && float.Parse(N_无字母参数[1]) >= 150)
                                    {
                                        计算结果[0] = "型材1:100*150*" + N_无字母参数[0];//固定参数
                                        计算结果[1] = "型材1数量:" + N_数量;
                                        计算结果[2] = "型材2:100*150*" + N_无字母参数[1];//固定参数
                                        计算结果[3] = "型材2数量:" + N_数量;
                                        计算结果[4] = "封板:93.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                        计算结果[5] = "正常转角N槽";
                                        return 计算结果;
                                    }
                                    else
                                    {
                                        错误结果[0] = "数字过大或过小,请检查";
                                        return 错误结果;
                                    }
                                }
                                else
                                {
                                    错误结果[0] = "编码不全,无法计算";
                                    return 错误结果;
                                }
                                
                            //3个参数的算法
                            case 3:
                                if (float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[2]) <= 500 && float.Parse(N_无字母参数[1]) >= 150 && float.Parse(N_无字母参数[2]) >= 150)
                                {
                                    switch (N_无字母参数[0])
                                    {
                                        case "1":
                                            计算结果[0] = "型材1:110*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:110*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:103.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "2":
                                            计算结果[0] = "型材1:120*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:120*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:113.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "3":
                                            计算结果[0] = "型材1:130*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:130*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:123.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "4":
                                            计算结果[0] = "型材1:140*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:140*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:133.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "5":
                                            计算结果[0] = "型材1:150*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:150*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:143.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "6":
                                            计算结果[0] = "型材1:160*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:160*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:153.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "7":
                                            计算结果[0] = "型材1:170*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:170*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:163.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "8":
                                            计算结果[0] = "型材1:180*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:180*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:173.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "9":
                                            计算结果[0] = "型材1:190*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:190*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:183.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        case "20":
                                            计算结果[0] = "型材1:200*150*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:200*150*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:193.5*143.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角N槽";
                                            break;
                                        default://除以上类型之外的型号,这里不支持
                                            错误结果[0] = "不支持的型号,请检查";
                                            return 错误结果;
                                    }
                                    return 计算结果;
                                }
                                else
                                {
                                    错误结果[0] = "数字过大或过小,请检查";
                                    return 错误结果;
                                }
                            default://编码不对,不支持
                                错误结果[0] = "不支持的编码,请检查";
                                return 错误结果;
                        }

                    case "DN-"://DC型号的C槽计算
                        switch (N_无字母参数.Length)
                        {
                            //2个参数的算法 DN***-***,给参数指定范围
                            case 2:
                                if (N_编码.Substring(0, 2) == "DN")
                                {
                                    if (float.Parse(N_无字母参数[0]) <= 500 && float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[0]) >= 100 && float.Parse(N_无字母参数[1]) >= 100)
                                    {
                                        计算结果[0] = "型材1:100*100*" + N_无字母参数[0];//固定参数
                                        计算结果[1] = "型材1数量:" + N_数量;
                                        计算结果[2] = "型材2:100*100*" + N_无字母参数[1];//固定参数
                                        计算结果[3] = "型材2数量:" + N_数量;
                                        计算结果[4] = "封板:93.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                        计算结果[5] = "正常转角DN槽";
                                        return 计算结果;
                                    }
                                    else
                                    {
                                        错误结果[0] = "数字过大或过小,请检查";
                                        return 错误结果;
                                    }
                                }
                                else
                                {
                                    错误结果[0] = "编码不全,无法计算";
                                    return 错误结果;
                                }
                            //3个参数的算法
                            case 3:
                                if (float.Parse(N_无字母参数[1]) <= 500 && float.Parse(N_无字母参数[2]) <= 500 && float.Parse(N_无字母参数[1]) >= 100 && float.Parse(N_无字母参数[2]) >= 100)
                                {
                                    switch (N_无字母参数[0])
                                    {
                                        case "1":
                                            计算结果[0] = "型材1:110*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:110*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:103.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "2":
                                            计算结果[0] = "型材1:120*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:120*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:113.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "3":
                                            计算结果[0] = "型材1:130*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:130*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:123.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "4":
                                            计算结果[0] = "型材1:140*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:140*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:133.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "5":
                                            计算结果[0] = "型材1:100*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:100*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:93.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "6":
                                            计算结果[0] = "型材1:160*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:160*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:153.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "7":
                                            计算结果[0] = "型材1:170*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:170*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:163.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "8":
                                            计算结果[0] = "型材1:180*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:180*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:173.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "9":
                                            计算结果[0] = "型材1:190*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:190*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:183.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        case "20":
                                            计算结果[0] = "型材1:200*100*" + N_无字母参数[1];//固定参数
                                            计算结果[1] = "型材1数量:" + N_数量;
                                            计算结果[2] = "型材2:200*100*" + N_无字母参数[2];//固定参数
                                            计算结果[3] = "型材2数量:" + N_数量;
                                            计算结果[4] = "封板:193.5*93.5 共:" + (2 * int.Parse(N_数量)).ToString() + "件";
                                            计算结果[5] = "正常转角DN槽";
                                            break;
                                        default://除以上类型之外的型号,这里不支持
                                            错误结果[0] = "不支持的型号,请检查";
                                            return 错误结果;
                                    }
                                    return 计算结果;
                                }
                                else
                                {
                                    错误结果[0] = "数字过大或过小,请检查";
                                    return 错误结果;
                                }
                            default://编码不对,不支持
                                错误结果[0] = "不支持的编码,请检查";
                                return 错误结果;
                        }
                    default:
                        //不是C槽的编码,不支持
                        错误结果[0] = "编码不是转角C槽,请检查";
                        return 错误结果;
                }
            }
            else
            {
                if (N_编码 == "" && N_数量 == "")
                {
                    错误结果[0] = "错误: 编码数量都没有我算你妹?";
                }
                else if (N_编码 == "")
                {
                    错误结果[0] = "错误: 编码没有怎么算?";
                }
                else if (N_编码 == "")
                {
                    错误结果[0] = "错误: 数量没填我特么怎么算?";
                }
                return 错误结果;
            }
        }

运行结果:


image.png

下一篇,计算编码类别,未完待续...............

相关文章

  • 转角C槽篇2020-11-17

    和C槽类似,只是参数多几个,判断方法多几个 运行结果: 下一篇,计算编码类别,未完待续...............

  • C槽篇,标准C槽的识别2020-11-11

    识别C槽的算法,仅支持不带后缀的编码,后面会更新非标C槽算法 经过前面2篇文章的学习,你们已经不是小白了,后面注释...

  • 周二 2020-11-17 23:30 - 06:33 阴 11

    2020-11-17 生气的一天,好气啊,还是要怂周二 2020-11-17 23:30 - 06:33 阴 11...

  • 魏城《首听肖一》

    首听《肖一》 作者:魏城 写于2020-11-17 伦敦 ...............................

  • UG NX10.0入门图文教程,两个简单几何体(同步建模使用)

    模型一 图形分析:主要为一个长方体上表面挖出矩形斜面槽,有一定旋转角度,根据蓝色线条为对称,可知槽位于正中间进行旋...

  • UG10.0同步建模之两个简单几何体

    模型一 图形分析:主要为一个长方体上表面挖出矩形斜面槽,有一定旋转角度,根据蓝色线条为对称,可知槽位于正中间进行旋...

  • C++信号槽

    什么是信号槽? 简单来说,信号槽是观察者模式的一种实现,或者说是一种升华。 一个信号就是一个能够被观察的事件,或者...

  • 试点店铺空吧

    敬酒?篇 吐槽篇 团队建设改进方案

  • 支撑篇,标准支撑的识别2020-11-10

    识别支撑的算法,仅支持不带后缀的编码,后面会更新非标支撑算法 调用方法: 结果如下: 完事,下一篇标准C槽的算法,...

  • 吐槽篇

    早上娃有点敏感,毕竟刚过了一个周末,还不想让奶奶接手,奶奶脸色立马上来了,我娃更是哭闹不停。说实话,对于一个性格极...

网友评论

    本文标题:转角C槽篇2020-11-17

    本文链接:https://www.haomeiwen.com/subject/gatfiktx.html