using System; using System.Collections.Generic; using System.Windows.Forms; using System.IO; using System.Text; using System.Linq; using HydrEngineCSharp; namespace DPumpHydr.WinFrmUI.Volute { public partial class MainViewPage { OccDesign3DCtrl _occDesign3dCtrl; OccDesign2DCtrl _occDesign2dCtrl; DesignMainDockPanel _designMainDockPanel; private void InitialDesginPanel() { this._occDesign3dCtrl = new OccDesign3DCtrl(); this._occDesign3dCtrl.Size = new System.Drawing.Size(1000, 1000); this._occDesign3dCtrl.Name = "OccDesignCtrl3d"; this._occDesign3dCtrl.Dock = DockStyle.Fill; this._occDesign3dCtrl.Initial( ); this._occDesign2dCtrl = new OccDesign2DCtrl(); this._occDesign2dCtrl.Size = new System.Drawing.Size(1000, 1000); this._occDesign2dCtrl.Name = "OccDesignCtrl2d"; this._occDesign2dCtrl.Dock = DockStyle.Fill; this._occDesign2dCtrl.Initial( ); this._designMainDockPanel = new DesignMainDockPanel(); this._designMainDockPanel.Size = new System.Drawing.Size(1000, 1000); this._designMainDockPanel.Name = "OccDesignCtrl"; this._designMainDockPanel.Dock = DockStyle.Fill; this._designMainDockPanel.DockText = "设计视图"; _designMainDockPanel.SetOccCtrl(_occDesign3dCtrl, _occDesign2dCtrl); MainDockPanel.AddContent(_designMainDockPanel); } /// /// 更新1-8 /// /// private void RefreshSectShapeWhole18(ViewModel.SectionBundleInfo bundle) { this._occDesign3dCtrl.RefreshAllSectShape18(bundle); this._occDesign2dCtrl.RefreshAllSectShape18(bundle); this._sectAreaDockPanel.SetBindingData(bundle); } //更新单个断面 private void RefreshSectShapeSingle18(ViewModel.SectionShapePara para) { this._sectionBundleInfo.FromSectionShapePara(para); this._occDesign3dCtrl.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; } } }