tangxu
2024-12-29 f7ec23b2fe6e8e48bbb32b8c9321b64529622406
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_Occ.cs
@@ -4,8 +4,7 @@
using System.IO;
using System.Text;
using System.Linq;
using HydrEngineCSharp;
using DPumpHydr.WinFrmUI.Volute.ViewModel;
using HydrEngineCSharp;
namespace DPumpHydr.WinFrmUI.Volute
{
@@ -59,62 +58,120 @@
            this._occDesign3dCtrl.RefreshSingleSectShape18(para);
            this._occDesign2dCtrl.RefreshSingleSectShape18(para);
            this._sectAreaDockPanel.SetBindingData(para);
        }
        double m_dTopValue = 1.0;
        double m_dBtmValue = 1.0;
        private WaterBodyOuterParam m_theWaterBodyOuterParam;
        private bool CreateWaterBody(DPumpHydr.WinFrmUI.Volute.ViewModel.OtuflowParas  otuflowParas)
        private bool CreateWaterBody3D(DPumpHydr.WinFrmUI.Volute.ViewModel.OtuflowParas outflowParas)
        {
            if (_ctrlSetOutflowStyle == null)
            this._outflowParas = outflowParas;
            if (_ctrlSetOutflowStyle == null || outflowParas == null)
            {
                return false ;
            }
            double dOuterOffset = 0.0;
            double dOuterHigh = 420.0;
            double dOuterRad = 80.0;
            double dOuterTopValue = m_dTopValue;
            double dOuterBtmValue = m_dBtmValue;
            double dH1 = 10;
            double dH2 = 10;
            double m_dRadConner = 8;
            if(m_theWaterBodyOuterParam != null)
            if (outflowParas.Tangent_Top_Right <= 0 || outflowParas.Tangent_Btm_Right <= 0 ||
         outflowParas.Tangent_Top_Left <= 0 || outflowParas.Tangent_Btm_Left <= 0)
                return false;
            if (m_theWaterBodyOuterParam != null)
            {
                return EditWaterBody();
                return EditWaterBody3D(outflowParas);
            }
            m_theWaterBodyOuterParam = new WaterBodyOuterParam();
        m_theWaterBodyOuterParam.SetOuterOffset(dOuterOffset);
            m_theWaterBodyOuterParam.SetOuterHigh(dOuterHigh);
            m_theWaterBodyOuterParam.SetOuterRad(dOuterRad);
            m_theWaterBodyOuterParam.SetTopValue1(dOuterTopValue);
            m_theWaterBodyOuterParam.SetBtmValue1(dOuterBtmValue);
            m_theWaterBodyOuterParam.SetTopValue2(dOuterTopValue);
            m_theWaterBodyOuterParam.SetBtmValue2(dOuterBtmValue);
            m_theWaterBodyOuterParam.SetH1(dH1);
            m_theWaterBodyOuterParam.SetH2(dH2);
            m_theWaterBodyOuterParam.SetRadConner(m_dRadConner);
          var   m_theHydrGeomSplineParam = this._occDesign2dCtrl.Create2DWaterBody(m_theWaterBodyOuterParam);
            if (!m_theHydrGeomSplineParam.IsEmpty())
            m_theWaterBodyOuterParam = new WaterBodyOuterParam();
            m_theWaterBodyOuterParam.SetOuterOffset(outflowParas.Offset);
            m_theWaterBodyOuterParam.SetOuterHigh(outflowParas.Heigh);
            m_theWaterBodyOuterParam.SetOuterRad(outflowParas.Dia/2);
            m_theWaterBodyOuterParam.SetTopValue1(outflowParas.Tangent_Top_Right);
            m_theWaterBodyOuterParam.SetBtmValue1(outflowParas.Tangent_Btm_Right);
            m_theWaterBodyOuterParam.SetTopValue2(outflowParas.Tangent_Top_Left);
            m_theWaterBodyOuterParam.SetBtmValue2(outflowParas.Tangent_Btm_Left);
            m_theWaterBodyOuterParam.SetH1(outflowParas.H1);
            m_theWaterBodyOuterParam.SetH2(outflowParas.H2);
            m_theWaterBodyOuterParam.SetRadConner(outflowParas.Septalradius);
            var   m_theHydrGeomSplineParam = this._occDesign2dCtrl.Create2DWaterBody(m_theWaterBodyOuterParam);
            if (m_theHydrGeomSplineParam != null && !m_theHydrGeomSplineParam.IsEmpty())
            {
                this._occDesign3dCtrl.Create3DWaterBody(m_theWaterBodyOuterParam, m_theHydrGeomSplineParam);
            }
 
            return true;
        }
        private bool EditWaterBody()
        private bool CreateWaterBody2D(DPumpHydr.WinFrmUI.Volute.ViewModel.OtuflowParas outflowParas)
        {
            m_dTopValue += 0.1;
            m_dBtmValue += 0.1;
            m_theWaterBodyOuterParam.SetTopValue1(m_dTopValue);
            m_theWaterBodyOuterParam.SetBtmValue1(m_dBtmValue);
            m_theWaterBodyOuterParam.SetTopValue2(m_dTopValue);
            m_theWaterBodyOuterParam.SetBtmValue2(m_dBtmValue);
           var  m_theHydrGeomSplineParam = this._occDesign2dCtrl.Create2DWaterBody(m_theWaterBodyOuterParam);
            if (_ctrlSetOutflowStyle == null || outflowParas == null)
            {
                return false;
            }
            if (  outflowParas.Tangent_Top_Right <= 0 || outflowParas.Tangent_Btm_Right <= 0 ||
                outflowParas.Tangent_Top_Left <= 0 || outflowParas.Tangent_Btm_Left <= 0)
                return false;
            if (m_theWaterBodyOuterParam != null)
            {
                return EditWaterBody2D(outflowParas);
            }
            m_theWaterBodyOuterParam = new WaterBodyOuterParam();
            m_theWaterBodyOuterParam.SetOuterOffset(outflowParas.Offset);
            m_theWaterBodyOuterParam.SetOuterHigh(outflowParas.Heigh);
            m_theWaterBodyOuterParam.SetOuterRad(outflowParas.Dia / 2);
            m_theWaterBodyOuterParam.SetTopValue1(outflowParas.Tangent_Top_Right);
            m_theWaterBodyOuterParam.SetBtmValue1(outflowParas.Tangent_Btm_Right);
            m_theWaterBodyOuterParam.SetTopValue2(outflowParas.Tangent_Top_Left);
            m_theWaterBodyOuterParam.SetBtmValue2(outflowParas.Tangent_Btm_Left);
            m_theWaterBodyOuterParam.SetH1(outflowParas.H1);
            m_theWaterBodyOuterParam.SetH2(outflowParas.H2);
            m_theWaterBodyOuterParam.SetRadConner(outflowParas.Septalradius);
              this._occDesign2dCtrl.Create2DWaterBody(m_theWaterBodyOuterParam);
            return true;
        }
        private bool EditWaterBody3D(DPumpHydr.WinFrmUI.Volute.ViewModel.OtuflowParas outflowParas)
        {
            if (outflowParas.Tangent_Top_Right <= 0 || outflowParas.Tangent_Btm_Right <= 0 ||
                outflowParas.Tangent_Top_Left <= 0 || outflowParas.Tangent_Btm_Left <= 0)
                return false ;
            m_theWaterBodyOuterParam.SetOuterOffset(outflowParas.Offset);
            m_theWaterBodyOuterParam.SetOuterHigh(outflowParas.Heigh);
            m_theWaterBodyOuterParam.SetOuterRad(outflowParas.Dia / 2);
            m_theWaterBodyOuterParam.SetTopValue1(outflowParas.Tangent_Top_Right);
            m_theWaterBodyOuterParam.SetBtmValue1(outflowParas.Tangent_Btm_Right);
            m_theWaterBodyOuterParam.SetTopValue2(outflowParas.Tangent_Top_Left);
            m_theWaterBodyOuterParam.SetBtmValue2(outflowParas.Tangent_Btm_Left);
            m_theWaterBodyOuterParam.SetH1(outflowParas.H1);
            m_theWaterBodyOuterParam.SetH2(outflowParas.H2);
            m_theWaterBodyOuterParam.SetRadConner(outflowParas.Septalradius);
            var  m_theHydrGeomSplineParam = this._occDesign2dCtrl.Create2DWaterBody(m_theWaterBodyOuterParam);
            this._occDesign3dCtrl.Edit3DWaterBody(m_theWaterBodyOuterParam, m_theHydrGeomSplineParam);
            return true;
        }
        private bool EditWaterBody2D(DPumpHydr.WinFrmUI.Volute.ViewModel.OtuflowParas outflowParas)
        {
            if (outflowParas ==null || outflowParas.Tangent_Top_Right <= 0 || outflowParas.Tangent_Btm_Right <= 0 ||
                outflowParas.Tangent_Top_Left <= 0 || outflowParas.Tangent_Btm_Left <= 0)
                return false;
            m_theWaterBodyOuterParam.SetOuterOffset(outflowParas.Offset);
            m_theWaterBodyOuterParam.SetOuterHigh(outflowParas.Heigh);
            m_theWaterBodyOuterParam.SetOuterRad(outflowParas.Dia / 2);
            m_theWaterBodyOuterParam.SetTopValue1(outflowParas.Tangent_Top_Right);
            m_theWaterBodyOuterParam.SetBtmValue1(outflowParas.Tangent_Btm_Right);
            m_theWaterBodyOuterParam.SetTopValue2(outflowParas.Tangent_Top_Left);
            m_theWaterBodyOuterParam.SetBtmValue2(outflowParas.Tangent_Btm_Left);
            m_theWaterBodyOuterParam.SetH1(outflowParas.H1);
            m_theWaterBodyOuterParam.SetH2(outflowParas.H2);
            m_theWaterBodyOuterParam.SetRadConner(outflowParas.Septalradius);
              this._occDesign2dCtrl.Create2DWaterBody(m_theWaterBodyOuterParam);
            return true;
        }
    }
}