示例#1
0
        public LoadComposeBase(StruCalseBaseParas para, StruLineParas[] lineParas, HangingPointSettingParas hpParas, TowerTemplate template, string tablePath)
        {
            ProcessString  = new List <string>();
            Process2String = new List <string>();

            Paras          = para;
            LineParasArr   = lineParas;
            HPSettingParas = hpParas;
            Template       = template;

            DicGroup = StruLoadComposeDicReader.Read(GetDicPath());
            LoadDics = StruLoadComposeDicReader.DicRead(GetLoadDicPath());

            wireNum          = Template.Wires.Count;
            earthWireNum     = Template.Wires.Where(item => item.Contains("地")).Count();
            workConditionNum = Template.WorkConditongs.Count;

            DataSet ds = ExcelUtils.ReadExcel(tablePath);

            ReadWorkCondition(ds);
            ReadElectricLoad(ds);
        }
示例#2
0
        public void TestMethod6()
        {
            var openFileDialog = new Microsoft.Win32.OpenFileDialog()
            {
                Filter = "DLL Files (*.dll)|*.dll"
            };

            if (openFileDialog.ShowDialog() != true)
            {
                return;
            }

            var openTemplateDialog = new Microsoft.Win32.OpenFileDialog()
            {
                Filter = "Excel Files (*.xlsx)|*.xlsx"
            };

            if (openTemplateDialog.ShowDialog() != true)
            {
                return;
            }

            var saveFileDialog = new Microsoft.Win32.SaveFileDialog()
            {
                Filter = "Dat Files (*.dat)|*.dat",
            };

            if (saveFileDialog.ShowDialog() != true)
            {
                return;
            }

            DES.DesDecrypt(openFileDialog.FileName, saveFileDialog.FileName, "12345678");

            TowerTemplateReader TemplateReader = new TowerTemplateReader(TowerTypeEnum.CornerTower);

            Mode.TowerTemplate template = TemplateReader.Read(saveFileDialog.FileName);

            StruCalseBaseParas formulaParas = new StruCalseBaseParas();

            formulaParas.Type              = TowerTypeEnum.CornerTower;
            formulaParas.LoadRatio         = 1;
            formulaParas.IsMethod1Selected = false;

            //结构重要性系数
            formulaParas.R1Install = 1.0f;
            formulaParas.R0Normal  = 1.1f;

            //荷载分项系数
            formulaParas.RGBad  = 1.2f;
            formulaParas.RGGood = 1.00f;
            formulaParas.RQ     = 1.4f;
            //formulaParas.RGCheck01 = 1.3f;

            //可变荷载组合系数
            formulaParas.VcFNormal    = 1f;
            formulaParas.VcFInstall   = 0.9f;
            formulaParas.VcFBroken    = 0.9f;
            formulaParas.VcFUnevenIce = 0.9f;
            formulaParas.VcFCheck     = 0.75f;

            //其他参数
            formulaParas.WindAdjustFactor      = 1f;
            formulaParas.OtherWindAdjustFactor = 1.00f;
            formulaParas.DynamicCoef           = 1.1f;
            formulaParas.LiftCoefJumper        = 2f;
            formulaParas.TempStayWireAngle     = 45f;
            formulaParas.TractionAgnle         = 20f;

            formulaParas.IsMethod1Selected = false;

            //formulaParas.RA = 1.5f;

            StruLineParas[] lineParas = new StruLineParas[] {
                new StruLineParas
                {
                    TstringNum       = 0,
                    WireExtraLoad    = 4,
                    TwireExtraLoad   = 0,
                    AnchorTension    = 47.49f,
                    TemporaryTension = 10f,
                    AngleMin         = 20f,
                    AngleMax         = 40f,
                    isTurnRight      = true,
                    DrawingCoef      = 1.05f,
                    PulleyTensionDif = 0,
                },
                new StruLineParas
                {
                    TstringNum       = 0,
                    WireExtraLoad    = 4,
                    TwireExtraLoad   = 0,
                    AnchorTension    = 47.49f,
                    TemporaryTension = 10f,
                    AngleMin         = 20f,
                    AngleMax         = 40f,
                    isTurnRight      = true,
                    DrawingCoef      = 1.05f,
                    PulleyTensionDif = 0,
                },
                new StruLineParas
                {
                    TstringNum       = 1,
                    WireExtraLoad    = 12,
                    TwireExtraLoad   = 6,
                    AnchorTension    = 412.14f,
                    TemporaryTension = 40f,
                    AngleMin         = 20f,
                    AngleMax         = 40f,
                    isTurnRight      = true,
                    DrawingCoef      = 1.1f,
                    PulleyTensionDif = 50,
                },
                new StruLineParas
                {
                    TstringNum       = 1,
                    WireExtraLoad    = 12,
                    TwireExtraLoad   = 6,
                    AnchorTension    = 412.14f,
                    TemporaryTension = 40f,
                    AngleMin         = 20f,
                    AngleMax         = 40f,
                    isTurnRight      = true,
                    DrawingCoef      = 1.1f,
                    PulleyTensionDif = 50,
                },
                new StruLineParas
                {
                    TstringNum       = 1,
                    WireExtraLoad    = 12,
                    TwireExtraLoad   = 6,
                    AnchorTension    = 412.14f,
                    TemporaryTension = 40f,
                    AngleMin         = 20f,
                    AngleMax         = 40f,
                    isTurnRight      = true,
                    DrawingCoef      = 1.1f,
                    PulleyTensionDif = 50,
                },
            };

            List <HangingPointParas> normalList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index      = 1,
                    WireType   = "左地",
                    StringType = "常规",
                    Points     = new string[] { "11", "13" }
                },
                new HangingPointParas()
                {
                    Index      = 2,
                    WireType   = "右地",
                    StringType = "常规",
                    Points     = new string[] { "40", "42" }
                },
                new HangingPointParas()
                {
                    Index      = 3,
                    WireType   = "左导",
                    StringType = "常规",
                    Points     = new string[] { "1511", "1513", "1601", "1603" }
                },
                new HangingPointParas()
                {
                    Index      = 4,
                    WireType   = "中导",
                    StringType = "常规",
                    Points     = new string[] { "1060", "1062" }
                },
                new HangingPointParas()
                {
                    Index      = 5,
                    WireType   = "右导",
                    StringType = "常规",
                    Points     = new string[] { "1600", "1602", "1510", "1512" }
                },
            };

            List <HangingPointParas> normalTList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index      = 1,
                    WireType   = "左地",
                    StringType = "无跳线"
                },
                new HangingPointParas()
                {
                    Index      = 2,
                    WireType   = "右地",
                    StringType = "无跳线",
                },
                new HangingPointParas()
                {
                    Index      = 3,
                    WireType   = "左导",
                    StringType = "I串",
                    Points     = new string[] { "1481", "1483" }
                },
                new HangingPointParas()
                {
                    Index      = 4,
                    WireType   = "中导",
                    StringType = "I串",
                    Points     = new string[] { "490", "492" }
                },
                new HangingPointParas()
                {
                    Index      = 5,
                    WireType   = "右导",
                    StringType = "I串",
                    Points     = new string[] { "1480", "1482" }
                },
            };

            List <HangingPointParas> intallTList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index      = 1,
                    WireType   = "左导",
                    StringType = "I串",
                    Array      = "第a组",
                    Points     = new string[] { "1481", "1483" }
                },
                new HangingPointParas()
                {
                    Index      = 2,
                    WireType   = "中导",
                    StringType = "I串",
                    Array      = "第a组",
                    Points     = new string[] { "490", "492" }
                },
                new HangingPointParas()
                {
                    Index      = 3,
                    WireType   = "右导",
                    StringType = "I串",
                    Array      = "第a组",
                    Points     = new string[] { "1480", "1482" }
                },
            };

            List <HangingPointParas> turingList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index      = 1,
                    WireType   = "左导",
                    StringType = "I串",
                    Points     = new string[] { "1511", "1513", "1601", "1603" }
                },
                new HangingPointParas()
                {
                    Index      = 2,
                    WireType   = "中导",
                    StringType = "I串",
                    Points     = new string[] { "1040", "1042", "1050", "1052" }
                },
                new HangingPointParas()
                {
                    Index      = 3,
                    WireType   = "右导",
                    StringType = "I串",
                    Points     = new string[] { "1600", "1602", "1510", "1512" }
                },
            };

            HangingPointSettingParas ratioParas = new HangingPointSettingParas
            {
                BLTQ   = 0.5f,
                BLTH   = 0.5f,
                BLTZ   = 0,
                BLDZTQ = 0.5f,
                BLDZTH = 0.5f,
                BLDZTZ = 0,

                IsTuringPointSeleced = true,

                NormalXYPoints  = normalList,
                NormalZPoints   = normalTList,
                InstallXYPoints = intallTList,
                InstallZPoints  = intallTList,
                TurningPoints   = turingList,
            };

            LoadComposeTensionTower loadCornerTower = new LoadComposeTensionTower(formulaParas, lineParas, ratioParas, template, openTemplateDialog.FileName);

            string filePath = saveFileDialog.FileName.Substring(0, saveFileDialog.FileName.Length - 3) + "calc";

            loadCornerTower.CalculateLoadDistribute(filePath);

            string filePath2 = saveFileDialog.FileName.Substring(0, saveFileDialog.FileName.Length - 3) + "div";
            List <StruCalsPointLoad> loadList = loadCornerTower.CalsPointsLoad(filePath2);

            string filePath3 = saveFileDialog.FileName.Substring(0, saveFileDialog.FileName.Length - 3) + "load";

            loadCornerTower.GenerateLoadFile(filePath3, loadList);
        }
 public FormulaLineTower(StruCalseBaseParas paras) : base(paras)
 {
 }
 public LoadComposeLineCornerTower(StruCalseBaseParas para, StruLineParas[] lineParas, HangingPointSettingParas ratioParas, TowerTemplate template, string tablePath)
     : base(para, lineParas, ratioParas, template, tablePath)
 {
     formula = new FormulaLineLineCornerTower(para);
 }
