chenn
2025-04-02 b398603062f8e7a5f3213a36ebc5b30508596815
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using HydrEngineCSharp;
 
namespace DPumpHydr.WinFrmUI.Volute
{
    public partial class OccDesign3DCtrl: OccDesignBaseCtrl
    {
        public OccDesign3DCtrl()
        {
            this._is3D = true ;
        }
        public override void Initial()
        { 
            // 创建时的代码
            pDisplayView = new HydrEngineCSharp.CDisplayView();
 
            pDisplayView.InitOCCDraw();
            IntPtr hwnd = this.Handle;
          
            // 初始化更新代码
            pDisplayView.InitialUpdateOCC((uint)hwnd, this._is3D);
 
            bool bSucc = pDisplayView.BeginTurbopumpTopoShape(DPumpHydr.WinFrmUI.Volute.GlobalParas.RootTopoShapeName);
        }
 
 
 
        #region 加厚
        /// <summary>
        /// 加厚
        /// </summary>
        /// <param name="dThickness"></param>
        public void BuildThicknessBody(double dThickness)
        {
            HydrProperties theHydrProperties = new HydrProperties();
            theHydrProperties.SetShapeGuid(DPumpHydr.WinFrmUI.Volute.GlobalParas.ThicknessBodyShapeName);
            theHydrProperties.SetShapeColor(
             DPumpHydr.WinFrmUI.Volute.GlobalParas.ThicknessBodyColor.R,
             DPumpHydr.WinFrmUI.Volute.GlobalParas.ThicknessBodyColor.G,
             DPumpHydr.WinFrmUI.Volute.GlobalParas.ThicknessBodyColor.B, 256);
 
            ToolTips theToolTips = pDisplayView.buildThicknessBody(theHydrProperties, dThickness);
            if (theToolTips != null)
            {
                //string str = theToolTips.GetToolTips();
                Invalidate(true);
                pDisplayView.FitAll3DViews(true);
            }
            if(theToolTips.GetTipsId() != 1)
            {
                MessageBox.Show(theToolTips.GetToolTips(), "加厚提示");
            }
        }
        public void SetThicknessBodyVisible(bool isVisible)
        {
            if (isVisible)
                pDisplayView.ShowTopoShape(TopoTypeDisplay.EThicknessBody);
            else
                pDisplayView.HideTopoShape(TopoTypeDisplay.EThicknessBody);
        }
        public bool IsThicknessBodyVisible
        {
            get
            {
                return pDisplayView.IsShowTopoShape(TopoTypeDisplay.EThicknessBody);
            }
            set
            {
                if (value)
                    pDisplayView.ShowTopoShape(TopoTypeDisplay.EThicknessBody);
                else
                    pDisplayView.HideTopoShape(TopoTypeDisplay.EThicknessBody);
            }
        }
 
 
        #endregion
 
 
        public void SetWaterBodyVisible(bool isVisible)
        { 
            if (isVisible)
                pDisplayView.ShowTopoShape(TopoTypeDisplay.EWaterBody);
            else
                pDisplayView.HideTopoShape(TopoTypeDisplay.EWaterBody);
        }
        public bool IsWaterBodyVisible
        {
            get
            {
                return pDisplayView.IsShowTopoShape(TopoTypeDisplay.EWaterBody);
            }
            set
            {
                if (value)
                    pDisplayView.ShowTopoShape(TopoTypeDisplay.EWaterBody);
                else
                    pDisplayView.HideTopoShape(TopoTypeDisplay.EWaterBody);
            }
        }
        //设置透明度
        public void setWaterBodyOpacity(int nRad, int nGreen, int nBlue, int nAlpha)
        {
            pDisplayView.setWaterBodyClr(nRad, nGreen, nBlue, nAlpha);
        }
 
 
        public bool ExportWaterBodyFile(string aFileName, HydrEngineCSharp.FileType nFileType)
        {  
            return pDisplayView.SaveWaterBody(aFileName, nFileType); 
        }
 
        public bool ExportThicknessBody(string aFileName, HydrEngineCSharp.FileType nFileType)
        { 
            return pDisplayView.SaveThicknessBody(aFileName, nFileType); 
        }
 
        public bool ExportWaterAndThicknessBodyFile(string aFileName, HydrEngineCSharp.FileType nFileType)
        { 
            return pDisplayView.SaveWaterAndThicknessBody(aFileName, nFileType); 
        }
 
        public double GetSectArea9(double ratio)
        {
            return  pDisplayView.getAreabySepOuter(9, ratio);
        }
 
        public double GetSectArea10(double ratio)
        {
            return pDisplayView.getAreabySepOuter(10, ratio);
        }
 
    }
}