예제 #1
0
        public void UpdateJumpVerWei(double jgbWei, List <ElecCalsWorkCondition> anWeathComm)
        {
            foreach (var nameWd in WireWorkConditionNames)
            {
                var wea   = JmWireData.WeatherParas.WeathComm.Where(item => item.Name == nameWd).FirstOrDefault();
                var anWea = anWeathComm.Where(item => item.Name == nameWd).FirstOrDefault();

                var iceThick = Math.Max(wea == null ? 0 : wea.IceThickness, anWea == null ? 0 : anWea.IceThickness);

                double rslt = JumpVerWei(JumpStr.Weight, JumpStr.PieceNum, JumpStr.LNum, JumpStr.GoldPieceNum, JumpStr.SuTubleLen, JumpStr.SoftLineLen, JumpStr.JGBNum, iceThick,
                                         JmWireData.Wei, JmWireData.Dia, jgbWei, JmWireData.DevideNum, JumpStr.SuTubleWei, JumpStr.SuTubleDia, out string str);

                int index = LoadList.FindIndex(item => item.GKName == nameWd);
                if (index < 0)
                {
                    LoadList.Add(new LoadThrDe()
                    {
                        GKName        = nameWd,
                        JumpVerWei    = rslt,
                        JumpVerWeiStr = str,
                    });
                }
                else
                {
                    LoadList[index].JumpVerWei    = rslt;
                    LoadList[index].JumpVerWeiStr = str;
                }
            }
        }
예제 #2
0
        public virtual void UpdateLoStr(double secInc, double constrError, double isntallError, double extendPara)
        {
            foreach (var nameWd in WireWorkConditionNames)
            {
                double rslt;
                string str;

                if (nameWd != "安装情况")
                {
                    rslt = LoStr(out str, secInc, WireData.DevideNum, WireData.YLTableXls[nameWd], WireData.Sec, constrError);
                }
                else
                {
                    rslt = LoStr(out str, secInc, WireData.DevideNum, WireData.YLTableXls[nameWd], WireData.Sec, isntallError, extendPara);
                }

                int index = LoadList.FindIndex(item => item.GKName == nameWd);
                if (index < 0)
                {
                    LoadList.Add(new LoadThrDe()
                    {
                        GKName   = nameWd,
                        LoStr    = rslt,
                        LoStrStr = str,
                    });
                }
                else
                {
                    LoadList[index].LoStr    = rslt;
                    LoadList[index].LoStrStr = str;
                }
            }
        }
예제 #3
0
        public void UpdateVerWei(double weiInc, int numJGB, double weiJGB, int numFZ, double weiFZ)
        {
            foreach (var nameWd in WireWorkConditionNames)
            {
                var    wea      = WireData.WeatherParas.WeathComm.Where(item => item.Name == nameWd).FirstOrDefault();
                double iceThick = wea == null ? 0 : wea.IceThickness;

                var    laod    = LoadList.Where(item => item.GKName == nameWd).FirstOrDefault();
                double verSpan = laod == null ? 0 : laod.VetiSpan;

                double rslt = VerWei(weiInc, WireData.DevideNum, WireData.BzDic[nameWd].VerHezai, verSpan, StrLoad[nameWd].VerLoad, numJGB, weiJGB, weiFZ, iceThick,
                                     numFZ, HangStr.DampLength, WireData.bGrd, out string str);

                int index = LoadList.FindIndex(item => item.GKName == nameWd);
                if (index < 0)
                {
                    LoadList.Add(new LoadThrDe()
                    {
                        GKName    = nameWd,
                        VerWei    = rslt,
                        VerWeiStr = str,
                    });
                }
                else
                {
                    LoadList[index].VerWei    = rslt;
                    LoadList[index].VerWeiStr = str;
                }
            }
        }