示例#5
0
 public FormulaTensionTower(StruCalseBaseParas paras) : base(paras)
 {
 }
示例#6
0
        public void TestMethod7()
        {
            var openFileDialog = new Microsoft.Win32.OpenFileDialog()
            {
                Filter = "DLL Files (*.dll)|*.dll"
            };

            if (openFileDialog.ShowDialog() != true)
            {
                return;
            }

            var openTemplateDialog = new Microsoft.Win32.OpenFileDialog()
            {
                Filter = "Excel Files (*.xlsx)|*.xlsx"
            };

            if (openTemplateDialog.ShowDialog() != true)
            {
                return;
            }

            var saveFileDialog = new Microsoft.Win32.SaveFileDialog()
            {
                Filter = "Dat Files (*.dat)|*.dat",
            };

            if (saveFileDialog.ShowDialog() != true)
            {
                return;
            }

            DES.DesDecrypt(openFileDialog.FileName, saveFileDialog.FileName, "12345678");

            TowerTemplateReader TemplateReader = new TowerTemplateReader(TowerTypeEnum.LineTower);

            Mode.TowerTemplate template = TemplateReader.Read(saveFileDialog.FileName);

            StruCalseBaseParas formulaParas = new StruCalseBaseParas();

            formulaParas.Type      = TowerTypeEnum.LineTower;
            formulaParas.LoadRatio = 1;

            //结构重要性系数
            formulaParas.R1Install = 1f;
            formulaParas.R0Normal  = 1.1f;

            //荷载分项系数
            formulaParas.RGBad  = 1.2f;
            formulaParas.RGGood = 1f;
            formulaParas.RQ     = 1.4f;

            //可变荷载组合系数
            formulaParas.VcFNormal    = 1f;
            formulaParas.VcFInstall   = 0.9f;
            formulaParas.VcFBroken    = 0.9f;
            formulaParas.VcFUnevenIce = 0.9f;
            formulaParas.VcFCheck     = 0.75f;

            //其他参数
            formulaParas.WindAdjustFactor      = 1f;
            formulaParas.OtherWindAdjustFactor = 1f;
            formulaParas.DynamicCoef           = 1.1f;
            formulaParas.AnchorWindCoef        = 0.7f;
            formulaParas.AnchorGravityCoef     = 0.7f;
            formulaParas.AnchorAngle           = 20f;

            formulaParas.IsMethod1Selected = true;

            StruLineParas[] lineParas = new StruLineParas[] {
                new StruLineParas
                {
                    HoistingCoef     = 2f,
                    WireExtraLoad    = 4,
                    AnchorTension    = 43.32f,
                    PulleyTensionDif = 0,
                    DrawingCoef      = 1.2f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2f,
                    WireExtraLoad    = 4,
                    AnchorTension    = 43.32f,
                    PulleyTensionDif = 0,
                    DrawingCoef      = 1.2f
                },
                new StruLineParas
                {
                    HoistingCoef     = 1.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 829.39f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.2f
                },
                new StruLineParas
                {
                    HoistingCoef     = 1.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 829.39f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.2f
                }
            };

            List <HangingPointParas> normalList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index      = 1,
                    WireType   = "左地",
                    StringType = "常规",
                    Points     = new string[] { "11", "13" }
                },
                new HangingPointParas()
                {
                    Index      = 2,
                    WireType   = "右地",
                    StringType = "常规",
                    Points     = new string[] { "10", "12" }
                },
                new HangingPointParas()
                {
                    Index      = 3,
                    WireType   = "左导",
                    StringType = "V1",
                    Points     = new string[] { "421", "1241" }
                },
                new HangingPointParas()
                {
                    Index      = 4,
                    WireType   = "右导",
                    StringType = "V1",
                    Points     = new string[] { "1240", "420" }
                }
            };

            List <HangingPointParas> installList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index    = 1,
                    WireType = "左导",
                    Array    = "第a组",
                    Points   = new string[] { "671", "673", "781", "783" }
                },
                new HangingPointParas()
                {
                    Index    = 2,
                    WireType = "右导",
                    Array    = "第a组",
                    Points   = new string[] { "670", "672", "780", "782" }
                },
                new HangingPointParas()
                {
                    Index    = 3,
                    WireType = "左导",
                    Array    = "第b组",
                    Points   = new string[] { "611", "613", "671", "673", "781", "783", "791", "793" }
                },
                new HangingPointParas()
                {
                    Index    = 4,
                    WireType = "右导",
                    Array    = "第b组",
                    Points   = new string[] { "610", "612", "670", "672", "780", "782", "790", "792" }
                },
                new HangingPointParas()
                {
                    Index    = 5,
                    WireType = "左导",
                    Array    = "第c组",
                    Points   = new string[] { "671", "673", "781", "783" }
                },
                new HangingPointParas()
                {
                    Index    = 6,
                    WireType = "右导",
                    Array    = "第c组",
                    Points   = new string[] { "670", "672", "780", "782" }
                },
            };

            List <HangingPointParas> turningPoingts = new List <HangingPointParas>
            {
                new HangingPointParas
                {
                    Index    = 1,
                    WireType = "左导",
                    Angle    = 90,
                    Points   = new string[] { "1001", "1003" }
                },
                new HangingPointParas
                {
                    Index    = 2,
                    WireType = "右导",
                    Angle    = -90,
                    Points   = new string[] { "1000", "1002" }
                },
            };


            List <VStringParas> vStringList = new List <VStringParas>()
            {
                new VStringParas()
                {
                    Index       = "V1",
                    L1          = 8350,
                    H1          = 9940,
                    L2          = 8350,
                    H2          = 9940,
                    StressLimit = 0,
                    Angle       = 0
                },
            };

            HangingPointSettingParas ratioParas = new HangingPointSettingParas()
            {
                GCQ = 0.5f,
                GCH = 0.5f,
                GXN = -1,
                GXW = 2,

                DQWQ = 0.7f,
                DQWH = 0.3f,
                DQCQ = 0.7f,
                DQCH = 0.3f,

                DDWQ = 0.7f,
                DDWH = 0.3f,
                DDCQ = 0.7f,
                DDCH = 0.3f,

                DMWQ = 0.7f,
                DMWH = 0.3f,
                DMCQ = 0.7f,
                DMCH = 0.3f,

                IsTuringPointSeleced = true,

                NormalXYPoints  = normalList,
                NormalZPoints   = normalList,
                InstallXYPoints = installList,
                InstallZPoints  = installList,
                TurningPoints   = turningPoingts,
                VStrings        = vStringList,
            };

            LoadComposeLineTower loadLineTower = new LoadComposeLineTower(formulaParas, lineParas, ratioParas, template, openTemplateDialog.FileName);

            string filePath = saveFileDialog.FileName.Substring(0, saveFileDialog.FileName.Length - 3) + "cals";

            loadLineTower.CalculateLoadDistribute(filePath);

            string filePath2 = saveFileDialog.FileName.Substring(0, saveFileDialog.FileName.Length - 3) + "div";
            List <StruCalsPointLoad> loadList = loadLineTower.CalsPointsLoad(filePath2);

            string filePath3 = saveFileDialog.FileName.Substring(0, saveFileDialog.FileName.Length - 3) + "load";

            loadLineTower.GenerateLoadFile(filePath3, loadList);
        }
