Solidworks et VBA

cs_tomloc Messages postés 3 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 23 janvier 2006 - 7 déc. 2005 à 13:34
anwnn06 Messages postés 5 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 6 décembre 2007 - 6 déc. 2007 à 10:26
Je suis dessinateur-projeteur et je souhaiterai creer une macro qui me permet d'effectuer les meme taches sur differents assemblages (Mise en plan, table de nomenclatures, bulles automatiques, etc) mon probleme c'est que dans l'editeur de macro sous VBA je me rend compte que la macro fait appelle au fichier dans lequel je l'ai creer, quelqu'un pourrait-t-il m'expliquer comment faire pour que cette macro soit valable pour tous mes assemblages?
J'espere être assez clair,
par avance merci

Pour info voila le début du code que je voudrais modifier (la partie rouge renvoi au fichier de création de la macro et je voudrai la remplacer pour qu'elle pointe sur le fichier actif)

im swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
Part.SetPickMode
Set Part = swApp.NewDocument("H:\Public\03 Service Technique\310 FORMES\00 FORMES - FRANCAIS\PL & SC - Schémas et Plans\PL 040 B - A1h .slddrt", 12, 0.2794, 0.4318)
Dim DrawView As Object
Set DrawView = Part.CreateDrawViewFromModelView2("C:\PDMWORKS TEMP\2115-BC-A-TU-CG 01 EG G 50 A.SLDASM", "*Isométrique", 0.2122041534989, 0.2113676749436, 0)
boolstatus = Part.ActivateView("Vue de mise en plan1")
End Sub

3 réponses

puppetmaster_53 Messages postés 1 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 19 janvier 2006
19 janv. 2006 à 22:20
si on part du principe que tu lances ta macro depuis un assemblage, tu peux peut etre essayer ca:

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim Nom_Assemblage as string
Sub main()

Set swApp = Application.SldWorks

Set Nom_Assemblage = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
Part.SetPickMode
Set Part = swApp.NewDocument("H:\Public\03 Service Technique\310 FORMES\00 FORMES - FRANCAIS\PL & SC - Schémas et Plans\PL 040 B - A1h .slddrt", 12, 0.2794, 0.4318)
Dim DrawView As Object
Set DrawView = Part.CreateDrawViewFromModelView2(Nom_Assemblage , "*Isométrique", 0.2122041534989, 0.2113676749436, 0)
boolstatus = Part.ActivateView("Vue de mise en plan1")
End Sub

tiens moi au courant si ca marche, et si ca rate aussi ;-)
Merci, et bon courage
0
cs_tomloc Messages postés 3 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 23 janvier 2006
23 janv. 2006 à 10:32
Merci mais du coup j'ai le message "Erreur de compilation: objet requis" qui apparait

Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Dim Nom_Assemblage As String
Sub main()


Set swApp = Application.SldWorks


Set Nom_Assemblage = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
Part.SetPickMode
Set Part = swApp.NewDocument("H:\Public\03 Service Technique\310 FORMES\00 FORMES - FRANCAIS\PL & SC - Schémas et Plans\PL 040 B - A1h .slddrt", 12, 0.2794, 0.4318)
Dim DrawView As Object
Set DrawView = Part.CreateDrawViewFromModelView2(Nom_Assemblage, "*Isométrique", 0.2122041534989, 0.2113676749436, 0)
boolstatus = Part.ActivateView("Vue de mise en plan1")
End Sub
0
anwnn06 Messages postés 5 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 6 décembre 2007
6 déc. 2007 à 10:26
Comme ça, c'est mieux?

Désolé pour le déterrage!



Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim FeatureData As Object
Dim Feature As Object
Dim Component As Object
Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
Part.SetPickMode
Set Part = swApp.NewDocument("H:\Public\03 Service Technique\310 FORMES\00 FORMES - FRANCAIS\PL & SC  - Schémas et Plans\PL 040 B - A1h .slddrt", 12, 0.2794, 0.4318)
Dim DrawView As Object
Set DrawView = Part.CreateDrawViewFromModelView2(Part.GetPathName, "*Isométrique", 0.2122041534989, 0.2113676749436, 0)
boolstatus = Part.ActivateView("Vue de mise en plan1")
End Sub
0
Rejoignez-nous