tangxu
2024-12-29 f7ec23b2fe6e8e48bbb32b8c9321b64529622406
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_Occ.cs
@@ -4,6 +4,7 @@
using System.IO;
using System.Text;
using System.Linq;
using HydrEngineCSharp;
namespace DPumpHydr.WinFrmUI.Volute
{
@@ -37,20 +38,140 @@
            MainDockPanel.AddContent(_designMainDockPanel);
        }
        /// <summary>
        /// 更新1-8
        /// </summary>
        /// <param name="bundle"></param>
        private void RefreshSectShapeWhole18(ViewModel.SectionBundleInfo bundle)
        {
            _occDesign3dCtrl.RefreshAllSectShape18(bundle);
            this._occDesign3dCtrl.RefreshAllSectShape18(bundle);
            this._occDesign2dCtrl.RefreshAllSectShape18(bundle);
            _occDesign2dCtrl.RefreshAllSectShape18(bundle);
            this._sectAreaDockPanel.SetBindingData(bundle);
        }
        private void RefreshSectShapeSingle18( ViewModel.SectionShapePara para)
        //更新单个断面
        private void RefreshSectShapeSingle18(ViewModel.SectionShapePara para)
        {
            this._sectionBundleInfo.FromSectionShapePara(para);
            _occDesign3dCtrl.RefreshSingleSectShape18(para);
            this._occDesign3dCtrl.RefreshSingleSectShape18(para);
            _occDesign2dCtrl.RefreshSingleSectShape18(para);
            this._occDesign2dCtrl.RefreshSingleSectShape18(para);
            this._sectAreaDockPanel.SetBindingData(para);
        }
        private WaterBodyOuterParam m_theWaterBodyOuterParam;
        private bool CreateWaterBody3D(DPumpHydr.WinFrmUI.Volute.ViewModel.OtuflowParas outflowParas)
        {
            this._outflowParas = outflowParas;
            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 EditWaterBody3D(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);
            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 CreateWaterBody2D(DPumpHydr.WinFrmUI.Volute.ViewModel.OtuflowParas outflowParas)
        {
            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;
        }
    }
}