Aller au contenu

Aide création macro


maxence_paris

Messages recommandés

bonjour a tous,

tout d'abors bravo pour votre apport a tous, ce site est une mine d'informations..

 

très bien je connais assez bien catia pour travailler depuis 5 ans avec, j'ai déja bien touché aux regles, powercopy, et fonctions et je souhaiterai attaquer la macro pour faciliter un projet

 

Je souhaite faire des meubles en découpe de bois. c'est a dire de ce genre: http://www.contemporist.com/photos/unto_nt.jpg

 

Je pense partir d'un volume GSD et créer une macro qui

 

1 découpe ce volume en un nombre de tranches que je pilote

2 copie chaque tranche indépendament dans une part

3 pour chaque part, recherche la face la plus grande, et instaure une contrainte de contact entre cette face et un autre part (pour que je récupere chaque tranche sur un meme plan pour pouvoir les mettres en position, afin de découper tous ca dans une planche de bois ou autre materiaux

 

J'ai bien conscience de la complexité de la chose, j'ai plus ou moin une idée de comment faire en aillant utilisé les macros par enregistrement, Je souhaiterai juste avoir votre avis sur la possibilité de la chose, et savoir si vous aviez des morceaux de codes, ou des projets équivalent a me communiquer pour m'aider un peu dans cette lourde tache..

Par avance merci et bonne continuation a tous.

 

Lien vers le commentaire
Partager sur d’autres sites

j' ai donc commencé un peu a farfouiller, pour découper ma surface, j'ai une ligne sur laquelle je place point et plan perpendiculaire. On peut le faire a la main sur catia, en utilisant point sur une courbe, en cochant l'option répété l'opération apres ok, ce qui nous amene a un menu ou l'on peut choisir le nombre de point qu'on souhaite placer. Probleme, lorsqu'on utilise enregistrement de macro, celle ci n'enregistre apparemment que la création d'un point, et pas la répétition j'ai donc tenté de faire une macro a partir de mon enregistrement, et d'une itération, en faisant varier la position du point via le "n" de l'itération. Bien sur pour une premiere tentative de macro, cela ne marche pas.., si quelq'un a une idéee, merci par avance

 

Language="VBSCRIPT"

 

Sub CATMain()

 

for n=1 to n=10 step 1

 

Set partDocument1 = CATIA.ActiveDocument

 

Set part1 = partDocument1.Part

 

Set bodies1 = part1.Bodies

 

Set body1 = bodies1.Item("Corps principal")

 

Set hybridShapes1 = body1.HybridShapes

 

Set hybridShapeExtract1 = hybridShapes1.Item("LIGNE DECOUPE")

 

Set reference1 = part1.CreateReferenceFromObject(hybridShapeExtract1)

 

Set hybridShapeFactory1 = part1.HybridShapeFactory

 

Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveFromPercent(reference1, 1/n, False)

 

body1.InsertHybridShape hybridShapePointOnCurve1

 

part1.InWorkObject = hybridShapePointOnCurve1

 

part1.Update

 

next

 

End Sub

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Très bonne initiative (en plus j'aime bien les meubles).

 

Je n'ai pas de bout de code sous la main pour le moment mais j'ai quelques conseils qui pourront te servir.

 

Le plus important dans la qualité d'une macro c'est la répétabilité. Les formes de départs seront différentes, le nombre de tranche également, etc.

 

(un volume GSD me chagrine, tu veux dire que tu fais la forme avec GSD puis tu remplis avec les outils de volumique GSD ? Je te conseille de faire du volumique dans Part)

 

Par exemple dans dans ton étape 1 :

- Avoir de la rigueur sur l'origine du volume (symétrie ou non, plan milieu, ...)

- Il faudra connaitre les extremums (min et max) dans la direction orthogonal aux tranches

- et donc ajuster le positionnement des tranches en fonctions des dimensions

Pour cette étape j'imagine très bien une création par itération de plans positionnés par rapports aux positions définit avant, puis une découpe avec chaque plan. (de la rigueur également dans les noms des éléments que tu crées.)

 

Pour le code, commence par enregistrer les fonctions indépendamment avec des exemples simples, ensuite tu les mets bout à bout.

 

Pour l'étape 2, ça nécessite un peu de recherche mais semble tout à fait possible.

 

Pour la 3, par contre j'ai rien compris. désolé.

 

Bonne continuation et tiens nous informé.

 

A+

Naurel

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

J'suis pas un super spécialiste des macros, mais j'ai également quelques p'tits conseils :

- je l'aurais en VB plutôt qu'en VBScript : il y a un sujet sur les différents languages dans le forum, mais je n'ai pas remis la main dessus !

- pense aux publications : tu devras peut-être "préparé" ton volume de départ pour publier des éléments de référence

- comme naurel, je n'ai pas saisi le point 3. Pour les contraintes, tu peux également les mettre sur des éléments filaires (plan, droite...) que tu connais (éventuellement publiés) plutôt que de faire une recherche

 

Bon courage !

Ciao :cool:

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse,

 

Pas grave si je me suis mal expliqué sur le point 3 si j'arrive a faire le 1 et 2 je m'en sortirai bien..

 

J'ai cru remarqué en parcourant le forum que certain programment plutot en vb (sous excel je suppose)..

Qu'entend tu par publier des éléments, leur donner un nom spécial pour que ma macro s'y retrouve

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

Je parle de la fonction de publication, dans le menu Outils.

Je pensais que faisant du Catia depuis 5 ans, tu la connaissais. Pour ma part, je pourrais difficilement m'en passer.

 

Le but est effectivement de nommer une entité (axe, face, point, esquisse....) et de s'en servir pour une contrainte, une référence externe...

C'est très utile, à mon avis, si tu fais des "Remplacer par" dans un assemblage : si tu as pris soin de créer tes contraintes sur les publications et que la nouvelle pièce possède les mêmes publications que celle que tu remplaces, alors les contraintes sont conservées.

Ciao :cool:

Lien vers le commentaire
Partager sur d’autres sites

Rien ne t'oblige à programmer en vb via excel, tu peux le faire par l'éditeur vb de catia, c'est d'ailleurs pour cela qu'on l'appelle vba (visual basic for application)

 

c'est vrai, les publications sont très utiles en vba, car on peux retrouver leurs caractéristiques rapidement et construire des contraintes en automatique plus facilement, faire des remplacements, etc... c'est une bonne piste à suivre.

 

je peux te mettre quelques exemples sur un post, pour comprendre le principe.

 

Gawel

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité