ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magicsld/EnregistrementProp.vb
Revision: 40
Committed: Mon Aug 20 21:30:28 2007 UTC (17 years, 9 months ago) by bournival
File size: 16218 byte(s)
Log Message:
Projet de these de Sylvain Bournival. Attention projet VB.

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     Private group2 As PropertyManagerPageGroup
24     Private group3 As PropertyManagerPageGroup
25    
26     ''Controles
27    
28     Private check1 As PropertyManagerPageCheckbox
29     Private Label1 As PropertyManagerPageLabel
30     Private Label2 As PropertyManagerPageLabel
31     Private Numberbox1 As PropertyManagerPageNumberbox
32     Private Numberbox2 As PropertyManagerPageNumberbox
33    
34    
35     Private checkOriginal As PropertyManagerPageCheckbox
36     Private checkModifie As PropertyManagerPageCheckbox
37     Private checkMultimodele As PropertyManagerPageCheckbox
38    
39     Private checkArrondi As PropertyManagerPageCheckbox
40     Private checkRentrant As PropertyManagerPageCheckbox
41     Private checkMatiere As PropertyManagerPageCheckbox
42    
43     Private NumberArrondi As PropertyManagerPageNumberbox
44     Private NumberRentrant As PropertyManagerPageNumberbox
45     Private NumberMatiere As PropertyManagerPageNumberbox
46    
47    
48     ''Controles
49    
50     Private label11 As PropertyManagerPageLabel
51     Private checkentite As PropertyManagerPageCheckbox
52     Private CheckEnt As PropertyManagerPageCheckbox
53    
54     Private Gilles1 As PropertyManagerPageCheckbox
55     Private Gilles2 As PropertyManagerPageCheckbox
56    
57     #End Region
58    
59     Function Init(ByVal sw As SldWorks.SldWorks, ByVal addin As MAGIC.Magic) As Object
60     iSwApp = sw
61     userAddin = addin
62     CreatePage()
63     AddControls()
64     Return Nothing
65     End Function
66    
67     Sub Show()
68     ppage.Show()
69     End Sub
70    
71     Sub CreatePage()
72     handler = New EnregistrementPageHandler
73     handler.Init(iSwApp, userAddin)
74     Dim options As Integer
75     Dim errors As Integer
76     options = swPropertyManagerPageOptions_e.swPropertyManagerOptions_OkayButton + swPropertyManagerPageOptions_e.swPropertyManagerOptions_CancelButton
77     ppage = iSwApp.CreatePropertyManagerPage("Enregistrement", options, handler, errors)
78     End Sub
79    
80     Sub AddControls()
81     Dim options As Integer
82     Dim leftAlign As Integer
83     Dim controlType As Integer
84    
85    
86     ' premier groupe
87     options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Expanded
88     group1 = ppage.AddGroupBox(0, "Exportation vers MAGiC", options)
89    
90     ' checkOriginal
91     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
92     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
93     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
94     checkOriginal = group1.AddControl(1, controlType, "Afficher le modèle original", leftAlign, options, "Conserve la fenêtre du modèle original (non modifié)")
95     checkOriginal.Checked = True
96     EnregistrementCode.checkboxOriginal = checkOriginal
97    
98    
99     ' checkmodifie
100     controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
101     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
102     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
103     checkModifie = group1.AddControl(2, controlType, "Afficher le modèle exporté", leftAlign, options, "Conserve la fenêtre du modèle ayant subit des modifications")
104     checkModifie.Checked = True
105     EnregistrementCode.checkboxModifie = checkModifie
106    
107     '' premier check de Gilles
108     'controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
109     'leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
110     'options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
111     'Gilles1 = group1.AddControl(100, controlType, "CAD Feature Simplification", leftAlign, options, "Adds simplification features in the feature tree")
112     'Gilles1.Checked = False
113     'EnregistrementCode.Gilles1 = Gilles1
114    
115     '' second check de Gilles
116     'controlType = swPropertyManagerPageControlType_e.swControlType_Checkbox
117     'leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
118     'options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible
119     'Gilles2 = group1.AddControl(101, controlType, "MCT + Meshing", leftAlign, options, "MC Topology adaptation and meshing")
120     'Gilles2.Checked = False
121     'EnregistrementCode.Gilles2 = Gilles2
122    
123    
124    
125     ' deuxième groupe, pré-optimisation. par défaut cliqué...
126     options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
127     group2 = ppage.AddGroupBox(3, "Pre-optimisation en fonction des caractéristiques de forme", options)
128     EnregistrementCode.Groupe2 = group2
129    
130     ' le label
131     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")
132    
133     'Numberbox2
134     controlType = swPropertyManagerPageControlType_e.swControlType_Numberbox
135     leftAlign = swPropertyManagerPageControlLeftAlign_e.swControlAlign_LeftEdge
136     options = swAddControlOptions_e.swControlOptions_Enabled + swAddControlOptions_e.swControlOptions_Visible + swAddControlOptions_e.swControlOptions_SmallGapAbove
137     Numberbox2 = group2.AddControl(5, controlType, "Écart Nodal Global", leftAlign, options, "Entrez la valeur de l'Écart Nodal Global")
138     Numberbox2.Value = 0.015
139     Numberbox2.SetRange(SwConst.swNumberboxUnitType_e.swNumberBox_Length, 0.000000001, 100000000, 0.001, True)
140     EnregistrementCode.NumberENG = Numberbox2
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     ' le troisième groupe pour les études multi-dimensionnelles
240     options = swAddGroupBoxOptions_e.swGroupBoxOptions_Visible + swAddGroupBoxOptions_e.swGroupBoxOptions_Checkbox ' + swAddGroupBoxOptions_e.swGroupBoxOptions_Checked
241     group3 = ppage.AddGroupBox(19, "Étude multi-dimensionnelle", options)
242     EnregistrementCode.Groupe3 = group3
243    
244    
245     End Sub
246    
247     End Class
248    
249     End Namespace