示例#7
0
        protected override void InitializeData(string towerName)
        {
            base.InitializeData(towerName);

            Template = struCalsParas.Template;

            BaseParas = struCalsParas.BaseParas;

            WorkConditions = new ObservableCollection <WorkConditionComboSpec>(struCalsParas.WorkConditions);

            List <Column> columns = new List <Column>();

            columns.Add(new HeaderColumn()
            {
                Settings     = SettingsType.Binding, FieldName = "Index", Header = "序号", Width = "50",
                AllowEditing = false.ToString(),
            });
            columns.Add(new HeaderColumn()
            {
                Settings = SettingsType.Binding, FieldName = "IsCalculate", Header = "选择与否", Width = "60"
            });
            columns.Add(new HeaderColumn()
            {
                Settings     = SettingsType.Binding, FieldName = "WorkConditionCode", Header = "工况", Width = "150",
                AllowEditing = false.ToString(),
            });
            if (Template.TowerType != "直线塔")
            {
                columns.Add(new HeaderColumn()
                {
                    Settings     = SettingsType.Binding, FieldName = "TensionAngleCode", Header = "张力角", Width = "160",
                    AllowEditing = false.ToString(),
                });
            }
            if (Template.TowerType == "转角塔" || Template.TowerType == "分支塔" || Template.TowerType == "终端塔")
            {
                columns.Add(new HeaderColumn()
                {
                    Settings     = SettingsType.Binding, FieldName = "VertialLoadCode", Header = "垂直载荷", Width = "160",
                    AllowEditing = false.ToString(),
                });
            }
            columns.Add(new HeaderColumn()
            {
                Settings     = SettingsType.Binding, FieldName = "WindDirectionCode", Header = "风向", Width = "80",
                AllowEditing = false.ToString(),
            });

            for (int i = 0; i < Template.Wires.Count; i++)
            {
                columns.Add(new HeaderColumn()
                {
                    Settings     = SettingsType.Binding, FieldName = "Wire" + (i + 1).ToString(), Header = Template.Wires[i], Width = "100",
                    AllowEditing = false.ToString(),
                });
            }

            columns.Add(new HeaderColumn()
            {
                Settings     = SettingsType.Binding, FieldName = "WorkComment", Header = "注释", Width = "300",
                AllowEditing = false.ToString(),
            });

            Columns = new ObservableCollection <Column>(columns);
        }
 //此构造函数用于单元测试
 public StruCalsParasCompose(StruCalseBaseParas baseParas, List <StruLineParas> lineParas, List <HangingPointSettingParas> hpSettingParas)
 {
     BaseParas       = baseParas;
     LineParas       = lineParas;
     HPSettingsParas = hpSettingParas;
 }
        public void TestMethod01_StruCalsParasSerializer()
        {
            var saveFileDialog = new Microsoft.Win32.SaveFileDialog()
            {
                Filter = "XML Files (*.xml)|*.xml",
            };

            if (saveFileDialog.ShowDialog() != true)
            {
                return;
            }

            StruCalseBaseParas formulaParas = new StruCalseBaseParas();

            formulaParas.Type      = TowerTypeEnum.LineTower;
            formulaParas.LoadRatio = 1;

            //结构重要性系数
            formulaParas.R1Install = 1f;
            formulaParas.R0Normal  = 1.1f;

            //荷载分项系数
            formulaParas.RGBad  = 1.3f;
            formulaParas.RGGood = 1.05f;
            formulaParas.RQ     = 1.5f;
            //formulaParas.RGCheck01 = 1.3f;

            //可变荷载组合系数
            formulaParas.VcFNormal    = 1.1f;
            formulaParas.VcFInstall   = 0.95f;
            formulaParas.VcFBroken    = 0.95f;
            formulaParas.VcFUnevenIce = 0.95f;
            formulaParas.VcFCheck     = 0.8f;

            //其他参数
            formulaParas.WindAdjustFactor      = 1.3f;
            formulaParas.OtherWindAdjustFactor = 0.95f;
            formulaParas.DynamicCoef           = 1.2f;
            formulaParas.AnchorWindCoef        = 0.8f;
            formulaParas.AnchorGravityCoef     = 0.8f;
            formulaParas.AnchorAngle           = 25f;

            StruLineParas[] lineParas = new StruLineParas[] {
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 4,
                    AnchorTension    = 61.20f,
                    PulleyTensionDif = 0,
                    DrawingCoef      = 1.3f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 4,
                    AnchorTension    = 61.20f,
                    PulleyTensionDif = 0,
                    DrawingCoef      = 1.3f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 375.23f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.3f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 375.23f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.3f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 375.23f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.3f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 375.23f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.3f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 375.23f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.3f
                },
                new StruLineParas
                {
                    HoistingCoef     = 2.5f,
                    WireExtraLoad    = 8,
                    AnchorTension    = 375.23f,
                    PulleyTensionDif = 50,
                    DrawingCoef      = 1.3f
                }
            };

            List <HangingPointParas> normalList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index      = 1,
                    WireType   = "左地",
                    StringType = "常规",
                    Points     = new string[] { "91", "93" }
                },
                new HangingPointParas()
                {
                    Index      = 2,
                    WireType   = "右地",
                    StringType = "常规",
                    Points     = new string[] { "90", "92" }
                },
                new HangingPointParas()
                {
                    Index      = 3,
                    WireType   = "左上导",
                    StringType = "I串",
                    Points     = new string[] { "291" }
                },
                new HangingPointParas()
                {
                    Index      = 4,
                    WireType   = "右上导",
                    StringType = "I串",
                    Points     = new string[] { "290" }
                },
                new HangingPointParas()
                {
                    Index      = 5,
                    WireType   = "左中导",
                    StringType = "I串",
                    Points     = new string[] { "671", "673" }
                },
                new HangingPointParas()
                {
                    Index      = 6,
                    WireType   = "右中导",
                    StringType = "I串",
                    Points     = new string[] { "670", "672" }
                },
                new HangingPointParas()
                {
                    Index      = 7,
                    WireType   = "左下导",
                    StringType = "I串",
                    Points     = new string[] { "1111", "1113" }
                },
                new HangingPointParas()
                {
                    Index      = 8,
                    WireType   = "右下导",
                    StringType = "I串",
                    Points     = new string[] { "1110", "1112" }
                },
            };

            List <HangingPointParas> installList = new List <HangingPointParas>()
            {
                new HangingPointParas()
                {
                    Index    = 1,
                    WireType = "左上导",
                    Array    = "第a组",
                    Points   = new string[] { "1", "2" }
                },
                new HangingPointParas()
                {
                    Index    = 2,
                    WireType = "右上导",
                    Array    = "第a组",
                    Points   = new string[] { "3", "4" }
                },
                new HangingPointParas()
                {
                    Index    = 3,
                    WireType = "左中导",
                    Array    = "第a组",
                    Points   = new string[] { "11", "22" }
                },
                new HangingPointParas()
                {
                    Index    = 4,
                    WireType = "右中导",
                    Array    = "第a组",
                    Points   = new string[] { "33", "44" }
                },
                new HangingPointParas()
                {
                    Index    = 5,
                    WireType = "左下导",
                    Array    = "第a组",
                    Points   = new string[] { "111", "222" }
                },
                new HangingPointParas()
                {
                    Index    = 6,
                    WireType = "右下导",
                    Array    = "第a组",
                    Points   = new string[] { "333", "444" }
                },
            };

            HangingPointSettingParas ratioParas = new HangingPointSettingParas()
            {
                GCQ = 0.5f,
                GCH = 0.5f,
                GXN = -1,
                GXW = 2,

                DQWQ = 0.5f,
                DQWH = 0.5f,
                DQCQ = 0.6f,
                DQCH = 0.4f,

                DDWQ = 0.5f,
                DDWH = 0.5f,
                DDCQ = 0.6f,
                DDCH = 0.4f,

                DMWQ = 0.5f,
                DMWH = 0.5f,
                DMCQ = 0.6f,
                DMCH = 0.4f,

                NormalXYPoints  = normalList,
                NormalZPoints   = normalList,
                InstallXYPoints = installList,
                InstallZPoints  = installList,
            };


            XmlUtils.Serializer(saveFileDialog.FileName, new StruCalsParasCompose(formulaParas, new List <StruLineParas>(lineParas), new List <HangingPointSettingParas> {
                ratioParas,
            }));

            StruCalsParasCompose calsParas = XmlUtils.Deserializer <StruCalsParasCompose>(saveFileDialog.FileName);
        }
