Macro génération pdf et step

Bonjour à tous!

Tout d’abord, merci au forum d’exister, c’est une vraie source de solution, et merci à tous de vos participations, qui font vivre celui-ci!

Je viens t’intégrer une nouvelle entreprise et j’aimerai mettre en place de nouveaux moyens de travail.

Pour cela, je cherche une macro qui me générerai, depuis la pièce 3D sldprt, un fichier STEP avec dans le nom du fichier, le nom de la pièce + la révision, soit le format NomPièce_Révision.stp, avec si possible une icone lorsque l’on est sur la fenêtre de la pièce dans la barre des taches.

Et pour les mises en plans, une macro qui fait l’export de la mise en plan, avec la révision et la description de la pièce, soit le format NomPièce_révision - description.pdf, tout en reprenant les propriétés personnalisées de la pièces ( c’est au niveau de la pièce que les champs révision et description sont édités).

Espérant avoir été précis dans ma demande, je vous remercie par avance pour votre aide apportée!

Bonne journée @ tous

Bonjour,
En cumulant des macros déjà disponibles, on peut réaliser une macro qui fait le job en fonction du type de fichier ouvert (une seule icône de lancement dans l’interface).
C’est bien aussi de se lancer si on a un peu de connaissance en VBA :slight_smile:

là est où le bas blesse… c’est que je n’ai jamais touché une macro de ma vie.
J’ai bien essayé d’en ouvrir pour voir le contenu, mais je m’y perds…

J’ai un peu de temps sur ma pause du midi, donc quel est le nom des propriétés perso (révision et description) que je puisse fournir le code final directement?
On est d’accord que Nom Fichier = Nom Pièce?

oui tout a fait
nom fichier = nom pièce
Template Utilisés.zip (136,5 Ko)

JE me permet de joindre les fichiers avec les noms exacts et les propriétés comme elles sont nommées

Merci énormément pour l’aide

Est-il possible d’avoir des lignes de commentaires dans le code ? Pour que je puisse être guidé et peut être la faire évoluer dans le temps, sans embeter tout le monde :wink:

De plus, pour la demande d’une icone dans la barre des taches de Solidworks, comment cela marche t-il ?

Re,
Ci-joint le code commenté au maximum.
Les .dot n’ayant pas de propriétés j’ai mis xxx, à changer par les bonnes valeurs
Macro-PDF_STEP.swp (87,5 Ko)

2 « J'aime »

Bonjour Cyril.f,

Merci pour ce travail!!

Cependant, je ne connais pas les fichiers .swp et je ne sais avec quelle application les ouvrir :confused:

oops je crois avoir vu comment l’ouvrir…

Je teste cxela de ce pas :slight_smile:
Merci encore!!

C’est le format natif des macros.
Voir ce lien pour lancer et ajouter un bouton rapide:

Bonjour à tous,

Merci une fois de plus à Cyril.f, la macro fonctionne super bien!!

Juste un bémol pour moi, car à en lire d’autre post (ici et sur d’autre forum), les macros ne peuvent aller lire les propriétés personnalisées ?

Je m’explique par propriétés personnalisées:
afin de d’avoir une interface agréable, avec liste déroulante, calendrier à cliquer, etc… j’ai utilisé l’éditeur de formulaire

Cela me permet d’avoir une arborescence sympathique pour renseigner les champs des propriétés voulues

Sauf que cela n’édite que les champs dans l’onglet spécifique à la configuration


Et à priori non lisible par les macros

Y’a t-il une astuce soit pour renseigner les champs de l’onglet personnaliser ( et eux lisibles par les macros) ou que les macros puissent lire les champs dans l’onglet spécifiques à la configuration ?

De plus, une fois que j’ai renseigner les champs de ma pièce, ils ne sont pas automatiquement écris dans les champs des propriétés de la mise en plan ( de la pièce concernée)

Comment faire, pour renseigner seulement les champs dans la pièce et que ceux-ci soit inscrit directement dans la MEP ?

Beaucoup de question, je sais, mais j’essaie de comprendre au mieux pour pouvoir être plus autonome

Merci à tous !!

Bonjour,
Si c’est lisible via les macros quand le fichier est ouvert dans SW. C’est uniquement si on souhaite les lire sans ouvrir le fichier c’est là que ça se complique.
Dans la macro que j’ai fourni on peut ajouter un traitement pour savoir s’il y a des infos dans l’onglet spécifique à la configuration (uniquement sur part et asm).

Cyril.f pourrais-tu me faire savoir ce que je dois écrire dans la macro pour lire les champs dans spécifiques à la configuration ?

Et est-il possible d’écrire les champs spécifiques à la configuration édités dans la pièce, directement dans les champs de l’onglet personnaliser de la MEP ?

Les macros peuvent lire les propriétés personnalisé ou bien celles spécifiques à la configuration par contre pas la même fonction (de macro) pour l’une ou l’autre.
Pour le dernier point il existe des macros pour reprendre les propriétés de la pièces et les ré-écrire dans la MEP, mais les propriétés sont également accessible depuis la MEP en allant chercher la propriété de la pièce lié à la vue.
Exemple pour la matière: $PRPSHEET:« Material » va chercher la matière de la pièce à la vue référencé dans la MEP, quand $PRP:« DATE » fait référence à la propriété de la MEP:
https://help.solidworks.com/2020/french/EnterprisePDM/Admin/t_creating_SOLIDWORKS_PRP_PRPSHEET_links.htm

Je souhaite que les champs de la carte de propriété soit renseigné par les champs renseignés dans la pièce et pas uniquement le cartouche.
Pour le moment, je renseigne les propriétés de la pièce mais dans la mise en plan, les champs de la carte de propriété sont vides, alors que mon cartouche suit bien ceux de la pièce

de ce fait, comme les champs sont vides, la macro ne s’execute pas comme elle devrait

Deux possibilités, soit on récupère le 3D rattaché au plan et on injecte les valeurs dans les propriétés de la mise en plan.
Autre solution on scanne le cartouche et on récupère les propriétés qui nous intéressent et on les copies dans les propriétés de la mise en plan.
Pour récupérer les valeurs qui sont dans le spécifique à la configuration d’un part ou asm il faut changer dans ces lignes:
sRevision = swModel.CustomInfo2("", "xxx")
Par:

sRevision = swModel.CustomInfo2("Défaut", "xxx") 

Défaut étant le nom d’une configuration. Si plusieurs configurations il faut scanner les différentes infos dans le cas où il y aurait des différences et appliquer le bon traitement.

1 « J'aime »

quel est le plus simple ?
Plutot lire les infos qui sont le cartouche ?

Et sinon comment injecter les valeurs du 3D dans la carte de propriétés de la MEP ?

Les deux sont simples.
Après autre solution dans les propriétés il suffit de mettre dans la colonne expression $PRPSHEET:« xxx » et ça permet de lier les propriétés et les valeurs.
A voir si ça se propage dans le formulaire

Cela ne lit pas la valeur

Et de plus, cela géère une erreur à l’execution de la macro

Capture Erreur Macro

Et lorsque j’appuie sur débogage

Il faut donc changer dans la macro les champs qui sont le cartouche à lire ?

Par exemple
changer
sDescription = swModel.CustomInfo2(«  », « Description »)

par

sDescription = swModel.CustomInfo2(«  », « $PRPSHEET"Description »")

Ou je me plante complet ?

Oups, oui ce n’est pas évalué. A part via la macro je ne vois pas d’autres solutions