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