예제 #4
0
        public override void CheckLoStr(List <LoadThrDe> anLoads, ElecCalsCommRes commPara)
        {
            foreach (var nameWd in WireWorkConditionNames)
            {
                int index = LoadList.FindIndex(item => item.GKName == nameWd);
                if (index < 0)
                {
                    continue;
                }
                double loStr = LoadList[index].LoStr;

                var    loadAn  = anLoads.Where(item => item.GKName == nameWd).FirstOrDefault();
                double loStrAd = loadAn == null ? 0 : loadAn.LoStr;

                if (loStr > loStrAd)
                {
                    LoadList[index].LoStrCheckStr = Math.Round(loStr, 0).ToString();
                }
                else
                {
                    double loStrCheck;
                    if (nameWd == "安装情况")
                    {
                        if (WireData.bGrd == 0)
                        {
                            loStrCheck = Math.Round(loStr / commPara.InstMaxPara / commPara.IndExMaxPara * commPara.InstMinPara * commPara.IndExMinPara, 0);
                        }
                        else
                        {
                            loStrCheck = Math.Round(loStr / commPara.InstMaxPara / commPara.GrdExMaxPara * commPara.InstMinPara * commPara.GrdExMinPara, 0);
                        }
                    }
                    else
                    {
                        loStrCheck = Math.Round(loStr / commPara.BuildMaxPara * commPara.BuildMinPara);
                    }
                    LoadList[index].LoStrCheckStr = Math.Round(loStr, 0).ToString() + "/(" + loStrCheck.ToString() + ")";
                }

                if (nameWd == "断线" || nameWd == "不均匀冰I" || nameWd == "不均匀冰II" || nameWd == "断线(导线+5mm)" || nameWd == "不均匀冰I(导线+5mm)" || nameWd == "不均匀冰II(导线+5mm)")
                {
                    if (loStr > loStrAd)
                    {
                        LoadList[index].LoStrCheck2 = Math.Round(loStr, 0);
                    }
                    else
                    {
                        LoadList[index].LoStrCheck2 = Math.Round(loStr / commPara.BuildMaxPara * commPara.BuildMinPara);
                    }
                }
            }
        }
        public override void UpdateHorFor(double diaInc)
        {
            foreach (var nameWd in WireWorkConditionNames)
            {
                double rslt = HorFor(diaInc, WireData.DevideNum, SpaceStr.HorSpan, HangStr.DampLength, WireData.BzDic[nameWd].WindHezai, StrLoad[nameWd].WindLoad, out string str);

                int index = LoadList.FindIndex(item => item.GKName == nameWd);
                if (index < 0)
                {
                    LoadList.Add(new LoadThrDe()
                    {
                        GKName    = nameWd,
                        HorFor    = rslt,
                        HorForStr = str,
                    });
                }
                else
                {
                    LoadList[index].HorFor    = rslt;
                    LoadList[index].HorForStr = str;
                }
            }
        }
예제 #6
0
        public void UpdateJumpHorFor()
        {
            foreach (var nameWd in WireWorkConditionNames)
            {
                double rslt = JumpHorFor(JumpStrLoad[nameWd].JumpStrWindLoad, JumpStrLoad[nameWd].JumpWindLoad, JumpStrLoad[nameWd].SuTubleWindLoad, JmWireData.DevideNum, out string str);

                int index = LoadList.FindIndex(item => item.GKName == nameWd);
                if (index < 0)
                {
                    LoadList.Add(new LoadThrDe()
                    {
                        GKName        = nameWd,
                        JumpHorFor    = rslt,
                        JumpHorForStr = str,
                    });
                }
                else
                {
                    LoadList[index].JumpHorFor    = rslt;
                    LoadList[index].JumpHorForStr = str;
                }
            }
        }
예제 #7
0
        /// <summary>
        /// 计算垂直档距
        /// </summary>
        ///
        public void UpdateVertialSpan()
        {
            foreach (var nameWd in WireWorkConditionNames)
            {
                //这儿比载excel中用的是孤立档应力,用的是普通档应力
                double rslt = VerticalSpan(SpaceStr.Span, SpaceStr.SubHei, WireData.YLTableXls[nameWd], WireData.BzDic[nameWd].BiZai, out string str);

                int index = LoadList.FindIndex(item => item.GKName == nameWd);
                if (index < 0)
                {
                    LoadList.Add(new LoadThrDe()
                    {
                        GKName      = nameWd,
                        VetiSpan    = rslt,
                        VetiSpanStr = str,
                    });
                }
                else
                {
                    LoadList[index].VetiSpan    = rslt;
                    LoadList[index].VetiSpanStr = str;
                }
            }
        }