[RESOLU] Imprimer les MEP des composants d'un assemblage

vos questions concernant les API SolidWorks

[RESOLU] Imprimer les MEP des composants d'un assemblage

Messagepar jayjay » Ven 08 Juil 2011, 18:57

Salut tout le monde,

Je cherche à nouveau à optimaliser l'utilisation de Solidworks et je souhaiterais créer (ou récupérer) une macro qui me permettrait d'imprimer toutes les mises en plan existantes des composants d'un assemblage. J'ai déjà trouvé quelques pistes intéressantes mais je me demandais si cette macro n'avait pas déjà été explorée par d'autres (ou qqch de similaire) ?!

En espérant vous relire rapidement... :wink:
Dernière édition par jayjay le Ven 15 Juil 2011, 11:31, édité 1 fois.
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar Chico » Ven 08 Juil 2011, 22:46

Salut,

Regarde Ce SUJET, tu devrais pouvoir modifier cette macro pour récupérer le nom et le chemin de chaque composant.

Là où ça se complique, c'est au niveau de savoir s'il y a des mises en plan associées. De mémoire, il n'est pas possible de savoir dans quelle mise en plan un composant est appelé. À moins que tes Mises en plan soient dans le même répertoire et possèdent le même nom que la pièce en question. Dans ce cas, je pense que c'est facilement jouable. :wink: Il te suffit de récupérer le chemin de la pièce, tu changes l'extension SLDPRT pour SLDDRW, tu ouvres ta mise en plan, puis tu imprimes. Tu continues pour chaque composant.

En espérant que c'est ce que tu cherchais!
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar jayjay » Sam 09 Juil 2011, 18:21

J'ai pas encore jeté un coup d'oeil mais tu as vu juste, les mises en plan sont dans le même répertoire et ont le même nom que le composant donc ça ne devrait pas posé de problème. J'avais déjà pensé à ça... J'espère que je trouverai ce qu'il me manque dans ton lien !

Merci, je vous tiens au courant.
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar jayjay » Mer 13 Juil 2011, 11:40

Salut Chico,

merci pour tes infos, j'ai déjà pu pas mal avancer et arrive à récupérer le chemin avec l'extension ".SLDDRW" de chacun de mes composants. Il me reste plus qu'à exploiter cette variable string pour imprimer le fichier.

Je connais une fonction intéressante --> swDraw.PrintDirect mais cette fonction s'applique au composant swDraw déclaré en tant que Sldworks.DrawingDoc. Il suffirait alors que j'arrive à convertir ma variable string (avec le chemin du fichier à imprimer) vers un objet Sldworks.DrawingDoc pour pouvoir exploiter la fonction PrintDirect !

Qu'en penses-tu? Aurais-tu une idée?

Merci.
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar Chico » Mer 13 Juil 2011, 11:44

Salut,

Je crois malheureusement que tu n'auras pas le choix d'ouvrir un à un chacun des fichiers afin de les imprimer. Je ne crois pas qu'il soit possible de récupérer l'objet DrawingDoc sans d'abord l'ouvrir au préalable... :wink:
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar jayjay » Mer 13 Juil 2011, 12:37

Ok j'ai aussi pensé à cette éventualité que je préfèrerais éviter mais n'y a t-il pas une option pour ouvrir un document en mode caché ou invisible ou qqch comme ça ?
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar Titifonky » Mer 13 Juil 2011, 13:11

Bonjour Jayjay,

J'imagine que tu utilise la méthode .OpenDoc6(FileName, Type, Options, Configuration, Errors, Warnings) pour ouvrir tes fichiers ?

Dans l'argument Options, tu peux indiquer le type d'ouverture que tu souhaites.

Voici le lien vers l'aide SW avec toutes les options possibles http://help.solidworks.com/2010/English/api/swconst/SolidWorks.Interop.swconst~SolidWorks.Interop.swconst.swOpenDocOptions_e.html
Titifonky
Padawan SolidWorks
 
Messages: 89
Inscription: Mar 05 Avr 2011, 8:23
Localisation: Lille .............. SW Premium 2013 .......... Seven 64b

Messagepar jayjay » Mer 13 Juil 2011, 13:29

C'est correct ! Je pensais que le mode "Open Doc Silently" ouvrirait mes drawings en mode caché mais j'ai pas vu directement de différence avec un mode Open normal.
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar Chico » Mer 13 Juil 2011, 17:14

Salut,

