ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magicsld/EnregistrementProp.vb
Revision: 46
Committed: Wed Aug 22 18:28:53 2007 UTC (18 years ago) by bournival
File size: 17405 byte(s)
Log Message:
Ajout de la page de pré-optimisation automatique et des modification que j'ai apportées.

File Contents

# Content
1 Imports SldWorks
2 Imports SWPublished
3 Imports SwConst
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 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 PropertyManagerPageGroup
23 Private group2 As PropertyManagerPageGroup ' préoptimisation manuelle
24 Private group3 As PropertyManagerPageGroup
25 Private group4 As PropertyManagerPageGroup ' pre-optimisation automatique
26
27 ''Controles
28
29 Private check1 As PropertyManagerPageCheckbox
30 Private Label1 As PropertyManagerPageLabel
31 Private Label2 As PropertyManagerPageLabel
32 Private Numberbox1 As PropertyManagerPageNumberbox
33 Private Numberbox2 As PropertyManagerPageNumberbox
34 Private labelRemi1 As PropertyManagerPageLabel
35 Private labelRemi2 As PropertyManagerPageLabel
36
37
38 Private checkOriginal As PropertyManagerPageCheckbox
39 Private checkModifie As PropertyManagerPageCheckbox
40 Private checkMultimodele As PropertyManagerPageCheckbox
41
42 Private checkArrondi As PropertyManagerPageCheckbox
43 Private checkRentrant As PropertyManagerPageCheckbox
44 Private checkMatiere As PropertyManagerPageCheckbox
45
46 Private NumberArrondi As PropertyManagerPageNumberbox
47 Private NumberRentrant As PropertyManagerPageNumberbox
48 Private NumberMatiere As PropertyManagerPageNumberbox
49
50 Private curseur As Object
51 Private limiteur As PropertyManagerPageNumberbox
52
53
54 ''Controles
55
56 Private label11 As PropertyManagerPageLabel
57 Private checkentite As PropertyManagerPageCheckbox
58 Private CheckEnt As PropertyManagerPageCheckbox
59
60 Private Gilles1 As PropertyManagerPageCheckbox
61 Private Gilles2 As 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 ' le label
237 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")
238
239 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")
240 curseur.setrange(1, 99)
241 curseur.position = 95
242 EnregistrementCode.curseur = curseur
243
244 ' le label
245 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")
246
247 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")
248 limiteur.Value = 0.25
249 limiteur.SetRange(SwConst.swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 0.01, 1, 0.05, True)
250 EnregistrementCode.limiteur = limiteur
251
252 ' le troisième groupe pour les études multi-dimensionnelles
253 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
254 group3 = ppage.AddGroupBox(19, "Étude multi-dimensionnelle", options)
255 EnregistrementCode.Groupe3 = group3
256
257
258 End Sub
259
260 End Class
261
262 End Namespace