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

# User Rev Content
1 bournival 40 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 bournival 46 Private group2 As PropertyManagerPageGroup ' préoptimisation manuelle
24 bournival 40 Private group3 As PropertyManagerPageGroup
25 bournival 46 Private group4 As PropertyManagerPageGroup ' pre-optimisation automatique
26 bournival 40
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 bournival 46 Private labelRemi1 As PropertyManagerPageLabel
35     Private labelRemi2 As PropertyManagerPageLabel
36 bournival 40
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 bournival 46 Private curseur As Object
51     Private limiteur As PropertyManagerPageNumberbox
52 bournival 40
53 bournival 46
54 bournival 40 ''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 bournival 46 group2 = ppage.AddGroupBox(3, "Pre-optimisation Manuelle", options)
120 bournival 40 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 bournival 46
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 bournival 40 ' 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