ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magicsld/EnregistrementProp.vb
Revision: 48
Committed: Wed Aug 22 21:18:12 2007 UTC (18 years ago) by bournival
File size: 18347 byte(s)
Log Message:
On passe aux nouveaux .dll

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 #Region "Déclaration des controles"
15 'Groupes
16
17 ' les groupes pour l'enregistrement sont ici. On fait (pour l'instant) 2 groupes, le premier demande si l'on veut
18 ' voir la fenêtre originale lors de la sauvegarde et/ou la fenêtre modifiée.
19 ' le deuxième groupe sert à la pré-optimisation de maillage
20
21
22 Private group1 As sldworks.PropertyManagerPageGroup
23 Private group2 As sldworks.PropertyManagerPageGroup ' préoptimisation manuelle
24 Private group3 As sldworks.PropertyManagerPageGroup
25 Private group4 As sldworks.PropertyManagerPageGroup ' pre-optimisation automatique
26
27 ''Controles
28
29 Private check1 As sldworks.PropertyManagerPageCheckbox
30 Private Label1 As sldworks.PropertyManagerPageLabel
31 Private Label2 As sldworks.PropertyManagerPageLabel
32 Private Numberbox1 As sldworks.PropertyManagerPageNumberbox
33 Private Numberbox2 As sldworks.PropertyManagerPageNumberbox
34 Private labelRemi1 As sldworks.PropertyManagerPageLabel
35 Private labelRemi2 As sldworks.PropertyManagerPageLabel
36
37
38 Private checkOriginal As sldworks.PropertyManagerPageCheckbox
39 Private checkModifie As sldworks.PropertyManagerPageCheckbox
40 Private checkMultimodele As sldworks.PropertyManagerPageCheckbox
41
42 Private checkArrondi As sldworks.PropertyManagerPageCheckbox
43 Private checkRentrant As sldworks.PropertyManagerPageCheckbox
44 Private checkMatiere As sldworks.PropertyManagerPageCheckbox
45
46 Private NumberArrondi As sldworks.PropertyManagerPageNumberbox
47 Private NumberRentrant As sldworks.PropertyManagerPageNumberbox
48 Private NumberMatiere As sldworks.PropertyManagerPageNumberbox
49
50 Private curseur As sldworks.PropertyManagerPageSlider
51 Private limiteur As sldworks.PropertyManagerPageNumberbox
52
53
54 ''Controles
55
56 Private label11 As sldworks.PropertyManagerPageLabel
57 Private checkentite As sldworks.PropertyManagerPageCheckbox
58 Private CheckEnt As sldworks.PropertyManagerPageCheckbox
59
60 Private Gilles1 As sldworks.PropertyManagerPageCheckbox
61 Private Gilles2 As sldworks.PropertyManagerPageCheckbox
62
63 #End Region
64
65 Function Init(ByVal sw As SldWorks.SldWorks, ByVal addin As MAGIC.Magic) As Object
66 iSwApp = sw
67 userAddin = addin
68 CreatePage()
69 AddControls()
70 Return Nothing
71 End Function
72
73 Sub Show()
74 ppage.Show()
75 End Sub
76
77 Sub CreatePage()
78 handler = New EnregistrementPageHandler
79 handler.Init(iSwApp, userAddin)
80 Dim options As Integer
81 Dim errors As Integer
82 options = swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton + swPropertyManagerPageOptions_e.swPropertyManagerOptions_CancelButton
83 ppage = iSwApp.CreatePropertyManagerPage("Enregistrement", options, handler, errors)
84 End Sub
85
86 Sub AddControls()
87 Dim options As Integer
88 Dim leftAlign As Integer
89 Dim controlType As Integer
90
91
92 ' premier groupe
93 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded
94 group1 = ppage.AddGroupBox(0, "Exportation vers MAGiC", options)
95
96 ' checkOriginal
97 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
98 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
99 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
100 checkOriginal = group1.AddControl(1, controlType, "Afficher le modèle original", leftAlign, options, "Conserve la fenêtre du modèle original (non modifié)")
101 checkOriginal.Checked = True
102 EnregistrementCode.checkboxOriginal = checkOriginal
103
104
105 ' checkmodifie
106 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
107 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
108 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
109 checkModifie = group1.AddControl(2, controlType, "Afficher le modèle exporté", leftAlign, options, "Conserve la fenêtre du modèle ayant subit des modifications")
110 checkModifie.Checked = True
111 EnregistrementCode.checkboxModifie = checkModifie
112
113
114
115
116
117 ' deuxième groupe, pré-optimisation. par défaut cliqué...
118 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
119 group2 = ppage.AddGroupBox(3, "Pre-optimisation Manuelle", options)
120 EnregistrementCode.Groupe2 = group2
121
122 ' le label
123 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")
124
125 'Numberbox2
126 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
127 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
128 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
129 Numberbox2 = group2.AddControl(5, controlType, "Écart Nodal Global", leftAlign, options, "Entrez la valeur de l'Écart Nodal Global")
130 Numberbox2.Value = 0.015
131 Numberbox2.SetRange(SwConst.swNumberboxUnitType_e.swNumberBox_Length, 0.000000001, 100000000, 0.001, True)
132 EnregistrementCode.NumberENG = Numberbox2
133
134 ' le label
135 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")
136
137 'Numberbox1
138 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
139 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
140 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
141 Numberbox1 = group2.AddControl(7, controlType, "zone de transition", leftAlign, options, "Entrez la valeur de la zone de transition")
142 Numberbox1.Value = 0
143 Numberbox1.SetRange(2, 0, 10, 1, True)
144 EnregistrementCode.numberbox1 = Numberbox1
145
146 ' le premier checkbox, valeurs au points pour arrondis
147 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
148 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
149 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
150 checkArrondi = group2.AddControl(8, controlType, "Coefficient de raffinement pour les arrondis", leftAlign, options, "Trouver les congés du modèle")
151 EnregistrementCode.checkArrondi = checkArrondi
152
153 ' le numberbox pour les arrondis
154 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
155 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
156 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
157 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")
158 NumberArrondi.Value = 0.2
159 NumberArrondi.SetRange(2, 0.000000000001, 0.999999999999, 0.1, True)
160 EnregistrementCode.NumberArrondi = NumberArrondi
161
162
163 ' le second checkbox, valeurs pour les arêtes rentrantes
164 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
165 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
166 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
167 checkRentrant = group2.AddControl(10, controlType, "Coefficient de raffinement pour les arêtes rentrantes", leftAlign, options, "trouver les arêtes rentrantes")
168 EnregistrementCode.checkRentrant = checkRentrant
169
170 ' le numberbox
171 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
172 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
173 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
174 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")
175 NumberRentrant.Value = 0.1
176 NumberRentrant.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
177 EnregistrementCode.NumberRentrant = NumberRentrant
178
179 ' le troisième checkbox, valeurs pour les retrait matière
180 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
181 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
182 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
183 checkMatiere = group2.AddControl(12, controlType, "Coefficient de raffinement pour les retraits matières", leftAlign, options, "Trouver les retraits matière")
184 EnregistrementCode.checkMatiere = checkMatiere
185
186 ' le numberbox pour les retrait matière
187 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
188 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
189 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
190 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")
191 NumberMatiere.Value = 0.25
192 NumberMatiere.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
193 EnregistrementCode.NumberMatiere = NumberMatiere
194
195 'checkbox selectionner des entité a raffiner
196 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
197 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
198 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
199 checkentite = group2.AddControl(14, controlType, "selectionner des entités à raffiner : ", leftAlign, options, "selectionner des entités")
200 EnregistrementCode.checkEntites = checkentite
201
202 'Selectionpog, qui contiendra les entités sélectionnées
203 controlType = swPropertyManagerPageControlType_e.swControlType_Selectionbox
204 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
205 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
206 selectionpog = group2.AddControl(15, controlType, "sélectionnées des entités", leftAlign, options, "Montre les entités qui ont été sélectionnées")
207 If Not selectionpog Is Nothing Then
208 Dim filter() As Integer = New Integer() {swSelectType_e.swSelVERTICES, swSelectType_e.swSelEDGES, swSelectType_e.swSelFACES} ' pour sélectionner juste les faces, aretes et sommets
209 selectionpog.Height = 50
210 selectionpog.SetSelectionFilters(filter)
211 End If
212 EnregistrementCode.selectionpog = selectionpog
213
214 'numberbox pour les entités
215 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")
216 controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
217 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
218 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
219 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")
220 Numberentités.Value = 0.25
221 Numberentités.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
222 EnregistrementCode.Numberentités = Numberentités
223
224 'raffinner individuellement les entité selectionnées
225 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
226 leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
227 options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
228 CheckEnt = group2.AddControl(18, controlType, "raffiner les entités selectionnées individuellement", leftAlign, options, "selectionner des entités")
229 EnregistrementCode.CheckEnt = CheckEnt
230
231
232
233 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox
234 group4 = ppage.AddGroupBox(40, "Pré-Optimisation Automatique", options)
235 EnregistrementCode.Groupe4 = group4
236 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, "")
237
238 ' le label
239 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")
240
241 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")
242 curseur.setrange(1, 99)
243 curseur.Position = 95
244 curseur.Style = swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_NotifyWhileTracking + swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_AutoTicks
245 curseur.TickFrequency = 5
246 curseur.LineSize = 3
247 EnregistrementCode.curseur = curseur
248
249 ' le label
250 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")
251
252 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")
253 limiteur.Value = 0.25
254 limiteur.SetRange(SwConst.swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 0.01, 1, 0.05, True)
255 EnregistrementCode.limiteur = limiteur
256
257 ' le troisième groupe pour les études multi-dimensionnelles
258 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
259 group3 = ppage.AddGroupBox(19, "Étude multi-dimensionnelle", options)
260 EnregistrementCode.Groupe3 = group3
261
262
263 End Sub
264
265 End Class
266
267 End Namespace