Réorganisation arborescence 3D
2 participants
Page 1 sur 1
Réorganisation arborescence 3D
Bonjour à tous,
Pour nos ensembles mécanosoudés, nous utilisons des Products dans lesquels nous insérons tous nos débits.
Aussi nos débits sont numérotés 401, 402, 403, ... et cela correspond à notre repérage sur le plan 2D. (le débit 401 sera repéré par la bulle 1)
Cela implique que dans la nomenclature le 401 soit sur la 1ère ligne, le 402 sur la 2ème, etc.
Or la macro qui nous fait la nomenclature se base sur l'ordre des pièces dans l'arborescence et non sur le numéro de pièce et je ne peux pas changer cela.
D'où mon besoin de créer une macro qui réorganiserait l'arborescence 3D dans l'ordre croissant car le module de CATIA pour faire cette opération est très fastidieux sans compter le risque d'erreurs.
Je vois comment faire ma macro mais il me manque une instruction VBA pour la rédiger.
En effet, je sais comment récupérer le numéro d'item (place dans l'arborescence) d'une part mais je ne sais pas comment le changer.
Ce que j'aimerais faire c'est quelque chose comme cela.
Est-ce réalisable ?
Merci pour vos retours,
Cyril
Pour nos ensembles mécanosoudés, nous utilisons des Products dans lesquels nous insérons tous nos débits.
Aussi nos débits sont numérotés 401, 402, 403, ... et cela correspond à notre repérage sur le plan 2D. (le débit 401 sera repéré par la bulle 1)
Cela implique que dans la nomenclature le 401 soit sur la 1ère ligne, le 402 sur la 2ème, etc.
Or la macro qui nous fait la nomenclature se base sur l'ordre des pièces dans l'arborescence et non sur le numéro de pièce et je ne peux pas changer cela.
D'où mon besoin de créer une macro qui réorganiserait l'arborescence 3D dans l'ordre croissant car le module de CATIA pour faire cette opération est très fastidieux sans compter le risque d'erreurs.
Je vois comment faire ma macro mais il me manque une instruction VBA pour la rédiger.
En effet, je sais comment récupérer le numéro d'item (place dans l'arborescence) d'une part mais je ne sais pas comment le changer.
- Code:
CATIA.ActiveDocument.Product.Products.Item(1) 'Correspond au 1er élément de l'arborescence
Ce que j'aimerais faire c'est quelque chose comme cela.
- Code:
CATIA.ActiveDocument.Product.Products.Item(1).[NuméroItem] = 2 'Je souhaite que le 1er élément de mon arborescence passe en 2ème position
Est-ce réalisable ?
Merci pour vos retours,
Cyril
CyrilMan- timide
- Messages : 3
Date d'inscription : 04/12/2020
Localisation : Saint-Etienne
Re: Réorganisation arborescence 3D
Salut Cyril,
C'est un sujet difficile, la réorganisation de l'arbre n'est pas directement accessible en script CATIA, il faut passer par Microsoft UI Automation.
Il y a un début de solution ici:
https://scripts4all.eu/graph-tree-reordering-vba/.
Le code doit être recopié dans un module VBA d'EXCEL et CATIA doit être en anglais.
Il lance et agit sur les boutons de la boîte de dialogue CATIA de réorganisation de l'arbre, mais il déplace simplement la première Part en dernière position.
Il faut donc trouver les règles qui dans la dernière boucle du code te permettent de réordonner ton arbre comme tu le souhaite.
C'est un sujet difficile, la réorganisation de l'arbre n'est pas directement accessible en script CATIA, il faut passer par Microsoft UI Automation.
Il y a un début de solution ici:
https://scripts4all.eu/graph-tree-reordering-vba/.
Le code doit être recopié dans un module VBA d'EXCEL et CATIA doit être en anglais.
Il lance et agit sur les boutons de la boîte de dialogue CATIA de réorganisation de l'arbre, mais il déplace simplement la première Part en dernière position.
Il faut donc trouver les règles qui dans la dernière boucle du code te permettent de réordonner ton arbre comme tu le souhaite.
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: Réorganisation arborescence 3D
Salut Marc,
Désolé pour la réponse tardive et merci pour la tienne.
Oui, je suis aussi tombé sur ce bout de script lors de mes recherches. Il me semblait bizarre qu'il n'y ait pas une commande qui permette de le faire directement en VBA car il existe des Method "Reorder" sur certaines collections mais cela n'a pas l'air de marcher sur la collection
Quand j'aurai un peu de temps, j'essayerai de bricoler une règle de tri, d'en sortir mon nombre de clic à faire sur les boutons "up" et "down" et de l'implanter dans le bout de code que tu as fourni ( https://scripts4all.eu/graph-tree-reordering-vba/ ).
Je mets le sujet sur résolu et je mettrai mon script final si ça peut servir à quelqu'un.
A+
Cyril
Désolé pour la réponse tardive et merci pour la tienne.
Oui, je suis aussi tombé sur ce bout de script lors de mes recherches. Il me semblait bizarre qu'il n'y ait pas une commande qui permette de le faire directement en VBA car il existe des Method "Reorder" sur certaines collections mais cela n'a pas l'air de marcher sur la collection
- Code:
CATIA.ActiveDocument.Product.Products
Quand j'aurai un peu de temps, j'essayerai de bricoler une règle de tri, d'en sortir mon nombre de clic à faire sur les boutons "up" et "down" et de l'implanter dans le bout de code que tu as fourni ( https://scripts4all.eu/graph-tree-reordering-vba/ ).
Je mets le sujet sur résolu et je mettrai mon script final si ça peut servir à quelqu'un.
A+
Cyril
CyrilMan- timide
- Messages : 3
Date d'inscription : 04/12/2020
Localisation : Saint-Etienne
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|