From 34fe00834737d35eedfeb41361c4d85ab0e0f10b Mon Sep 17 00:00:00 2001 From: yangyin <1850366751@qq.com> Date: 星期五, 25 十月 2024 17:02:06 +0800 Subject: [PATCH] 增加蜗壳参数导出功能、修改部分界面代码 --- WinFrmUI/DPumpHydr.WinFrmUI.Volute/断面设计/ViewModel/SectionShapePara.cs | 239 ++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 144 insertions(+), 95 deletions(-) diff --git "a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/\346\226\255\351\235\242\350\256\276\350\256\241/ViewModel/SectionShapePara.cs" "b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/\346\226\255\351\235\242\350\256\276\350\256\241/ViewModel/SectionShapePara.cs" index 3da1b86..cab1b4c 100644 --- "a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/\346\226\255\351\235\242\350\256\276\350\256\241/ViewModel/SectionShapePara.cs" +++ "b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/\346\226\255\351\235\242\350\256\276\350\256\241/ViewModel/SectionShapePara.cs" @@ -1,8 +1,11 @@ 锘縰sing System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; +using System.Text.Json.Nodes; using System.Threading.Tasks; +using System.Windows.Forms; namespace DPumpHydr.WinFrmUI.Volute.ViewModel { @@ -21,125 +24,171 @@ public double SectionArea { get; set; }//闈㈢Н:鐢眔cc璁$畻 public double BaseWidth { get; set; }//搴曢儴瀹藉害 灏辨槸B3 public double BaseCircleRadius { get; set; }//搴曢儴鍦嗗崐寰� 灏辨槸D3/2 + public eSectionShapeType ShapeType { get; set; } + + public void Initialparameters(int index, SectionBaseInfo sectionBaseInfo) + { + this.Index = index; + this.Gama_Left = sectionBaseInfo.GaMa1[index]; + this.Gama_Right = sectionBaseInfo.GaMa2[index]; + this.H = sectionBaseInfo.H[index]; + this.R_out = sectionBaseInfo.R_out; + this.R_Left = sectionBaseInfo.R_Left[index]; + this.R_Right = sectionBaseInfo.R_Right[index]; + this.ShapeType = sectionBaseInfo.ShapeType;// + this.BaseWidth = sectionBaseInfo.BaseWidth; + this.BaseCircleRadius = sectionBaseInfo.BaseCircleRadius; + } + + public string DeriveArgument(ViewModel.SectionBaseInfo sectionBaseInfo) + { + var jsonArray = new StringBuilder("[\n"); + for (int i = 1; i < sectionBaseInfo.GaMa1.Count - 1; i++) + { + Initialparameters(i, sectionBaseInfo); + jsonArray.Append(" {\n"); + jsonArray.AppendFormat(" \"Index\":{0},\n", this.Index); + jsonArray.AppendFormat(" \"Gama_Left\":{0:F2},\n", this.Gama_Left); + jsonArray.AppendFormat(" \"Gama_Right\":{0:F2},\n", this.Gama_Right); + jsonArray.AppendFormat(" \"H\":{0:F2},\n", this.H); + jsonArray.AppendFormat(" \"R_out\":{0:F2},\n", this.R_out); + jsonArray.AppendFormat(" \"R_Left\":{0:F2},\n", this.R_Left); + jsonArray.AppendFormat(" \"R_Right\":{0:F2},\n", this.R_Right); + jsonArray.AppendFormat(" \"SectionArea\":{0:F2},\n", this.SectionArea); + jsonArray.AppendFormat(" \"BaseWidth\":{0:F2},\n", this.BaseWidth); + jsonArray.AppendFormat(" \"BaseCircleRadius\":{0:F2}\n", this.BaseCircleRadius); + jsonArray.Append(" },\n"); // 缁撴潫瀵硅薄 + } + jsonArray.Length -= 2; + jsonArray.Append("\n"); + jsonArray.Append("]"); // 缁撴潫鏁扮粍 + return jsonArray.ToString(); + } + + //public static void WriteToFile(string json, string filePath) + //{ + // File.WriteAllText(filePath, json); + //} /// <summary> /// 鏍规嵁闈㈢Н璁$畻楂樺害 /// </summary> public double CalcHeightByArea(eSectionShapeType SectionType) - { + { double a = (Math.Tan(Gama_Left * Math.PI / 180) + Math.Tan(Gama_Right * Math.PI / 180)) / 2; double b = BaseWidth; double c = (90 + Gama_Right) / 360 * Math.PI * R_Left * R_Left + (90 + Gama_Left) / 360 * Math.PI * R_Right * R_Right - R_Left * R_Left * Math.Tan((45 + Gama_Right / 2) * Math.PI / 180) - R_Right * R_Right * Math.Tan((45 + Gama_Left / 2) * Math.PI / 180) - SectionArea; double delta = b * b - 4 * a * c; - if (delta < 0) return -1; - if ( SectionType == eSectionShapeType.鐭╁舰 )//鐭╁舰 + if (delta < 0) return -1; + if (SectionType == eSectionShapeType.鐭╁舰)//鐭╁舰 { - return -c / b; + return -c / b; } else { - if (delta < 0) return -1; - return (-b + Math.Sqrt(delta)) / (2 * a); + if (delta < 0) return -1; + return (-b + Math.Sqrt(delta)) / (2 * a); } } - private double DecreaseR = 0.5; - public bool CalculateR(eSectionShapeType SectionType, HdrBaseInfo BaseInfo, bool isFirst) - { - if (!isFirst) - { - R_Left = R_Left - DecreaseR; - R_Right = R_Right - DecreaseR; + //private double DecreaseR = 0.5; + //public bool CalculateR(HdrBaseInfo BaseInfo, SectionBaseInfo sectionBaseInfo, GeomBaseInfo geomBaseInfo, bool isFirst) + //{ + // if (!isFirst) + // { + // R_Left = R_Left - DecreaseR; + // R_Right = R_Right - DecreaseR; - if (R_Left > (H - 1)) - R_Left = Math.Round(H * 0.85 - 1,0); - if (R_Right > (H - 1)) - R_Right = Math.Round(H * 0.85 - 1,0); + // if (R_Left > (H - 1)) + // R_Left = Math.Round(H * 0.85 - 1,0); + // if (R_Right > (H - 1)) + // R_Right = Math.Round(H * 0.85 - 1,0); - if (R_Left < 2) - R_Left = 2; - if (R_Right < 2) - R_Right = 2; - } - else//鏄涓�娆¤绠� - { - //璧嬪�硷細R1 R2 R3 R4 - if (SectionType == eSectionShapeType.瀵圭О) //type锛�0锛氬绉版褰� - R_Left = Math.Round(BaseWidth * 0.55 + 0.5 - 4,0); - else if (SectionType == eSectionShapeType.涓嶅绉�)//type锛�1锛氫笉瀵圭О姊舰 - R_Left = Math.Round(BaseWidth * 0.55 + 0.5 - 4,0); - else if (SectionType == eSectionShapeType.鐭╁舰)//type锛�2锛氱煩褰� - R_Left = Math.Round(BaseWidth * 0.4 + 0.5 - 2,0); + // if (R_Left < 2) + // R_Left = 2; + // if (R_Right < 2) + // R_Right = 2; + // } + // else//鏄涓�娆¤绠� + // { + + // //璧嬪�硷細R1 R2 R3 R4 + // if (sectionBaseInfo.ShapeType == eSectionShapeType.瀵圭О) //type锛�0锛氬绉版褰� + // R_Left = Math.Round(BaseWidth * 0.55 + 0.5 - 4,0); + // else if (sectionBaseInfo.ShapeType == eSectionShapeType.涓嶅绉�)//type锛�1锛氫笉瀵圭О姊舰 + // R_Left = Math.Round(BaseWidth * 0.55 + 0.5 - 4,0); + // else if (sectionBaseInfo.ShapeType == eSectionShapeType.鐭╁舰)//type锛�2锛氱煩褰� + // R_Left = Math.Round(BaseWidth * 0.4 + 0.5 - 2,0); - if (BaseInfo.IsSXB) - R_Left = Math.Round(R_Left / 2,0); - //if (DesignMode == YSSnxOpen::DesignMode::AssPawuQnshQw1) - //{ - // R_Left = int(R_Left * 0.7); - //} - double m_R3 = 0; - double t = 0; - if (BaseWidth <= 35) - m_R3 = 5; - else if (BaseWidth <= 60 && BaseWidth > 35) - { - t = Math.Round(BaseWidth * 0.6, 0) - Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10; - if (t <= 2) - m_R3 = Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10; - else if (t > 2 && t <= 7) - m_R3 = Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10 + 5; - else if (t > 7) - m_R3 = Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10 + 10; - } - else if (BaseWidth > 60 && BaseWidth <= 90) - { - t = Math.Round(BaseWidth * 0.9, 0) - Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10; - if (t <= 2) - m_R3 = Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10; - else if (t > 2 && t <= 7) - m_R3 = Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10 + 5; - else if (t > 7) - m_R3 = Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10 + 10; - } - else if (BaseWidth > 90) - { - t = Math.Round(BaseWidth * 0.3, 0) - Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10; - if (t <= 2) - m_R3 = Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10; - else if (t > 2 && t <= 7) - m_R3 = Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10 + 5; - else if (t > 7) - m_R3 = Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10 + 10; - } + // if (BaseInfo.IsSXB) + // R_Left = Math.Round(R_Left / 2,0); + // //if (DesignMode == YSSnxOpen::DesignMode::AssPawuQnshQw1) + // //{ + // // R_Left = int(R_Left * 0.7); + // //} + // double m_R3 = 0; + // double t = 0; + // if (BaseWidth <= 35) + // m_R3 = 5; + // else if (BaseWidth <= 60 && BaseWidth > 35) + // { + // t = Math.Round(BaseWidth * 0.6, 0) - Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10; + // if (t <= 2) + // m_R3 = Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10; + // else if (t > 2 && t <= 7) + // m_R3 = Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10 + 5; + // else if (t > 7) + // m_R3 = Math.Round(BaseWidth * 0.6 / 10.0, 0) * 10 + 10; + // } + // else if (BaseWidth > 60 && BaseWidth <= 90) + // { + // t = Math.Round(BaseWidth * 0.9, 0) - Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10; + // if (t <= 2) + // m_R3 = Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10; + // else if (t > 2 && t <= 7) + // m_R3 = Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10 + 5; + // else if (t > 7) + // m_R3 = Math.Round(BaseWidth * 0.9 / 10.0, 0) * 10 + 10; + // } + // else if (BaseWidth > 90) + // { + // t = Math.Round(BaseWidth * 0.3, 0) - Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10; + // if (t <= 2) + // m_R3 = Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10; + // else if (t > 2 && t <= 7) + // m_R3 = Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10 + 5; + // else if (t > 7) + // m_R3 = Math.Round(BaseWidth * 0.3 / 10.0, 0) * 10 + 10; + // } - R_Right = R_Left; - R_out = 1000.0; + // R_Right = R_Left; + // R_out = 1000.0; - //鎴潰R1 鍜� R4鐨勫噺灏戣搴� DecreaseR - if (BaseWidth < 15) - { - DecreaseR = 0.5; - } - else if (BaseWidth >= 15 && BaseWidth < 25) - { - DecreaseR = 1; - } - else if (BaseWidth >= 25 && BaseWidth < 45) - { - DecreaseR = 1.5; - } - else if (BaseWidth >= 45) - { - DecreaseR = 2; - } + // //鎴潰R1 鍜� R4鐨勫噺灏戣搴� DecreaseR + // if (BaseWidth < 15) + // { + // DecreaseR = 0.5; + // } + // else if (BaseWidth >= 15 && BaseWidth < 25) + // { + // DecreaseR = 1; + // } + // else if (BaseWidth >= 25 && BaseWidth < 45) + // { + // DecreaseR = 1.5; + // } + // else if (BaseWidth >= 45) + // { + // DecreaseR = 2; + // } - if (BaseInfo.IsSXB) - DecreaseR = 1; - } + // if (BaseInfo.IsSXB) + // DecreaseR = 1; + // } - return true; - } + // return true; + //} } } -- Gitblit v1.9.3