private void ShowWarningMsg(PipingErrors errorType) { double len = 0; int count = 0; string rate = ""; string msg = ""; string templen = ""; string temphei = ""; switch (errorType) { case PipingErrors.LINK_LENGTH: //-1: msg = Msg.PIPING_LINK_LENGTH; break; case PipingErrors.WARN_ACTLENGTH: //-2: len = Unit.ConvertToControl(curSystemItem.MaxPipeLength, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_WARN_ACTLENGTH(len.ToString("n0") + ut_length); break; case PipingErrors.EQLENGTH: //-3: len = Unit.ConvertToControl(curSystemItem.MaxEqPipeLength, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_EQLENGTH(len.ToString("n0") + ut_length); break; case PipingErrors.FIRSTLENGTH: //-4: len = Unit.ConvertToControl(curSystemItem.MaxIndoorLength, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_FIRSTLENGTH(len.ToString("n0") + ut_length); break; case PipingErrors.LENGTHFACTOR: //-5: len = Unit.ConvertToControl(curSystemItem.PipeEquivalentLength, UnitType.LENGTH_M, ut_length); double diff = Unit.ConvertToControl(curSystemItem.HeightDiff, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_LENGTHFACTOR(curSystemItem.Name, len.ToString("n2") + ut_length, Math.Abs(diff).ToString("n2") + ut_length); break; case PipingErrors.TOTALLIQUIDLENGTH: //-6: len = Unit.ConvertToControl(curSystemItem.MaxTotalPipeLength, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_TOTALLIQUIDLENGTH(len.ToString("n0") + ut_length); break; case PipingErrors.MKTOINDOORLENGTH: //-7: len = Unit.ConvertToControl(curSystemItem.MaxMKIndoorPipeLength, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_MKTOINDOORLENGTH(len.ToString("n0") + ut_length); break; case PipingErrors.MKTOINDOORLENGTH1: //-8: len = Unit.ConvertToControl(PipingBLL.MaxCHToIndoorTotalLength, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_MKTOINDOORLENGTH(len.ToString("n0") + ut_length); break; case PipingErrors.MAINBRANCHCOUNT: //-9: count = PipingBLL.MaxMainBranchCount; msg = Msg.PIPING_MAINBRANCHCOUNT(count.ToString()); break; case PipingErrors.COOLINGCAPACITYRATE: //-10: rate = PipingBLL.MinMainBranchCoolingCapacityRate; msg = Msg.PIPING_COOLINGCAPACITYRATE(rate); break; //case -11: // rate = PipingBLL.MinMainBranchHeatingCapacityRate; // msg = Msg.PIPING_HEATINGCAPACITYRATE(rate); // break; case PipingErrors.COOLINGONLYCAPACITY: //-12: msg = Msg.PIPING_COOLINGONLYCAPACITY(); break; case PipingErrors.INDOORNUMBERTOCH: //-13: count = PipingBLL.MaxIndoorNumberConnectToCH; msg = Msg.PIPING_INDOORNUMBERTOCH(count.ToString()); break; // 多台室外机组成机组时,校验第一分歧管到第一Piping Connection kit之间的管长不能小于0.5m add on 20170720 by Shen Junjie case PipingErrors.FIRST_CONNECTION_KIT_TO_FIRST_BRANCH_MIN_LENGTH: //-14: double betweenConnectionKits_Min = Unit.ConvertToControl(0.5, UnitType.LENGTH_M, ut_length); string betweenConnectionKits_Msg = betweenConnectionKits_Min.ToString("n2") + ut_length; msg = Msg.PIPING_FIRST_CONNECTION_KIT_TO_FIRST_BRANCH_MIN_LENGTH(betweenConnectionKits_Msg); break; case PipingErrors._3RD_MAIN_BRANCH: //-15: //不能有第三层主分支。 msg = Msg.GetResourceString("ERROR_PIPING_3RD_MAIN_BRANCH"); break; case PipingErrors._4TH_BRANCH_NOT_MAIN_BRANCH: //-16: //第4(或更远的)分支不能是一个主分支。 msg = Msg.GetResourceString("ERROR_PIPING_4TH_BRANCH_NOT_MAIN_BRANCH"); break; case PipingErrors.DIFF_LEN_FURTHEST_CLOSESST_IU: //-17 msg = Msg.GetResourceString("ERROR_PIPING_DIFF_LEN_FURTHEST_CLOSESST_IU"); break; case PipingErrors.NO_MATCHED_BRANCH_KIT: //-18 msg = Msg.GetResourceString("ERROR_PIPING_NO_MATCHED_BRANCH_KIT"); break; case PipingErrors.NO_MATCHED_CHBOX: //-19 msg = Msg.GetResourceString("ERROR_PIPING_NO_MATCHED_CHBOX"); break; case PipingErrors.NO_MATCHED_MULTI_CHBOX: //-20 msg = Msg.GetResourceString("ERROR_PIPING_NO_MATCHED_MULTI_CHBOX"); break; case PipingErrors.NO_MATCHED_SIZE_UP_IU: //-21 msg = Msg.WARNING_DATA_EXCEED; break; case PipingErrors.MAX_HIGHDIFF_UPPER: //-22: len = Unit.ConvertToControl(curSystemItem.MaxOutdoorAboveHeight, UnitType.LENGTH_M, ut_length); msg = Msg.Piping_HeightDiffH(len.ToString("n0") + ut_length); break; case PipingErrors.MAX_HIGHDIFF_LOWER: //-23: len = Unit.ConvertToControl(curSystemItem.MaxOutdoorBelowHeight, UnitType.LENGTH_M, ut_length); msg = Msg.Piping_HeightDiffL(len.ToString("n0") + ut_length); break; case PipingErrors.MAX_HIGHDIFF_INDOOR: //-24: len = Unit.ConvertToControl(curSystemItem.MaxDiffIndoorHeight, UnitType.LENGTH_M, ut_length); msg = Msg.Piping_Indoor_HeightDiff(len.ToString("n0") + ut_length); break; case PipingErrors.MAX_CHBOXHIGHDIFF: //-25: len = Unit.ConvertToControl(curSystemItem.NormalCHBoxHighDiffLength, UnitType.LENGTH_M, ut_length); msg = Msg.DiffCHBoxHeightValue(len.ToString("n0") + ut_length); break; case PipingErrors.MAX_MULTICHBOXHIGHDIFF: //-26: len = Unit.ConvertToControl(curSystemItem.NormalSameCHBoxHighDiffLength, UnitType.LENGTH_M, ut_length); msg = Msg.DiffMulitBoxHeightValue(len.ToString("n0") + ut_length); break; case PipingErrors.MAX_CHBOX_INDOORHIGHDIFF: //-27: len = Unit.ConvertToControl(curSystemItem.NormalCHBox_IndoorHighDiffLength, UnitType.LENGTH_M, ut_length); msg = Msg.DiffCHBox_IndoorHeightValue(len.ToString("n0") + ut_length); break; case PipingErrors.INDOORLENGTH_HIGHDIFF: //-28 templen = Unit.ConvertToControl(PipingBLL.TempActualLength, UnitType.LENGTH_M, ut_length).ToString("n2") + ut_length; temphei = Unit.ConvertToControl(PipingBLL.TempMaxLength, UnitType.LENGTH_M, ut_length).ToString("n2") + ut_length; msg = Msg.INDOORLENGTH_HIGHDIFF_MSG(templen, temphei); break; case PipingErrors.CHBOXLENGTH_HIGHDIFF: //-29 templen = Unit.ConvertToControl(PipingBLL.TempActualLength, UnitType.LENGTH_M, ut_length).ToString("n2") + ut_length; temphei = Unit.ConvertToControl(PipingBLL.TempMaxLength, UnitType.LENGTH_M, ut_length).ToString("n2") + ut_length; msg = Msg.CHBOXLENGTH_HIGHDIFF_MSG(templen, temphei); break; case PipingErrors.CHBOX_INDOORLENGTH_HIGHDIFF: //-30 templen = Unit.ConvertToControl(PipingBLL.TempActualLength, UnitType.LENGTH_M, ut_length).ToString("n2") + ut_length; temphei = Unit.ConvertToControl(PipingBLL.TempMaxLength, UnitType.LENGTH_M, ut_length).ToString("n2") + ut_length; msg = Msg.CHBOX_INDOORLENGTH_HIGHDIFF_MSG(templen, temphei); break; case PipingErrors.PIPING_CHTOINDOORTOTALLENGTH: //-31 len = Unit.ConvertToControl(40, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_CHTOINDOORTOTALLENGTH(len.ToString("n0") + ut_length); break; case PipingErrors.PIPING_LENGTH_HEIGHT_DIFF: //-32 len = Unit.ConvertToControl(curSystemItem.PipeEquivalentLength, UnitType.LENGTH_M, ut_length); double diffs = Unit.ConvertToControl(curSystemItem.HeightDiff, UnitType.LENGTH_M, ut_length); msg = Msg.PIPING_LENGTHFACTOR(curSystemItem.Name, len.ToString("n2") + ut_length, Math.Abs(diffs).ToString("n2") + ut_length); break; case PipingErrors.MIN_DISTANCE_BETWEEN_MULTI_KITS: //-33 msg = Msg.PIPING_MIN_LEN_BETWEEN_MULTI_KITS(Unit.ConvertToControl(0.5, UnitType.LENGTH_M, ut_length).ToString() + ut_length); break; case PipingErrors.ODU_PIPE_LENGTH_LIMITS: //-34 msg = Msg.GetResourceString("PIPING_ODU_PIPE_LENGTH_LIMITS"); break; case PipingErrors.ANZ_MAX_BIG_IDU_OF_MUlTI_CHBOX: //-35 //每个multiple CH-Box最多只能连接2个8HP/10HP的IDU。仅限ANZ。 add by Shen Junjie on 2018/8/17 msg = Msg.GetResourceString("ANZ_MAX_BIG_IDU_OF_MUlTI_CHBOX"); break; case PipingErrors.OK: //0 default: msg = "Verirfied"; //should be empty later break; } ShowWarningMsg(msg); }
private void DoPipingCalculation(PipingBLL pipBll, JCHVRF.Model.NextGen.MyNodeOut nodeOut, out PipingErrors errorType) { errorType = PipingErrors.OK; if (nodeOut.ChildNode == null) { return; } //分歧管型号和管径改为如果后面的大于前面的,则后面的替换为前面的型号和管径 by Shen Junjie on 20170409 //getSumCalculation(ref firstDstNode, factoryCode, type, unitType); pipBll.GetSumCapacity(nodeOut.ChildNode); pipBll.IsBranchKitNeedSizeUp(curSystemItem); PipingBranchKit firstBranchKit = null; if (nodeOut.ChildNode is JCHVRF.Model.NextGen.MyNodeYP) { JCHVRF.Model.NextGen.MyNodeYP nodeYP = nodeOut.ChildNode as JCHVRF.Model.NextGen.MyNodeYP; if (nodeYP.IsCP) { //第一分歧管可能是梳形管 20170711 by Yunxiao Lin firstBranchKit = pipBll.getFirstHeaderBranchPipeCalculation(nodeYP, curSystemItem, out errorType); } else { // 第一分歧管放大一号计算 firstBranchKit = pipBll.getFirstPipeCalculation(nodeYP, curSystemItem, out errorType); } if (errorType != PipingErrors.OK) { SetSystemPipingOK(curSystemItem, false); return; } } //分歧管型号和管径改为如果后面的大于前面的,则后面的替换为前面的型号和管径 by Shen Junjie on 20170409 pipBll.getSumCalculationInversion(firstBranchKit, nodeOut, nodeOut.ChildNode, curSystemItem, false, out errorType); if (errorType != PipingErrors.OK) { SetSystemPipingOK(curSystemItem, false); return; } pipBll.CheckIndoorNumberConnectedCHBox(nodeOut); }
private void DoPipingFinalVerification() { PipingErrors errorType = PipingErrors.OK; if (curSystemItem.OutdoorItem == null) { return; } if (curSystemItem.IsManualPiping && curSystemItem.IsUpdated) { return; } //this.Cursor = Cursors.WaitCursor; JCHVRF.MyPipingBLL.NextGen.PipingBLL pipBll = GetPipingBLLInstance(); bool isHR = PipingBLL.IsHeatRecovery(curSystemItem); pipBll.SetPipingLimitation(curSystemItem); errorType = pipBll.ValidateSystemHighDifference(curSystemItem); if (errorType == PipingErrors.OK) { errorType = pipBll.ValidatePipeLength(curSystemItem, ref addFlowPiping); } #region if (errorType == PipingErrors.OK) { //如果排管未完成或存在错误,每次点击验证按钮都需要将上次标红的对象恢复。add on 20160727 by Yunxiao Lin if (!curSystemItem.IsPipingOK) { pipBll.SetDefaultColor(ref addFlowPiping, isHR); } if (errorType == PipingErrors.OK) { //前面已经做了“实际管长不小于高度差”校验,所以这里已经不可能成立。 comment by Shen Junjie on 2018/7/18 if (curSystemItem.PipeEquivalentLength < curSystemItem.HeightDiff) { errorType = PipingErrors.PIPING_LENGTH_HEIGHT_DIFF; //-32; } } //检验MainBranch数量-9 和分支室内机容量比例-10 -11 if (curSystemItem.IsInputLengthManually) { errorType = pipBll.ValMainBranch(curSystemItem, ref addFlowPiping); } if (errorType == PipingErrors.OK) { //检验Heat Recovery系统内Cooling Only内机容量是否超过全部室内机容量的50% -12 //string HeatType = curSystemItem.OutdoorItem.ModelFull.Substring(3, 1); //string HeatType = curSystemItem.OutdoorItem.ProductType.Contains("Heat Recovery") || curSystemItem.OutdoorItem.ProductType.Contains(", HR") ? "R":"H"; if (PipingBLL.IsHeatRecovery(curSystemItem) && !pipBll.ValCoolingOnlyIndoorCapacityRate(curSystemItem, ref addFlowPiping)) { errorType = PipingErrors.COOLINGONLYCAPACITY; //-12; } } if (errorType == PipingErrors.OK) { //ANZ 每个multiple CH-Box最多只能连接2个8HP/10HP的IDU errorType = pipBll.ValidateIDUOfMultiCHBox(curSystemItem); } if (errorType == PipingErrors.OK) { SetSystemPipingOK(curSystemItem, true); // 执行配管计算并绑定配管数据,连接管管径规格等 DoPipingCalculation(pipBll, curSystemItem.MyPipingNodeOut, out errorType); if (curSystemItem.IsPipingOK) { //检验CH-Box到远端Indoor的总长-8 add on 20160516 by Yunxiao Lin if (curSystemItem.IsInputLengthManually && !pipBll.ValCHToIndoorMaxTotalLength(curSystemItem, ref addFlowPiping)) { errorType = PipingErrors.MKTOINDOORLENGTH1; //-8; } //检验CH-Box连接的室内机数量 -13 else if (!pipBll.ValMaxIndoorNumberConnectToCH(curSystemItem, ref addFlowPiping)) { errorType = PipingErrors.INDOORNUMBERTOCH; //-13; } else { SetSystemPipingOK(curSystemItem, true); // 计算冷媒追加量 if (curSystemItem.IsInputLengthManually) { double d1 = pipBll.GetAddRefrigeration(curSystemItem, ref addFlowPiping); curSystemItem.AddRefrigeration = d1; //为管线图添加加注冷媒标注 2016-12-22 by shen junjie pipBll.DrawAddRefrigerationText(curSystemItem); } else { curSystemItem.AddRefrigeration = 0; } } } pipBll.DrawTextToAllNodes(curSystemItem.MyPipingNodeOut, null, curSystemItem); //UtilTrace.SaveHistoryTraces();//保存历史痕迹 add by axj 20161228 } } #endregion if (errorType != PipingErrors.OK) { SetSystemPipingOK(curSystemItem, false); } ShowWarningMsg(errorType); //UtilTrace.SaveHistoryTraces();//保存历史痕迹 add by axj 20161228 //SetTabControlImageKey(); //SetTreeViewOutdoorState(); //this.Cursor = Cursors.Default; }