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

# 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     '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 bournival 48 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 bournival 40
26     ''Controles
27    
28 bournival 48 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 bournival 40
36    
37 bournival 48 Private checkOriginal As sldworks.PropertyManagerPageCheckbox
38     Private checkModifie As sldworks.PropertyManagerPageCheckbox
39     Private checkMultimodele As sldworks.PropertyManagerPageCheckbox
40 bournival 40
41 bournival 48 Private checkArrondi As sldworks.PropertyManagerPageCheckbox
42     Private checkRentrant As sldworks.PropertyManagerPageCheckbox
43     Private checkMatiere As sldworks.PropertyManagerPageCheckbox
44 bournival 40
45 bournival 48 Private NumberArrondi As sldworks.PropertyManagerPageNumberbox
46     Private NumberRentrant As sldworks.PropertyManagerPageNumberbox
47     Private NumberMatiere As sldworks.PropertyManagerPageNumberbox
48 bournival 40
49 bournival 48 Private curseur As sldworks.PropertyManagerPageSlider
50     Private limiteur As sldworks.PropertyManagerPageNumberbox
51 bournival 40
52 bournival 130 Public checkMiniSurCoques As sldworks.PropertyManagerPageCheckbox
53     Public checkMultiDecoupage As sldworks.PropertyManagerPageCheckbox
54 bournival 205 Public checkSectionSimpleSurPoutre As sldworks.PropertyManagerPageCheckbox
55 bournival 130 Private LabelMiniSurCoques As sldworks.PropertyManagerPageLabel
56 bournival 46
57 bournival 130
58 bournival 40 ''Controles
59    
60 bournival 48 Private label11 As sldworks.PropertyManagerPageLabel
61     Private checkentite As sldworks.PropertyManagerPageCheckbox
62     Private CheckEnt As sldworks.PropertyManagerPageCheckbox
63 bournival 40
64 bournival 48 Private Gilles1 As sldworks.PropertyManagerPageCheckbox
65     Private Gilles2 As sldworks.PropertyManagerPageCheckbox
66 bournival 40
67    
68 bournival 130 Function Init(ByVal sw As sldworks.SldWorks, ByVal addin As MAGIC.Magic) As Object
69 bournival 40 iSwApp = sw
70     userAddin = addin
71     CreatePage()
72     AddControls()
73     Return Nothing
74     End Function
75    
76     Sub Show()
77     ppage.Show()
78 bournival 130 Me.EngDefaut()
79 bournival 40 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 bournival 130
97 bournival 40 ' premier groupe
98     options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded
99     group1 = ppage.AddGroupBox(0, "Exportation vers MAGiC", options)
100    
101 bournival 130
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 bournival 40 ' 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 bournival 130 ' deuxième groupe, pré-optimisation.
136 bournival 40 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
137 bournival 46 group2 = ppage.AddGroupBox(3, "Pre-optimisation Manuelle", options)
138 bournival 40 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 bournival 46
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 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, "")
245    
246 bournival 46 ' 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 bournival 49 EnregistrementCode.labelRemi1 = labelRemi1
249 bournival 46
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 bournival 130 curseur.SetRange(1, 99)
252 bournival 48 curseur.Position = 95
253     curseur.Style = swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_NotifyWhileTracking + swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_AutoTicks
254     curseur.TickFrequency = 5
255     curseur.LineSize = 3
256 bournival 46 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 bournival 49
262 bournival 46 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 bournival 130 limiteur.SetRange(swconst.swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 0.01, 1, 0.05, True)
265 bournival 46 EnregistrementCode.limiteur = limiteur
266    
267 bournival 40 ' 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 bournival 130 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 bournival 40
279 bournival 205
280    
281 bournival 130 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
282     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
283     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
284 bournival 205 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 bournival 130 checkMultiDecoupage = group3.AddControl(33, controlType, "Faire un multidécoupage pour les intersection coques", leftAlign, options, "")
291 bournival 205 EnregistrementCode.checkboxMultidecoupage = checkMultiDecoupage
292 bournival 130
293 bournival 205
294    
295 bournival 40 End Sub
296    
297 bournival 130 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 bournival 40 End Class
311    
312     End Namespace