1 |
< |
Imports SldWorks |
2 |
< |
Imports SWPublished |
3 |
< |
Imports SwConst |
1 |
> |
Imports SolidWorks.Interop |
2 |
> |
Imports SolidWorks.Interop.swconst |
3 |
> |
Imports SolidWorks.Interop.swpublished |
4 |
|
|
5 |
|
' la classe des propriétés |
6 |
|
|
9 |
|
Dim iSwApp As SldWorks.SldWorks |
10 |
|
Dim userAddin As MAGIC.Magic |
11 |
|
Dim handler As EnregistrementPageHandler |
12 |
< |
Dim ppage As PropertyManagerPage2 |
12 |
> |
Dim ppage As sldworks.PropertyManagerPage2 |
13 |
|
|
14 |
– |
#Region "Déclaration des controles" |
14 |
|
'Groupes |
15 |
|
|
16 |
|
' les groupes pour l'enregistrement sont ici. On fait (pour l'instant) 2 groupes, le premier demande si l'on veut |
18 |
|
' le deuxième groupe sert à la pré-optimisation de maillage |
19 |
|
|
20 |
|
|
21 |
< |
Private group1 As PropertyManagerPageGroup |
22 |
< |
Private group2 As PropertyManagerPageGroup |
23 |
< |
Private group3 As PropertyManagerPageGroup |
21 |
> |
Private group1 As sldworks.PropertyManagerPageGroup |
22 |
> |
Private group2 As sldworks.PropertyManagerPageGroup ' préoptimisation manuelle |
23 |
> |
Private group3 As sldworks.PropertyManagerPageGroup |
24 |
> |
Private group4 As sldworks.PropertyManagerPageGroup ' pre-optimisation automatique |
25 |
|
|
26 |
|
''Controles |
27 |
|
|
28 |
< |
Private check1 As PropertyManagerPageCheckbox |
29 |
< |
Private Label1 As PropertyManagerPageLabel |
30 |
< |
Private Label2 As PropertyManagerPageLabel |
31 |
< |
Private Numberbox1 As PropertyManagerPageNumberbox |
32 |
< |
Private Numberbox2 As PropertyManagerPageNumberbox |
33 |
< |
|
34 |
< |
|
35 |
< |
Private checkOriginal As PropertyManagerPageCheckbox |
36 |
< |
Private checkModifie As PropertyManagerPageCheckbox |
37 |
< |
Private checkMultimodele As PropertyManagerPageCheckbox |
38 |
< |
|
39 |
< |
Private checkArrondi As PropertyManagerPageCheckbox |
40 |
< |
Private checkRentrant As PropertyManagerPageCheckbox |
41 |
< |
Private checkMatiere As PropertyManagerPageCheckbox |
42 |
< |
|
43 |
< |
Private NumberArrondi As PropertyManagerPageNumberbox |
44 |
< |
Private NumberRentrant As PropertyManagerPageNumberbox |
45 |
< |
Private NumberMatiere As PropertyManagerPageNumberbox |
28 |
> |
Private check1 As sldworks.PropertyManagerPageCheckbox |
29 |
> |
Private Label1 As sldworks.PropertyManagerPageLabel |
30 |
> |
Private Label2 As sldworks.PropertyManagerPageLabel |
31 |
> |
Private Numberbox1 As sldworks.PropertyManagerPageNumberbox |
32 |
> |
Private Numberbox2 As sldworks.PropertyManagerPageNumberbox |
33 |
> |
Private labelRemi1 As sldworks.PropertyManagerPageLabel |
34 |
> |
Private labelRemi2 As sldworks.PropertyManagerPageLabel |
35 |
> |
|
36 |
> |
|
37 |
> |
Private checkOriginal As sldworks.PropertyManagerPageCheckbox |
38 |
> |
Private checkModifie As sldworks.PropertyManagerPageCheckbox |
39 |
> |
Private checkMultimodele As sldworks.PropertyManagerPageCheckbox |
40 |
> |
|
41 |
> |
Private checkArrondi As sldworks.PropertyManagerPageCheckbox |
42 |
> |
Private checkRentrant As sldworks.PropertyManagerPageCheckbox |
43 |
> |
Private checkMatiere As sldworks.PropertyManagerPageCheckbox |
44 |
> |
|
45 |
> |
Private NumberArrondi As sldworks.PropertyManagerPageNumberbox |
46 |
> |
Private NumberRentrant As sldworks.PropertyManagerPageNumberbox |
47 |
> |
Private NumberMatiere As sldworks.PropertyManagerPageNumberbox |
48 |
> |
|
49 |
> |
Private curseur As sldworks.PropertyManagerPageSlider |
50 |
> |
Private limiteur As sldworks.PropertyManagerPageNumberbox |
51 |
> |
|
52 |
> |
Public checkMiniSurCoques As sldworks.PropertyManagerPageCheckbox |
53 |
> |
Public checkMultiDecoupage As sldworks.PropertyManagerPageCheckbox |
54 |
> |
Private LabelMiniSurCoques As sldworks.PropertyManagerPageLabel |
55 |
|
|
56 |
|
|
57 |
|
''Controles |
58 |
|
|
59 |
< |
Private label11 As PropertyManagerPageLabel |
60 |
< |
Private checkentite As PropertyManagerPageCheckbox |
61 |
< |
Private CheckEnt As PropertyManagerPageCheckbox |
59 |
> |
Private label11 As sldworks.PropertyManagerPageLabel |
60 |
> |
Private checkentite As sldworks.PropertyManagerPageCheckbox |
61 |
> |
Private CheckEnt As sldworks.PropertyManagerPageCheckbox |
62 |
|
|
63 |
< |
Private Gilles1 As PropertyManagerPageCheckbox |
64 |
< |
Private Gilles2 As PropertyManagerPageCheckbox |
63 |
> |
Private Gilles1 As sldworks.PropertyManagerPageCheckbox |
64 |
> |
Private Gilles2 As sldworks.PropertyManagerPageCheckbox |
65 |
|
|
57 |
– |
#End Region |
66 |
|
|
67 |
< |
Function Init(ByVal sw As SldWorks.SldWorks, ByVal addin As MAGIC.Magic) As Object |
67 |
> |
Function Init(ByVal sw As sldworks.SldWorks, ByVal addin As MAGIC.Magic) As Object |
68 |
|
iSwApp = sw |
69 |
|
userAddin = addin |
70 |
|
CreatePage() |
74 |
|
|
75 |
|
Sub Show() |
76 |
|
ppage.Show() |
77 |
+ |
Me.EngDefaut() |
78 |
|
End Sub |
79 |
|
|
80 |
|
Sub CreatePage() |
92 |
|
Dim controlType As Integer |
93 |
|
|
94 |
|
|
95 |
+ |
|
96 |
|
' premier groupe |
97 |
|
options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded |
98 |
|
group1 = ppage.AddGroupBox(0, "Exportation vers MAGiC", options) |
99 |
|
|
100 |
+ |
|
101 |
+ |
' le label |
102 |
+ |
Label2 = group1.AddControl(4, swPropertyManagerPageControlType_e.swControlType_Label, "Donnez l'Écart Nodal Global", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_Enabled, "Il faut spécifier l'Écart Nodal Global à utiliser") |
103 |
+ |
|
104 |
+ |
'Numberbox2 |
105 |
+ |
controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox |
106 |
+ |
leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge |
107 |
+ |
options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove |
108 |
+ |
Numberbox2 = group1.AddControl(5, controlType, "Écart Nodal Global", leftAlign, options, "Entrez la valeur de l'Écart Nodal Global") |
109 |
+ |
Numberbox2.Value = 0.015 |
110 |
+ |
Numberbox2.SetRange(swconst.swNumberboxUnitType_e.swNumberBox_Length, 0.000000001, 100000000, 0.001, True) |
111 |
+ |
EnregistrementCode.NumberENG = Numberbox2 |
112 |
+ |
|
113 |
|
' checkOriginal |
114 |
|
controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox |
115 |
|
leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge |
127 |
|
checkModifie.Checked = True |
128 |
|
EnregistrementCode.checkboxModifie = checkModifie |
129 |
|
|
107 |
– |
'' premier check de Gilles |
108 |
– |
'controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox |
109 |
– |
'leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge |
110 |
– |
'options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible |
111 |
– |
'Gilles1 = group1.AddControl(100, controlType, "CAD Feature Simplification", leftAlign, options, "Adds simplification features in the feature tree") |
112 |
– |
'Gilles1.Checked = False |
113 |
– |
'EnregistrementCode.Gilles1 = Gilles1 |
114 |
– |
|
115 |
– |
'' second check de Gilles |
116 |
– |
'controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox |
117 |
– |
'leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge |
118 |
– |
'options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible |
119 |
– |
'Gilles2 = group1.AddControl(101, controlType, "MCT + Meshing", leftAlign, options, "MC Topology adaptation and meshing") |
120 |
– |
'Gilles2.Checked = False |
121 |
– |
'EnregistrementCode.Gilles2 = Gilles2 |
130 |
|
|
131 |
|
|
132 |
|
|
133 |
< |
' deuxième groupe, pré-optimisation. par défaut cliqué... |
133 |
> |
|
134 |
> |
' deuxième groupe, pré-optimisation. |
135 |
|
options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked |
136 |
< |
group2 = ppage.AddGroupBox(3, "Pre-optimisation en fonction des caractéristiques de forme", options) |
136 |
> |
group2 = ppage.AddGroupBox(3, "Pre-optimisation Manuelle", options) |
137 |
|
EnregistrementCode.Groupe2 = group2 |
138 |
|
|
130 |
– |
' le label |
131 |
– |
Label2 = group2.AddControl(4, swPropertyManagerPageControlType_e.swControlType_Label, "Donnez l'Écart Nodal Global", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_Enabled, "Il faut spécifier l'Écart Nodal Global à utiliser") |
139 |
|
|
133 |
– |
'Numberbox2 |
134 |
– |
controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox |
135 |
– |
leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge |
136 |
– |
options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove |
137 |
– |
Numberbox2 = group2.AddControl(5, controlType, "Écart Nodal Global", leftAlign, options, "Entrez la valeur de l'Écart Nodal Global") |
138 |
– |
Numberbox2.Value = 0.015 |
139 |
– |
Numberbox2.SetRange(SwConst.swNumberboxUnitType_e.swNumberBox_Length, 0.000000001, 100000000, 0.001, True) |
140 |
– |
EnregistrementCode.NumberENG = Numberbox2 |
140 |
|
|
141 |
|
' le label |
142 |
|
Label1 = group2.AddControl(6, swPropertyManagerPageControlType_e.swControlType_Label, "Creer des points dans le volume : Donnez la valeur de la zone de transition", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_Enabled, "Cette option permet de faire varier le coefficient de raffinement de maillage dans le volume") |
235 |
|
CheckEnt = group2.AddControl(18, controlType, "raffiner les entités selectionnées individuellement", leftAlign, options, "selectionner des entités") |
236 |
|
EnregistrementCode.CheckEnt = CheckEnt |
237 |
|
|
238 |
+ |
|
239 |
+ |
|
240 |
+ |
options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox |
241 |
+ |
group4 = ppage.AddGroupBox(40, "Pré-Optimisation Automatique", options) |
242 |
+ |
EnregistrementCode.Groupe4 = group4 |
243 |
+ |
Dim labelCommentaire As sldworks.PropertyManagerPageLabel = group4.AddControl(47, swPropertyManagerPageControlType_e.swControlType_Label, "Valable uniquement pour les retraits de matière pour l'instant", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible, "") |
244 |
+ |
|
245 |
+ |
' le label |
246 |
+ |
labelRemi1 = group4.AddControl(45, swPropertyManagerPageControlType_e.swControlType_Label, "Précision d'analyse", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_Enabled, "Précision d'analyse souhaitée") |
247 |
+ |
EnregistrementCode.labelRemi1 = labelRemi1 |
248 |
+ |
|
249 |
+ |
curseur = group4.AddControl(41, swPropertyManagerPageControlType_e.swControlType_Slider, "Précision d'analyse", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove, "Mettre du texte ici") |
250 |
+ |
curseur.SetRange(1, 99) |
251 |
+ |
curseur.Position = 95 |
252 |
+ |
curseur.Style = swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_NotifyWhileTracking + swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_AutoTicks |
253 |
+ |
curseur.TickFrequency = 5 |
254 |
+ |
curseur.LineSize = 3 |
255 |
+ |
EnregistrementCode.curseur = curseur |
256 |
+ |
|
257 |
+ |
' le label |
258 |
+ |
labelRemi2 = group4.AddControl(46, swPropertyManagerPageControlType_e.swControlType_Label, "Limiteur de pente d'écart nodal", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_Enabled, "Limiteur de pente d'évolution d'écart nodal") |
259 |
+ |
|
260 |
+ |
|
261 |
+ |
limiteur = group4.AddControl(42, swPropertyManagerPageControlType_e.swControlType_Numberbox, "Limiteur de pente d'écart nodal", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove, "Encore du texte") |
262 |
+ |
limiteur.Value = 0.25 |
263 |
+ |
limiteur.SetRange(swconst.swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 0.01, 1, 0.05, True) |
264 |
+ |
EnregistrementCode.limiteur = limiteur |
265 |
+ |
|
266 |
|
' le troisième groupe pour les études multi-dimensionnelles |
267 |
|
options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked |
268 |
|
group3 = ppage.AddGroupBox(19, "Étude multi-dimensionnelle", options) |
269 |
|
EnregistrementCode.Groupe3 = group3 |
270 |
|
|
271 |
+ |
LabelMiniSurCoques = group3.AddControl(31, swPropertyManagerPageControlType_e.swControlType_Label, "Mettre des mini-poutres dans les cas des intersections coque-coque", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_Enabled, "Les mini-poutres sont facultatives dans le cas d'intersections coque-coque. Les utiliser est facultatif") |
272 |
+ |
controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox |
273 |
+ |
leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge |
274 |
+ |
options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible |
275 |
+ |
checkMiniSurCoques = group3.AddControl(32, controlType, "Mettre des mini-poutres dans les cas des intersections coque-coque", leftAlign, options, "") |
276 |
+ |
EnregistrementCode.checkboxMiniSurCoque = checkMiniSurCoques |
277 |
+ |
|
278 |
+ |
controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox |
279 |
+ |
leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge |
280 |
+ |
options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible |
281 |
+ |
checkMultiDecoupage = group3.AddControl(33, controlType, "Faire un multidécoupage pour les intersection coques", leftAlign, options, "") |
282 |
+ |
EnregistrementCode.checkboxMultidecoupage = checkMultidecoupage |
283 |
|
|
284 |
|
End Sub |
285 |
|
|
286 |
+ |
Public Sub EngDefaut() |
287 |
+ |
Dim volume As Double |
288 |
+ |
Dim surface As Double |
289 |
+ |
Dim eng As Double |
290 |
+ |
Dim swMprop As sldworks.MassProperty |
291 |
+ |
swMprop = swModel.Extension.CreateMassProperty |
292 |
+ |
volume = swMprop.Volume |
293 |
+ |
surface = swMprop.SurfaceArea |
294 |
+ |
eng = (volume / surface) / 6 |
295 |
+ |
EnregistrementCode.NumberENG.Value = eng |
296 |
+ |
|
297 |
+ |
|
298 |
+ |
End Sub |
299 |
|
End Class |
300 |
|
|
301 |
|
End Namespace |