ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magicsld/EnregistrementProp.vb
Revision: 205
Committed: Thu Jul 23 20:53:57 2009 UTC (15 years, 9 months ago) by bournival
File size: 21177 byte(s)
Log Message:
Commit de MAGiC_SLD pendant que j'y pense.  Les modifications ne devraient pas concerner personne d'autre que moi.   -- Sylvain

File Contents

# Content
1 Imports SolidWorks.Interop
2 Imports SolidWorks.Interop.swconst
3 Imports SolidWorks.Interop.swpublished
4
5 ' la classe des propriétés
6
7 Namespace Enregistrement
8 Public Class Enregistrement
9 Dim iSwApp As SldWorks.SldWorks
10 Dim userAddin As MAGIC.Magic
11 Dim handler As EnregistrementPageHandler
12 Dim ppage As sldworks.PropertyManagerPage2
13
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
17 ' voir la fenêtre originale lors de la sauvegarde et/ou la fenêtre modifiée.
18 ' le deuxième groupe sert à la pré-optimisation de maillage
19
20
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 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 Public checkSectionSimpleSurPoutre As sldworks.PropertyManagerPageCheckbox
55 Private LabelMiniSurCoques As sldworks.PropertyManagerPageLabel
56
57
58 ''Controles
59
60 Private label11 As sldworks.PropertyManagerPageLabel
61 Private checkentite As sldworks.PropertyManagerPageCheckbox
62 Private CheckEnt As sldworks.PropertyManagerPageCheckbox
63
64 Private Gilles1 As sldworks.PropertyManagerPageCheckbox
65 Private Gilles2 As sldworks.PropertyManagerPageCheckbox
66
67
68 Function Init(ByVal sw As sldworks.SldWorks, ByVal addin As MAGIC.Magic) As Object
69 iSwApp = sw
70 userAddin = addin
71 CreatePage()
72 AddControls()
73 Return Nothing
74 End Function
75
76 Sub Show()
77 ppage.Show()
78 Me.EngDefaut()
79 End Sub
80
81 Sub CreatePage()
82 handler = New EnregistrementPageHandler
83 handler.Init(iSwApp, userAddin)
84 Dim options As Integer
85 Dim errors As Integer
86 options = swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton + swPropertyManagerPageOptions_e.swPropertyManagerOptions_CancelButton
87 ppage = iSwApp.CreatePropertyManagerPage("Enregistrement", options, handler, errors)
88 End Sub
89
90 Sub AddControls()
91 Dim options As Integer
92 Dim leftAlign As Integer
93 Dim controlType As Integer
94
95
96
97 ' premier groupe
98 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded
99 group1 = ppage.AddGroupBox(0, "Exportation vers MAGiC", options)
100
101
102 ' le label
103 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")
104
105 'Numberbox2
106 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
107 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
108 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
109 Numberbox2 = group1.AddControl(5, controlType, "Écart Nodal Global", leftAlign, options, "Entrez la valeur de l'Écart Nodal Global")
110 Numberbox2.Value = 0.015
111 Numberbox2.SetRange(swconst.swNumberboxUnitType_e.swNumberBox_Length, 0.000000001, 100000000, 0.001, True)
112 EnregistrementCode.NumberENG = Numberbox2
113
114 ' checkOriginal
115 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
116 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
117 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
118 checkOriginal = group1.AddControl(1, controlType, "Afficher le modèle original", leftAlign, options, "Conserve la fenêtre du modèle original (non modifié)")
119 checkOriginal.Checked = True
120 EnregistrementCode.checkboxOriginal = checkOriginal
121
122
123 ' checkmodifie
124 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
125 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
126 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
127 checkModifie = group1.AddControl(2, controlType, "Afficher le modèle exporté", leftAlign, options, "Conserve la fenêtre du modèle ayant subit des modifications")
128 checkModifie.Checked = True
129 EnregistrementCode.checkboxModifie = checkModifie
130
131
132
133
134
135 ' deuxième groupe, pré-optimisation.
136 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
137 group2 = ppage.AddGroupBox(3, "Pre-optimisation Manuelle", options)
138 EnregistrementCode.Groupe2 = group2
139
140
141
142 ' le label
143 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")
144
145 'Numberbox1
146 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
147 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
148 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
149 Numberbox1 = group2.AddControl(7, controlType, "zone de transition", leftAlign, options, "Entrez la valeur de la zone de transition")
150 Numberbox1.Value = 0
151 Numberbox1.SetRange(2, 0, 10, 1, True)
152 EnregistrementCode.numberbox1 = Numberbox1
153
154 ' le premier checkbox, valeurs au points pour arrondis
155 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
156 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
157 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
158 checkArrondi = group2.AddControl(8, controlType, "Coefficient de raffinement pour les arrondis", leftAlign, options, "Trouver les congés du modèle")
159 EnregistrementCode.checkArrondi = checkArrondi
160
161 ' le numberbox pour les arrondis
162 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
163 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
164 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
165 NumberArrondi = group2.AddControl(9, controlType, "Coefficient de raffinement sur les arrondis", leftAlign, options, "Entrez la valeur du coefficient de raffinement de maillage aux points d'échantillonnage pour les arrondis")
166 NumberArrondi.Value = 0.2
167 NumberArrondi.SetRange(2, 0.000000000001, 0.999999999999, 0.1, True)
168 EnregistrementCode.NumberArrondi = NumberArrondi
169
170
171 ' le second checkbox, valeurs pour les arêtes rentrantes
172 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
173 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
174 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
175 checkRentrant = group2.AddControl(10, controlType, "Coefficient de raffinement pour les arêtes rentrantes", leftAlign, options, "trouver les arêtes rentrantes")
176 EnregistrementCode.checkRentrant = checkRentrant
177
178 ' le numberbox
179 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
180 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
181 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
182 NumberRentrant = group2.AddControl(11, controlType, "Coefficient de raffinement sur les arêtes rentrantes", leftAlign, options, "Entrez la valeur du coefficient de raffinement de maillage aux points d'échantillonnage pour les arêtes rentrantes")
183 NumberRentrant.Value = 0.1
184 NumberRentrant.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
185 EnregistrementCode.NumberRentrant = NumberRentrant
186
187 ' le troisième checkbox, valeurs pour les retrait matière
188 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
189 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
190 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
191 checkMatiere = group2.AddControl(12, controlType, "Coefficient de raffinement pour les retraits matières", leftAlign, options, "Trouver les retraits matière")
192 EnregistrementCode.checkMatiere = checkMatiere
193
194 ' le numberbox pour les retrait matière
195 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
196 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
197 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
198 NumberMatiere = group2.AddControl(13, controlType, "Coefficient de raffinement pour les retraits matières", leftAlign, options, "Entrez la valeur du coefficient de raffinement de maillage aux points d'échantillonnage pour les retraits matière")
199 NumberMatiere.Value = 0.25
200 NumberMatiere.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
201 EnregistrementCode.NumberMatiere = NumberMatiere
202
203 'checkbox selectionner des entité a raffiner
204 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
205 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
206 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
207 checkentite = group2.AddControl(14, controlType, "selectionner des entités à raffiner : ", leftAlign, options, "selectionner des entités")
208 EnregistrementCode.checkEntites = checkentite
209
210 'Selectionpog, qui contiendra les entités sélectionnées
211 controlType = swPropertyManagerPageControlType_e.swControlType_Selectionbox
212 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
213 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
214 selectionpog = group2.AddControl(15, controlType, "sélectionnées des entités", leftAlign, options, "Montre les entités qui ont été sélectionnées")
215 If Not selectionpog Is Nothing Then
216 Dim filter() As Integer = New Integer() {swSelectType_e.swSelVERTICES, swSelectType_e.swSelEDGES, swSelectType_e.swSelFACES} ' pour sélectionner juste les faces, aretes et sommets
217 selectionpog.Height = 50
218 selectionpog.SetSelectionFilters(filter)
219 End If
220 EnregistrementCode.selectionpog = selectionpog
221
222 'numberbox pour les entités
223 label11 = group2.AddControl(16, swPropertyManagerPageControlType_e.swControlType_Label, "Coefficient de raffinement des entités selectionnées", swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge, swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_Enabled, "Entrer la valeur aux points des entités selectionnées")
224 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
225 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
226 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
227 Numberentités = group2.AddControl(17, controlType, "Coefficient de raffinement global pour les entités selectionnées", leftAlign, options, "Entrer la valeur du coefficient de raffinement aux points d'échantillonnage pour les entités selectionnées")
228 Numberentités.Value = 0.25
229 Numberentités.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
230 EnregistrementCode.Numberentités = Numberentités
231
232 'raffinner individuellement les entité selectionnées
233 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
234 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
235 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
236 CheckEnt = group2.AddControl(18, controlType, "raffiner les entités selectionnées individuellement", leftAlign, options, "selectionner des entités")
237 EnregistrementCode.CheckEnt = CheckEnt
238
239
240
241 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox
242 group4 = ppage.AddGroupBox(40, "Pré-Optimisation Automatique", options)
243 EnregistrementCode.Groupe4 = group4
244 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, "")
245
246 ' le label
247 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")
248 EnregistrementCode.labelRemi1 = labelRemi1
249
250 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")
251 curseur.SetRange(1, 99)
252 curseur.Position = 95
253 curseur.Style = swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_NotifyWhileTracking + swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_AutoTicks
254 curseur.TickFrequency = 5
255 curseur.LineSize = 3
256 EnregistrementCode.curseur = curseur
257
258 ' le label
259 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")
260
261
262 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")
263 limiteur.Value = 0.25
264 limiteur.SetRange(swconst.swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 0.01, 1, 0.05, True)
265 EnregistrementCode.limiteur = limiteur
266
267 ' le troisième groupe pour les études multi-dimensionnelles
268 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
269 group3 = ppage.AddGroupBox(19, "Étude multi-dimensionnelle", options)
270 EnregistrementCode.Groupe3 = group3
271
272 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")
273 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
274 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
275 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
276 checkMiniSurCoques = group3.AddControl(32, controlType, "Mettre des mini-poutres dans les cas des intersections coque-coque", leftAlign, options, "")
277 EnregistrementCode.checkboxMiniSurCoque = checkMiniSurCoques
278
279
280
281 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
282 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
283 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
284 checkSectionSimpleSurPoutre = group3.AddControl(34, controlType, "Découpage simple pour les intersections de type poutre", leftAlign, options, "")
285 EnregistrementCode.checkboxSectionSimpleSurPoutre = checkSectionSimpleSurPoutre
286
287 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
288 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
289 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
290 checkMultiDecoupage = group3.AddControl(33, controlType, "Faire un multidécoupage pour les intersection coques", leftAlign, options, "")
291 EnregistrementCode.checkboxMultidecoupage = checkMultiDecoupage
292
293
294
295 End Sub
296
297 Public Sub EngDefaut()
298 Dim volume As Double
299 Dim surface As Double
300 Dim eng As Double
301 Dim swMprop As sldworks.MassProperty
302 swMprop = swModel.Extension.CreateMassProperty
303 volume = swMprop.Volume
304 surface = swMprop.SurfaceArea
305 eng = (volume / surface) / 6
306 EnregistrementCode.NumberENG.Value = eng
307
308
309 End Sub
310 End Class
311
312 End Namespace