Beispiel #1
0
        public StruCalsLibBaseDataViewModel()
        {
            var libParas = GlobalInfo.GetInstance().GetStruCalsLibParas();

            if (libParas == null)
            {
                return;
            }

            OverhangingTowerParas = libParas.OverhangingTowerBaseParas;
            TensionTowerParas     = libParas.TensionTowerBaseParas;
        }
        /// <summary>
        /// 从配置文件中获取默认参数
        /// </summary>
        protected void SetDefaultValue(TowerTypeEnum towerType)
        {
            var libParas = GlobalInfo.GetInstance().GetStruCalsLibParas();

            //有配置文件就从配置文件中读出
            if (libParas != null)
            {
                var     config = new MapperConfiguration(x => x.CreateMap <StruCalsLibBaseParas, StruCalseBaseParas>().ForMember(des => des.Type, item => item.Ignore()));
                IMapper mapper = new Mapper(config);

                StruCalsLibBaseParas libBaseParas = (towerType == TowerTypeEnum.LineTower || towerType == TowerTypeEnum.LineCornerTower) ? libParas.OverhangingTowerBaseParas : libParas.TensionTowerBaseParas;

                BaseParas = mapper.Map <StruCalseBaseParas>(libBaseParas);

                //这种初始化有点问题,当两种标准的共同参数的值取不一样时会有错误
                //正确的做法是应该是在加入库时,就选择标准。
                //但这种做法两种标准切换时,两种标准共同参数取值不一样时,仍然无法切换到正确的值,
                //故维持现在的做法。
                BaseParas.RGBad        = libBaseParas.BaseParasGB50545.RGBad;
                BaseParas.RGGood       = libBaseParas.BaseParasGB50545.RGGood;
                BaseParas.RQ           = libBaseParas.BaseParasGB50545.RQ;
                BaseParas.VcFInstall   = libBaseParas.BaseParasGB50545.VcFInstall;
                BaseParas.VcFBroken    = libBaseParas.BaseParasGB50545.VcFBroken;
                BaseParas.VcFUnevenIce = libBaseParas.BaseParasGB50545.VcFUnevenIce;
                BaseParas.VcFNormal    = libBaseParas.BaseParasGB50545.VcFNormal;
                BaseParas.VcFCheck     = libBaseParas.BaseParasGB50545.VcFCheck;

                BaseParas.RGOverturn = libBaseParas.BaseParasDLT5551.RGOverturn;
                BaseParas.VcFIce     = libBaseParas.BaseParasDLT5551.VcFIce;
                BaseParas.VcFCold    = libBaseParas.BaseParasDLT5551.VcFCold;

                BaseParas.LoadRatio = 1;
                BaseParas.R1Install = 1;
                BaseParas.R0Normal  = 1;

                List <StruLineParas> lineParas = new List <StruLineParas>();
                for (int i = 0; i < Template.Wires.Count; i++)
                {
                    lineParas.Add(new StruLineParas()
                    {
                        Index       = i + 1,
                        WireType    = Template.Wires[i],
                        DrawingCoef = ((towerType == TowerTypeEnum.LineTower || towerType == TowerTypeEnum.LineCornerTower) ? libParas.OverhangingTowerBaseParas.DrawingCoef
                        : libParas.TensionTowerBaseParas.DrawingCoef)
                    });
                }
                LineParas = lineParas;
            }
            //没有默认文件就默认为0
            else
            {
                List <StruLineParas> lineParas = new List <StruLineParas>();
                for (int i = 0; i < Template.Wires.Count; i++)
                {
                    lineParas.Add(new StruLineParas()
                    {
                        Index    = i + 1,
                        WireType = Template.Wires[i],
                    });
                }
                LineParas = lineParas;
            }

            //BaseParas下列参数中在映射后赋值的原因在于:
            //如果先复制,在前面的映射过程中,会导致某些值会改变
            BaseParas.SelectedStandard  = "GB50545-2010";
            BaseParas.Type              = towerType;
            BaseParas.IsMethod1Selected = true;
        }
        public void TestMethod02_StruCalsLibParasSerializer()
        {
            var saveFileDialog = new Microsoft.Win32.SaveFileDialog()
            {
                Filter = "XML Files (*.xml)|*.xml",
            };

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

            StruCalsLibBaseParas baseParasOverhanging = new StruCalsLibBaseParas
            {
                WindAdjustFactor      = 1.2f,
                OtherWindAdjustFactor = 1,
                DynamicCoef           = 1.1f,
                DrawingCoef           = 1.2f,
                AnchorWindCoef        = 0.8f,
                AnchorGravityCoef     = 0.8f,
                AnchorAngle           = 20,
                BaseParasGB50545      = new StruCalsLibGB50545BaseParas
                {
                    RGBad        = 1.2f,
                    RGGood       = 1,
                    RQ           = 1.4f,
                    VcFNormal    = 1,
                    VcFInstall   = 0.9f,
                    VcFBroken    = 0.9f,
                    VcFUnevenIce = 0.9f,
                    VcFCheck     = 0.75f,
                },
                BaseParasDLT5551 = new StruCalsLibDLT5551BaseParas
                {
                    RGBad        = 1.2f,
                    RGGood       = 1,
                    RQ           = 1.4f,
                    RGOverturn   = 0.9f,
                    VcFNormal    = 1,
                    VcFIce       = 1,
                    VcFCold      = 1,
                    VcFBroken    = 0.9f,
                    VcFInstall   = 0.9f,
                    VcFUnevenIce = 0.9f,
                }
            };

            StruCalsLibBaseParas baseParasTension = new StruCalsLibBaseParas
            {
                WindAdjustFactor      = 1.2f,
                OtherWindAdjustFactor = 1,
                DynamicCoef           = 1.1f,
                DrawingCoef           = 1.2f,
                LiftCoefJumper        = 2,
                TempStayWireAngle     = 45,
                TractionAgnle         = 20,
                BaseParasGB50545      = new StruCalsLibGB50545BaseParas
                {
                    RGBad        = 1.2f,
                    RGGood       = 1,
                    RQ           = 1.4f,
                    VcFNormal    = 1,
                    VcFInstall   = 0.9f,
                    VcFBroken    = 0.9f,
                    VcFUnevenIce = 0.9f,
                    VcFCheck     = 0.75f,
                },
                BaseParasDLT5551 = new StruCalsLibDLT5551BaseParas
                {
                    RGBad        = 1.2f,
                    RGGood       = 1,
                    RQ           = 1.4f,
                    RGOverturn   = 0.9f,
                    VcFNormal    = 1,
                    VcFIce       = 1,
                    VcFCold      = 1,
                    VcFBroken    = 0.9f,
                    VcFInstall   = 0.9f,
                    VcFUnevenIce = 0.9f,
                }
            };

            List <StruCalsLibWireExtraLoadParas> wireExtraLoadParas = new List <StruCalsLibWireExtraLoadParas>
            {
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 1,
                    Voltage = 110,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1,
                    OverhangingTowerEarthWireExtraLoad = 1,
                    OverhangingTowerWireExtraLoad      = 1.5f,
                    TensionTowerEarthWireExtraLoad     = 1.5f,
                    TensionTowerWireExtraLoad          = 2,
                    TensionTowerJumperWireExtraLoad    = 1
                },
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 2,
                    Voltage = 220,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1,
                    OverhangingTowerEarthWireExtraLoad = 2,
                    OverhangingTowerWireExtraLoad      = 3.5f,
                    TensionTowerEarthWireExtraLoad     = 2,
                    TensionTowerWireExtraLoad          = 4.5f,
                    TensionTowerJumperWireExtraLoad    = 2
                },
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 3,
                    Voltage = 330,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1,
                    OverhangingTowerEarthWireExtraLoad = 2,
                    OverhangingTowerWireExtraLoad      = 3.5f,
                    TensionTowerEarthWireExtraLoad     = 2,
                    TensionTowerWireExtraLoad          = 4.5f,
                    TensionTowerJumperWireExtraLoad    = 2
                },
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 4,
                    Voltage = 500,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1,
                    OverhangingTowerEarthWireExtraLoad = 2,
                    OverhangingTowerWireExtraLoad      = 4,
                    TensionTowerEarthWireExtraLoad     = 2,
                    TensionTowerWireExtraLoad          = 6,
                    TensionTowerJumperWireExtraLoad    = 3
                },
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 5,
                    Voltage = 750,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1,
                    OverhangingTowerEarthWireExtraLoad = 2,
                    OverhangingTowerWireExtraLoad      = 4,
                    TensionTowerEarthWireExtraLoad     = 2,
                    TensionTowerWireExtraLoad          = 6,
                    TensionTowerJumperWireExtraLoad    = 3
                },
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 6,
                    Voltage = 800,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1.1f,
                    OverhangingTowerEarthWireExtraLoad = 4,
                    OverhangingTowerWireExtraLoad      = 8,
                    TensionTowerEarthWireExtraLoad     = 4,
                    TensionTowerWireExtraLoad          = 12,
                    TensionTowerJumperWireExtraLoad    = 6
                },
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 7,
                    Voltage = 1000,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1.1f,
                    OverhangingTowerEarthWireExtraLoad = 4,
                    OverhangingTowerWireExtraLoad      = 8,
                    TensionTowerEarthWireExtraLoad     = 4,
                    TensionTowerWireExtraLoad          = 12,
                    TensionTowerJumperWireExtraLoad    = 6
                },
                new StruCalsLibWireExtraLoadParas
                {
                    Index   = 8,
                    Voltage = 1100,
                    InstallImportanceCoef = 1,
                    OtherImportanceCoef   = 1.1f,
                    OverhangingTowerEarthWireExtraLoad = 4,
                    OverhangingTowerWireExtraLoad      = 8,
                    TensionTowerEarthWireExtraLoad     = 4,
                    TensionTowerWireExtraLoad          = 12,
                    TensionTowerJumperWireExtraLoad    = 6
                },
            };

            List <StruCalsLibIceCoverParas> iceCoverParas = new List <StruCalsLibIceCoverParas>
            {
                new StruCalsLibIceCoverParas
                {
                    Index                       = 1,
                    IceThickness                = 5,
                    TowerWindLoadAmplifyCoef    = 1.1f,
                    TowerGravityLoadAmplifyCoef = 1,
                },
                new StruCalsLibIceCoverParas
                {
                    Index                       = 2,
                    IceThickness                = 10,
                    TowerWindLoadAmplifyCoef    = 1.2f,
                    TowerGravityLoadAmplifyCoef = 1,
                },
                new StruCalsLibIceCoverParas
                {
                    Index                       = 3,
                    IceThickness                = 15,
                    TowerWindLoadAmplifyCoef    = 1.6f,
                    TowerGravityLoadAmplifyCoef = 1.2f,
                },
                new StruCalsLibIceCoverParas
                {
                    Index                       = 4,
                    IceThickness                = 20,
                    TowerWindLoadAmplifyCoef    = 1.8f,
                    TowerGravityLoadAmplifyCoef = 1.5f,
                },
                new StruCalsLibIceCoverParas
                {
                    Index                       = 5,
                    IceThickness                = 25,
                    TowerWindLoadAmplifyCoef    = 2f,
                    TowerGravityLoadAmplifyCoef = 1.8f,
                },
                new StruCalsLibIceCoverParas
                {
                    Index                       = 6,
                    IceThickness                = 30,
                    TowerWindLoadAmplifyCoef    = 2.2f,
                    TowerGravityLoadAmplifyCoef = 2f,
                },
                new StruCalsLibIceCoverParas
                {
                    Index                       = 7,
                    IceThickness                = 40,
                    TowerWindLoadAmplifyCoef    = 2.3f,
                    TowerGravityLoadAmplifyCoef = 2.2f,
                },
                new StruCalsLibIceCoverParas
                {
                    Index                       = 8,
                    IceThickness                = 45,
                    TowerWindLoadAmplifyCoef    = 2.3f,
                    TowerGravityLoadAmplifyCoef = 2.2f,
                },
            };

            var paras = new StruCalsLib {
                OverhangingTowerBaseParas = baseParasOverhanging,
                TensionTowerBaseParas     = baseParasTension,
                WireExtraLoadParas        = wireExtraLoadParas,
                IceCoverParas             = iceCoverParas,
            };

            XmlUtils.Serializer(saveFileDialog.FileName, paras);

            var paras2 = XmlUtils.Deserializer <StruCalsLib>(saveFileDialog.FileName);
        }