maxence_paris Posté(e) le 30 mars 2010 Posté(e) le 30 mars 2010 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 pilote2 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.
maxence_paris Posté(e) le 30 mars 2010 Auteur Posté(e) le 30 mars 2010 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
naurel Posté(e) le 30 mars 2010 Posté(e) le 30 mars 2010 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 dimensionsPour 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
8_pool Posté(e) le 31 mars 2010 Posté(e) le 31 mars 2010 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:
maxence_paris Posté(e) le 31 mars 2010 Auteur Posté(e) le 31 mars 2010 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
8_pool Posté(e) le 1 avril 2010 Posté(e) le 1 avril 2010 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:
gawel Posté(e) le 1 avril 2010 Posté(e) le 1 avril 2010 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant