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;
}
}
}