Solidworks et VBA

Signaler
Messages postés
3
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
23 janvier 2006
-
Messages postés
5
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
6 décembre 2007
-
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

Messages postés
1
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
19 janvier 2006

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
Messages postés
3
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
23 janvier 2006

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
Messages postés
5
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
6 décembre 2007

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