Exécution automatique d'une macro Solidworks

Bonjour,

 

est-il possible d'exécuter automatiquement une macro lié à une pièce à l'insertion de celle-ci dans un assemblage Solidworks?

 

D'avance merci!

 

 

je remets le poste que j'ai fais dans l'autre question 

 

pour faire ce genre d'automatisme, c'est plus compliqué il faut faire un complement SW qui gere les evenements de l'applicatif. en fait il faut programmer plus qu'une macro il faut passer par un outils de developpement style microsoft visual studio.

 

Il existe un outil myCAD pour cela qui s'appelle CustomToolBar, dans lequel il y a possibilité de declancher une macro par rapport aux evenements (insertion d'un composant par exemple)

 

Mais plus simple sans cet outil est de créer un raccourci macro dans les barres d'outils.

 

ou de créer une macro qui lance la fonction d'insertion de ce composant puis affiche la fenetre de dimensionnement ...

5 « J'aime »

Bonjour,

Je serais tenté de dire qu'une seule macro ne serait pas suffisante mais avec une succession de macro ça pourrai le faire.

A moins de pouvoir lier plusieurs macro entre elles mais je ne m'y connais pas assez.

Pour l’ouverture lors de l’insertion d’une pièce dans un assemblage, ça dépend si tu souhaites:

 

  • le faire dans un assemblage en particulier (en fonction du nom),
  • le faire pour une pièce en particulier,
  • le faire tout le temps.

 

Pour ce dernier cas c’est simple, tu peux alors remplacer le bouton d’insertion de SolidWorks par un bouton pour ta macro !

1 « J'aime »

Concrètement, je voudrais que lorsque j'insère mon garde-corps dans n'importe quel assemblage, la fenêtre de dimensionnement (et donc la macro associée au garde-corps) s'exécute.

Je vais par la suite créer d'autres éléments standards pour nous (portillon, échelle,...) et je voudrais qu'il en soit de même avec ces pièces.

 

Je suis vraiment ouvert à touts type d'idée, le but final étant de faciliter la vie de l'utilisateur final :D

 

Bonjour,

 

Pourquoi ne pas utiliser les focntions standard de SolidWorks pour faire cela plutôt que de développer des macros qu'il faudra mettre à jour dans les versions futures de SolidWorks.

Pour inserer une pièce ou un assemblage avec une boite de dialogue permettant de gérér des paramètres vous pouvez utiliser soit DriveWorks xpress soit le configuration manager (dans l'onglet des configurations).

 

@+

3 « J'aime »

Cette vidéo explique les macro intégrées aux assemblages :

http://www.youtube.com/watch?v=zbvp1v7_bec

 

La solution, un peu compliquée, serait de créer la macro dans ton assemblage comme indiqué dans la vidéo.

 

De créer une propriété personnalisé "garde-corps" à 0.

 

Ajouter une condition à la macro : détecter lorsque la pièce "garde-corps" est ajoutée.

 

La macro fait son boulot, puis change la propriété "garde-corps" à 1 pour ne plus lancer la macro.

 

Problème : cette macro vérifiera la propriété personnalisé "garde-corps" et si tu insères la pièce à chaque reconstruction : surcharge pour le processeur !

 

Verdict : beaucoup de travail pour pas grand chose... un bouton serait vraiment plus simple !

D'autres possibilités pour lancer des macros :

 

Par une équation, depuis le journal de conception (design binder), depuis une macro feature :

 

http://www.cadsharp.com/blog/4-ways-to-run-solidworks-api-macro-without-run-button/

 

Macro feature : http://www.youtube.com/watch?v=I-cIGMFSBOg

Coyote,

 

j'ai testé la méthode DriveWorksXpress, en définissant un modèle, en capturant les côtes que je souhaite faire varier, mais je ne comprends pas comment faire apparaitre cette fenetre de parametrage à l'insertion de la pièce dans l'assemblage ensuite?

@jfaradon,

 

je bug sur ton idée de creer une macro pour insérer la piéce et générer l'ouverture de la fenêtre.

 

Si tu peux me donner une piste ou alors carrement le programme :D

L'idée est simplement d'ajouter dans la ta macro l'insertion de la pièce au début !

Avec Add component :

http://help.solidworks.com/2012/English/api/sldworksapi/Add_Components_Example_VB.htm

Re,

 

Effectivement avec DriveWorks Xpress j'ai dit une bétise la fenetre ne s'ouvre pas lors de l'insertion.

Par contre avec ma deuxième méthode indiquée à savoir le configuration manager cela fonctionne comme cela, au moment de l'insertion du modèle la fenêtre de paramètrage apparait dans le feature manager.

 

@+

 

Il y a deux manieres de programmer l'insertion d'un composant soit on programme tout (AddComponent)

soit on se contante de lancer la commande comme si on cliquait sur le bouton "Inserer des composants"

 

Pour cela il faut utiliser la methode RunCommnand, qui permet de lancer les commandes SW

Exemple dans ton cas

 

swDoc.Extension.RunCommand(swCommands_e.swCommands_InsertComponents, "")

 

il faut la reference swCommands ajoutée au projet

 

Attention la commande est asynchrone c'est a dire que le code continue sans attendre que la commande d'insertion soit terminé ...

 

 

2 « J'aime »

 Salut à tous.

 

Désolé de ne pas avoir suivi le fil mais j'ai du m'absenter quelques temps.

Bon je stagne toujours et c'est là que je me rencontre que je suis vraiment un novice ;)

 

Bon si une ame charitable peut essayer directement sur ma macro je lui en serait à jamais redevable :D

 

Merci d'avance à tous.


garde-corps.zip