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 (17 years, 9 months ago) by bournival
File size: 18347 byte(s)
Log Message:
On passe aux nouveaux .dll

File Contents

# User Rev Content
1 bournival 48 Imports SolidWorks.Interop
2     Imports SolidWorks.Interop.swconst
3     Imports SolidWorks.Interop.swpublished
4 bournival 40
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 bournival 48 Dim ppage As sldworks.PropertyManagerPage2
13 bournival 40
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 bournival 48 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 bournival 40
27     ''Controles
28    
29 bournival 48 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 bournival 40
37    
38 bournival 48 Private checkOriginal As sldworks.PropertyManagerPageCheckbox
39     Private checkModifie As sldworks.PropertyManagerPageCheckbox
40     Private checkMultimodele As sldworks.PropertyManagerPageCheckbox
41 bournival 40
42 bournival 48 Private checkArrondi As sldworks.PropertyManagerPageCheckbox
43     Private checkRentrant As sldworks.PropertyManagerPageCheckbox
44     Private checkMatiere As sldworks.PropertyManagerPageCheckbox
45 bournival 40
46 bournival 48 Private NumberArrondi As sldworks.PropertyManagerPageNumberbox
47     Private NumberRentrant As sldworks.PropertyManagerPageNumberbox
48     Private NumberMatiere As sldworks.PropertyManagerPageNumberbox
49 bournival 40
50 bournival 48 Private curseur As sldworks.PropertyManagerPageSlider
51     Private limiteur As sldworks.PropertyManagerPageNumberbox
52 bournival 40
53 bournival 46
54 bournival 40 ''Controles
55    
56 bournival 48 Private label11 As sldworks.PropertyManagerPageLabel
57     Private checkentite As sldworks.PropertyManagerPageCheckbox
58     Private CheckEnt As sldworks.PropertyManagerPageCheckbox
59 bournival 40
60 bournival 48 Private Gilles1 As sldworks.PropertyManagerPageCheckbox
61     Private Gilles2 As sldworks.PropertyManagerPageCheckbox
62 bournival 40
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 bournival 48 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 bournival 46 ' 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 bournival 48 curseur.Position = 95
244     curseur.Style = swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_NotifyWhileTracking + swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_AutoTicks
245     curseur.TickFrequency = 5
246     curseur.LineSize = 3
247 bournival 46 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 bournival 40 ' 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