probleme de traitement sur des sous assemblages [resolu]

vos questions concernant les API SolidWorks

probleme de traitement sur des sous assemblages [resolu]

Messagepar boiseux » Jeu 11 Aoû 2011, 8:08

Bonjour a tous,

Je dois effectuer sur mes assemblages une suite d'opérations.
Mais dans mes assemblages, j'ai des pièces et des sous-assemblages.
Et parmi ces pièces et sous-assemblages, certains sont supprimés.
Et dans les sous-assemblages, certaines pièces sont aussi supprimées.
Une architecture on ne peut plus courante, en fin de compte.

Pour réussir ma suite d'opération, je dois déterminer si mon composant est supprime ou pas, et si oui, annuler la suppression et le re-supprimer une fois le traitement réalisé, puis passer au composant suivant etc.

mon problème:
Je n'arrive pas a faire la même chose pour les sous-assemblages.
Ça marche pour le niveau 1, mais pas pour les niveaux 2, 3 etc.

Je joins le code de ma macro.
J'ai essayer de relancer la fonction "TraverseComponent", mais a part tourner en boucle, cela ne fait rien de plus.

Si quelqu'un connais la solution, je suis preneur.
Dernière édition par boiseux le Lun 22 Aoû 2011, 16:22, édité 1 fois.
Avatar de l’utilisateur
boiseux
Ewok SolidWorks
 
Messages: 39
Inscription: Mar 04 Déc 2007, 11:05
Localisation: vendée

Messagepar liryc » Jeu 11 Aoû 2011, 19:29

Bonsoir,
J'ai testé rapidement ce matin mais je pense qu'il faut rajouter des conditions de traitement à l'intérieur de la boucle s'occupant de réactiver les composants.
Il faut tester si l'élément réactivé est un assemblage ou un prt, dans le cas d'un assemblage la relance de la boucle est nécessaire sinon la macro continue.
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar Chico » Jeu 11 Aoû 2011, 23:11

Salut,

Je n'ai pas regardé ta macro, mais Celle-ci pourrait t'être utile. Dans le module Traverse Assembly, va voir la procédure Traverse Component.

Cette macro fait ce que tu veux, elle traverse complètement l'assemblage, enlève tous les états de suppression, récupère les configurations, puis remet les états de suppression. Je ne sais pas c'est dans quel but, mais tu devrais t'en sortir en modifiant ce code. :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 boiseux » Ven 12 Aoû 2011, 7:35

Bonjour,

@liryc
Je suis d'accord avec ta remarque, et j'y avais pense, mais je n'ai reussi a le faire.
De la maniere dont j'ai code, la machine tourne en boucle, et c'est tout.

@Chico
Merci du lien, je ne l'avais pas trouvee, celle-la.
Je l'ai regardee, et.....................je comprends pas tout, mais c'est le charme des apis, non ?
J'ai cru remarquer que pour "traverser" un assemblage, nous n'utilisions pas les memes commandes.
Je vais voir a modifier mon code en m'inspirant de ce que ja vais comprendre du tien.

Y a plus qu'a
Avatar de l’utilisateur
boiseux
Ewok SolidWorks
 
Messages: 39
Inscription: Mar 04 Déc 2007, 11:05
Localisation: vendée

Messagepar Chico » Lun 15 Aoû 2011, 23:25

En tout cas, s'il y a quoi que ce soit que tu voudrais avoir des explications n'hésite pas, même si ce n'est pas le genre de code où l'on peut se retrouver en 5 minutes! :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 boiseux » Lun 22 Aoû 2011, 16:21

Bonjour a tous,

Ca y est, j'ai trouve une solution.:wink:

@liryc
J'ai compris pourquoi ma boucle de marchait pas. Je relancais la procedure, mais sans renvoyer d'objet ni de niveau.
Et comme les machines n'en sont pas encore a prendre des initiatives, si tu ne dis pas tout, ca marche pas.

@Chico
Ta macro m'a aide a resoudre mon 2eme probleme: memorise l'etat supprime ou pas d'un composant, et ce quel que soit son niveau.
J'ai utlise un tableau dynamique, methode que je ne connaissais pas.
Est-elle la plus judicieuse dans mon cas, je n'en sais rien, mais en tout cas, cela fonctionne. :P

Toujours desireux d'apprendre, si quelqu'un, pense que j'aurais du prendre d'autres commandes ou methodes plus appropriees, je suis preneur.

Je joins le code finalise, des fois que .............................
Pour info, sw2008 sp4, win xp sp3

En tout cas merci de l'aide.
Avatar de l’utilisateur
boiseux
Ewok SolidWorks
 
Messages: 39
Inscription: Mar 04 Déc 2007, 11:05
Localisation: vendée

Messagepar Chico » Lun 22 Aoû 2011, 17:13

boiseux a écrit:Est-elle la plus judicieuse dans mon cas, je n'en sais rien, mais en tout cas, cela fonctionne. :P

C'est le plus important! Qu'un code soit optimisé ou pas ne change pas nécessairement la finalité. D'ailleurs, quand je regarde mes premières macros, j'en trouve qui ont 100 lignes et qui auraient pu en avoir 20! :wink:

Content de t'avoir aidé et merci de partager ton codeavec nous!
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


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 4 invités

banniere