示例#10
0
        protected override void InitializeData(string towerName)
        {
            base.InitializeData(towerName);

            Template = struCalsParas.Template;

            BaseParas = struCalsParas.BaseParas;

            var hpSettingsParas = struCalsParas.HPSettingsParas;

            if (struCalsParas.ResultPointLoad == null)
            {
                return;
            }

            List <StruCalsPointLoad> pointLoads = struCalsParas.ResultPointLoad;
            List <int> points = pointLoads.Select(p => p.Name).Distinct().ToList();

            points.Sort();

            foreach (var point in points)
            {
                for (int j = 0; j < Template.WorkConditionCombos.Count; j++)
                {
                    StruCalsResult resultItem = new StruCalsResult()
                    {
                        Index         = j + 1,
                        PointNum      = point,
                        WorkCondition = Template.WorkConditionCombos[j].WorkComment,
                        Fx            = new float[hpSettingsParas.Count],
                        Fy            = new float[hpSettingsParas.Count],
                        Fz            = new float[hpSettingsParas.Count],
                    };

                    for (int k = 0; k < hpSettingsParas.Count; k++)
                    {
                        resultItem.Fx[k] = pointLoads.Where(p => p.Name == point && p.WorkConditionId == j && p.Orientation == "X" &&
                                                            p.HPSettingName == hpSettingsParas[k].HangingPointSettingName).Sum(p => p.Load);
                        resultItem.Fx[k] = (float)Math.Round(resultItem.Fx[k], 2);
                        resultItem.Fy[k] = pointLoads.Where(p => p.Name == point && p.WorkConditionId == j && p.Orientation == "Y" &&
                                                            p.HPSettingName == hpSettingsParas[k].HangingPointSettingName).Sum(p => p.Load);
                        resultItem.Fy[k] = (float)Math.Round(resultItem.Fy[k], 2);
                        resultItem.Fz[k] = pointLoads.Where(p => p.Name == point && p.WorkConditionId == j && p.Orientation == "Z" &&
                                                            p.HPSettingName == hpSettingsParas[k].HangingPointSettingName).Sum(p => p.Load);
                        resultItem.Fz[k] = (float)Math.Round(resultItem.Fz[k], 2);
                    }

                    pointlist.Add(resultItem);
                }

                _points.Add(new AccordionItem(point.ToString(), (e) => { SeletedPointChanged(e); }));
            }

            if (Points.Count > 0)
            {
                SeletedPointChanged(Points[0]);
            }

            Bands = new ObservableCollection <Band>()
            {
                new Band()
                {
                    Header = " ",

                    ChildColumns = new ObservableCollection <HeaderColumn>()
                    {
                        new HeaderColumn()
                        {
                            Settings = SettingsType.Binding, FieldName = "Index", Header = "序号", Width = "50"
                        },
                        new HeaderColumn()
                        {
                            Settings = SettingsType.Binding, FieldName = "WorkCondition", Header = "工况", Width = "270"
                        },
                    }, Width = "30"
                }
            };

            for (int i = 0; i < hpSettingsParas.Count; i++)
            {
                Bands.Add(new Band()
                {
                    Header = hpSettingsParas[i].HangingPointSettingName,

                    ChildColumns = new ObservableCollection <HeaderColumn>()
                    {
                        new HeaderColumn()
                        {
                            Settings = SettingsType.Binding, FieldName = "Fx[" + i.ToString() + "]", Header = "Fx", Width = "50"
                        },
                        new HeaderColumn()
                        {
                            Settings = SettingsType.Binding, FieldName = "Fy[" + i.ToString() + "]", Header = "Fy", Width = "50"
                        },
                        new HeaderColumn()
                        {
                            Settings = SettingsType.Binding, FieldName = "Fz[" + i.ToString() + "]", Header = "Fz", Width = "50"
                        },
                    }
                });
            }
        }
示例#11
0
 public FormulaTower(StruCalseBaseParas paras)
 {
     Paras = paras;
 }