Regarde ICI, tu devrais trouver ton bonheur.

Mais il reste que comme tu dois ouvrir chaque mise en plan, même en invisible, le traitement pourrait être assez long, tout dépendant du nombre de composants...

Mais enfin, j'imagine que ça restera toujours plus rapide que de l'imprimer manuellement! :wink:
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar jayjay » Jeu 18 Aoû 2011, 14:44

Bin en fait j'utilise l'option "Ouvrir en mode ViewOnly". Ca ouvre en effet chacune de mes mises en plan mais c'est relativement rapide !
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar jayjay » Jeu 18 Aoû 2011, 14:54

Après plusieurs semaines de recherche à temps partiel, la macro est déjà bien aboutie par contre je bloque vraiment sur un petit détail mais qui a toute son importance !

En fait, avant de lancer la lecture (et l'impression) des mises en plan de chacun des composants de l'ensemble, j'ouvre un petit UserForm avec barre de progression pour visualiser l'état d'avancement et estimer plus ou moins le temps restant, enfin bref...
Le problème c'est que j'ouvre ce UserForm en "Modeless" pour permettre à l'appli de poursuivre son traitement. Dans ce UserForm, j'ai ajouté un "bête" bouton CANCEL qui est censé mettre fin à la macro avec un END mais comme le UserForm est ouvert en "Modeless", je n'ai pas accès à ce bouton durant le traitement.
Ouvrir le UserForm en "Modal" vous me direz... Mais non car au moment de l'affichage il attend et ne fait plus rien, ce n'est pas le but évidemment !

Je sais pas si j'ai été assez clair mais pensez-vous à une solution directe toute simple ou c'est plus compliqué que ça ?!

Merci d'avance ;-)
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar Chico » Jeu 18 Aoû 2011, 23:52

Salut,

Je ne suis pas un spécialiste des interfaces graphiques. Je ne sais pas vraiment comment régler ton problème...

En espérant que quelqu'un d'autre sera plus inspiré... :|
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Messagepar jayjay » Ven 19 Aoû 2011, 10:38

Merci quand même...

En fait je pense l'ouvrir malgrès tout en "Modal" et au moment de l'initialisation du UserForm, il me faudrait une fonction qui me permet tout simplement de maintenir le traitement de mon code principal ! En fait 2 codes qui fonctionneraient en parallèle ! Je sais pas si c'est possible ça ?!

Ou autre idée serait de déplacer tout le code relatif à l'impression de mes plans dans le UserForm même... Mais ça me semble à éviter ?!
Avatar de l’utilisateur
jayjay
Ewok SolidWorks
 
Messages: 26
Inscription: Mar 01 Fév 2011, 13:33
Localisation: Mouscron

Messagepar Chico » Ven 19 Aoû 2011, 17:05

jayjay a écrit:
En fait je pense l'ouvrir malgrès tout en "Modal" et au moment de l'initialisation du UserForm, il me faudrait une fonction qui me permet tout simplement de maintenir le traitement de mon code principal ! En fait 2 codes qui fonctionneraient en parallèle ! Je sais pas si c'est possible ça ?!


Je ne crois pas que ce soit possible...

jayjay a écrit:
Ou autre idée serait de déplacer tout le code relatif à l'impression de mes plans dans le UserForm même... Mais ça me semble à éviter ?!


Pas nécessairement. C'est plus propre de fonctionner avec des modules indépendants, mais je ne pense pas que ça peut apporter des problèmes de mettre tout le code dans l'interface. :wink:
Il vaut mieux poser une question et risquer d'avoir l'air idiot
une journée que de se taire et d'être bête toute sa vie.

8wd a dit : LA FONCTION RECHERCHE EST TON AMIE
http://www.logiciel-cao.com
Avatar de l’utilisateur
Chico
Esprit Jedi Solidworks
 
Messages: 3120
Inscription: Mer 12 Mar 2008, 19:16
Localisation: Mauricie (Québec) ------SW 2006 SP0.0

Re: [RESOLU] Imprimer les MEP des composants d'un assemblage

Messagepar pasc » Mar 12 Fév 2013, 12:43

Bonjour

Je suis très intéressés par votre code... Pourriez-vous me le transmettre? Mais je pense que je devrais le modifier car toutes mes pièces ne sont pas forcément dans le même répertoire...

Merci
pasc
Ewok SolidWorks
 
Messages: 2
Inscription: Lun 11 Fév 2013, 9:38


Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

banniere