ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magicsld/EnregistrementProp.vb
Revision: 130
Committed: Wed Jul 30 21:26:03 2008 UTC (16 years, 9 months ago) by bournival
File size: 20537 byte(s)
Log Message:
Une mise à jour, car on aura peut-être besoin de mon code.

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     Private LabelMiniSurCoques As sldworks.PropertyManagerPageLabel
55 bournival 46
56 bournival 130
57 bournival 40 ''Controles
58    
59 bournival 48 Private label11 As sldworks.PropertyManagerPageLabel
60     Private checkentite As sldworks.PropertyManagerPageCheckbox
61     Private CheckEnt As sldworks.PropertyManagerPageCheckbox
62 bournival 40
63 bournival 48 Private Gilles1 As sldworks.PropertyManagerPageCheckbox
64     Private Gilles2 As sldworks.PropertyManagerPageCheckbox
65 bournival 40
66    
67 bournival 130 Function Init(ByVal sw As sldworks.SldWorks, ByVal addin As MAGIC.Magic) As Object
68 bournival 40 iSwApp = sw
69     userAddin = addin
70     CreatePage()
71     AddControls()
72     Return Nothing
73     End Function
74    
75     Sub Show()
76     ppage.Show()
77 bournival 130 Me.EngDefaut()
78 bournival 40 End Sub
79    
80     Sub CreatePage()
81     handler = New EnregistrementPageHandler
82     handler.Init(iSwApp, userAddin)
83     Dim options As Integer
84     Dim errors As Integer
85     options = swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton + swPropertyManagerPageOptions_e.swPropertyManagerOptions_CancelButton
86     ppage = iSwApp.CreatePropertyManagerPage("Enregistrement", options, handler, errors)
87     End Sub
88    
89     Sub AddControls()
90     Dim options As Integer
91     Dim leftAlign As Integer
92     Dim controlType As Integer
93    
94    
95 bournival 130
96 bournival 40 ' premier groupe
97     options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded
98     group1 = ppage.AddGroupBox(0, "Exportation vers MAGiC", options)
99    
100 bournival 130
101     ' le label
102     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")
103    
104     'Numberbox2
105     controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
106     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
107     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
108     Numberbox2 = group1.AddControl(5, controlType, "Écart Nodal Global", leftAlign, options, "Entrez la valeur de l'Écart Nodal Global")
109     Numberbox2.Value = 0.015
110     Numberbox2.SetRange(swconst.swNumberboxUnitType_e.swNumberBox_Length, 0.000000001, 100000000, 0.001, True)
111     EnregistrementCode.NumberENG = Numberbox2
112    
113 bournival 40 ' checkOriginal
114     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
115     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
116     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
117     checkOriginal = group1.AddControl(1, controlType, "Afficher le modèle original", leftAlign, options, "Conserve la fenêtre du modèle original (non modifié)")
118     checkOriginal.Checked = True
119     EnregistrementCode.checkboxOriginal = checkOriginal
120    
121    
122     ' checkmodifie
123     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
124     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
125     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
126     checkModifie = group1.AddControl(2, controlType, "Afficher le modèle exporté", leftAlign, options, "Conserve la fenêtre du modèle ayant subit des modifications")
127     checkModifie.Checked = True
128     EnregistrementCode.checkboxModifie = checkModifie
129    
130    
131    
132    
133    
134 bournival 130 ' deuxième groupe, pré-optimisation.
135 bournival 40 options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
136 bournival 46 group2 = ppage.AddGroupBox(3, "Pre-optimisation Manuelle", options)
137 bournival 40 EnregistrementCode.Groupe2 = group2
138    
139    
140    
141     ' le label
142     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")
143    
144     'Numberbox1
145     controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
146     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
147     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
148     Numberbox1 = group2.AddControl(7, controlType, "zone de transition", leftAlign, options, "Entrez la valeur de la zone de transition")
149     Numberbox1.Value = 0
150     Numberbox1.SetRange(2, 0, 10, 1, True)
151     EnregistrementCode.numberbox1 = Numberbox1
152    
153     ' le premier checkbox, valeurs au points pour arrondis
154     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
155     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
156     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
157     checkArrondi = group2.AddControl(8, controlType, "Coefficient de raffinement pour les arrondis", leftAlign, options, "Trouver les congés du modèle")
158     EnregistrementCode.checkArrondi = checkArrondi
159    
160     ' le numberbox pour les arrondis
161     controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
162     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
163     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
164     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")
165     NumberArrondi.Value = 0.2
166     NumberArrondi.SetRange(2, 0.000000000001, 0.999999999999, 0.1, True)
167     EnregistrementCode.NumberArrondi = NumberArrondi
168    
169    
170     ' le second checkbox, valeurs pour les arêtes rentrantes
171     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
172     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
173     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
174     checkRentrant = group2.AddControl(10, controlType, "Coefficient de raffinement pour les arêtes rentrantes", leftAlign, options, "trouver les arêtes rentrantes")
175     EnregistrementCode.checkRentrant = checkRentrant
176    
177     ' le numberbox
178     controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
179     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
180     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
181     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")
182     NumberRentrant.Value = 0.1
183     NumberRentrant.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
184     EnregistrementCode.NumberRentrant = NumberRentrant
185    
186     ' le troisième checkbox, valeurs pour les retrait matière
187     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
188     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
189     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
190     checkMatiere = group2.AddControl(12, controlType, "Coefficient de raffinement pour les retraits matières", leftAlign, options, "Trouver les retraits matière")
191     EnregistrementCode.checkMatiere = checkMatiere
192    
193     ' le numberbox pour les retrait matière
194     controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
195     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
196     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
197     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")
198     NumberMatiere.Value = 0.25
199     NumberMatiere.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
200     EnregistrementCode.NumberMatiere = NumberMatiere
201    
202     'checkbox selectionner des entité a raffiner
203     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
204     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
205     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
206     checkentite = group2.AddControl(14, controlType, "selectionner des entités à raffiner : ", leftAlign, options, "selectionner des entités")
207     EnregistrementCode.checkEntites = checkentite
208    
209     'Selectionpog, qui contiendra les entités sélectionnées
210     controlType = swPropertyManagerPageControlType_e.swControlType_Selectionbox
211     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
212     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
213     selectionpog = group2.AddControl(15, controlType, "sélectionnées des entités", leftAlign, options, "Montre les entités qui ont été sélectionnées")
214     If Not selectionpog Is Nothing Then
215     Dim filter() As Integer = New Integer() {swSelectType_e.swSelVERTICES, swSelectType_e.swSelEDGES, swSelectType_e.swSelFACES} ' pour sélectionner juste les faces, aretes et sommets
216     selectionpog.Height = 50
217     selectionpog.SetSelectionFilters(filter)
218     End If
219     EnregistrementCode.selectionpog = selectionpog
220    
221     'numberbox pour les entités
222     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")
223     controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
224     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
225     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
226     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")
227     Numberentités.Value = 0.25
228     Numberentités.SetRange(2, 0.000000000001, 0.9999999999999, 0.1, True)
229     EnregistrementCode.Numberentités = Numberentités
230    
231     'raffinner individuellement les entité selectionnées
232     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
233     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
234     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
235     CheckEnt = group2.AddControl(18, controlType, "raffiner les entités selectionnées individuellement", leftAlign, options, "selectionner des entités")
236     EnregistrementCode.CheckEnt = CheckEnt
237    
238 bournival 46
239    
240     options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox
241     group4 = ppage.AddGroupBox(40, "Pré-Optimisation Automatique", options)
242     EnregistrementCode.Groupe4 = group4
243 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, "")
244    
245 bournival 46 ' le label
246     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")
247 bournival 49 EnregistrementCode.labelRemi1 = labelRemi1
248 bournival 46
249     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")
250 bournival 130 curseur.SetRange(1, 99)
251 bournival 48 curseur.Position = 95
252     curseur.Style = swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_NotifyWhileTracking + swPropMgrPageSliderStyle_e.swPropMgrPageSliderStyle_AutoTicks
253     curseur.TickFrequency = 5
254     curseur.LineSize = 3
255 bournival 46 EnregistrementCode.curseur = curseur
256    
257     ' le label
258     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")
259    
260 bournival 49
261 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")
262     limiteur.Value = 0.25
263 bournival 130 limiteur.SetRange(swconst.swNumberboxUnitType_e.swNumberBox_UnitlessDouble, 0.01, 1, 0.05, True)
264 bournival 46 EnregistrementCode.limiteur = limiteur
265    
266 bournival 40 ' le troisième groupe pour les études multi-dimensionnelles
267     options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
268     group3 = ppage.AddGroupBox(19, "Étude multi-dimensionnelle", options)
269     EnregistrementCode.Groupe3 = group3
270    
271 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")
272     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
273     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
274     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
275     checkMiniSurCoques = group3.AddControl(32, controlType, "Mettre des mini-poutres dans les cas des intersections coque-coque", leftAlign, options, "")
276     EnregistrementCode.checkboxMiniSurCoque = checkMiniSurCoques
277 bournival 40
278 bournival 130 controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
279     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
280     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
281     checkMultiDecoupage = group3.AddControl(33, controlType, "Faire un multidécoupage pour les intersection coques", leftAlign, options, "")
282     EnregistrementCode.checkboxMultidecoupage = checkMultidecoupage
283    
284 bournival 40 End Sub
285    
286 bournival 130 Public Sub EngDefaut()
287     Dim volume As Double
288     Dim surface As Double
289     Dim eng As Double
290     Dim swMprop As sldworks.MassProperty
291     swMprop = swModel.Extension.CreateMassProperty
292     volume = swMprop.Volume
293     surface = swMprop.SurfaceArea
294     eng = (volume / surface) / 6
295     EnregistrementCode.NumberENG.Value = eng
296    
297    
298     End Sub
299 bournival 40 End Class
300    
301     End Namespace