Je debute en VBA et j'aimerais creer une macro qui creer un assemblage et insere d'abord une 1ere pièce.
J'ai essayer d'enregistrer une macro, mais celle-ci ne fonctionne pas !
La voici :
Dim swApp As ObjectDim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2015\templates\Assemblage.asmdot", 0, 0, 0) swApp.ActivateDoc2 "Assemblage1", False, longstatus Set Part = swApp.ActiveDoc Dim myModelView As Object Set myModelView = Part.ActiveView myModelView.FrameState = swWindowState_e.swWindowMaximized
Ah d'accord, donc la seule solution c'est d'ouvrir d'abord la pièce, de l'insérer dans l'assemblage puis de la fermer ? Il n'existe pas d'autre fonction que AddComponent ?
Autre question :
Quant j'enregistre des macros, je me retrouve souvent avec des variable tel que boolstatus, longstatus, etc... Quelqu'un pourrait m'expliquer a quoi servent elle ? A la lecture du code j'ai l'impression que ce sont des variables qui n'ont pas vraiment de but précis mais qui servent pour tout et pour rien. Est ce bien cela ?
Les variables boolstatus, longstatus, etc ... ne servent pas tout à fait à rien, par exemple, pour la fonction AddComponent, boolstatus est la valeur de retour de la méthode :
Function AddComponent(_
ByVal CompName As System.String, _
ByVal X As System.Double, _
ByVal Y As System.Double, _
ByVal Z As System.Double _
) As System.Boolean
Regarde déjà de ce coté avant de te lancer tête baissée dans les macros sinon tu risque de vite te perdre, et puis après, un peu de lecture sur les API de Solidworks que l'on trouve ici.
Comme dit dans le précédent message, ces variables permettent de stocker des valeurs de retour de fonctions.
Quand la fonction doit retourner plusieurs valeurs (messages d'erreur, résultat de la fonction comme par exemple lorsque l'on accède aux propriétés personnalisées) il faut d'abord créer les variables et les passer par référence à la fonction pour obtenir les valeurs.