vinz369 Posté(e) le 11 juillet 2006 Posté(e) le 11 juillet 2006 Bonjour à tous, Je fais un stage sous ce logiciel en ce moment et j'ai un probleme pour créer une macro. J'utilise l'outil d'enregistrement disponible sous catia. En fait je lance l'enregistrement, je crée une coupe, et au lieu de me le traduire en coupe dans le format vba il me le traduit en tant que couture. Est- ce que vous savez d'où ça peut venir?Sinon est-ce que vous connaissez la commande coupe en vba? (sachant que la commande couture est AddNewSewSurface(reference, catpositiveside) Merci d'avanceA bientot
8_pool Posté(e) le 11 juillet 2006 Posté(e) le 11 juillet 2006 Salut vinz69 ! A priori, tu travaille sur des surfaces et non sur des solides. Tu peux confirmer cela ? Je viens d'essayer de reproduire ton pb mais l'enregistreur de macro n'enregistre que dalle (vbscript ou vba) dans les surfaces !!Quelle version de Catia utilises-tu ? Ciao :cool:
8_pool Posté(e) le 11 juillet 2006 Posté(e) le 11 juillet 2006 Re salut ! Quel boulet ! Je viens de voir la version dans le titre de ton post :o :o Une précision : je n'ai pas de module surfacique avancé mais uniquement le GSD de la config MD2. Peut-être que mon pb d'enregistrement vient de là.... D'après la doc (je ne suis pas spé des surfaces !), la méthode à utiliser serait AddNewSplit. A vérifier ! A propos de la doc, je te conseille de consulter la doc au format chtml, qui se trouve dans intel_a\code\bin\V5Automation.chm. Bon courage ! Ciao :cool:
vinz369 Posté(e) le 12 juillet 2006 Auteur Posté(e) le 12 juillet 2006 Bonjour, Oui en fait j'utilise le mode surfacique pour créer une surface à partir de trois spline, je réalise un remplissage (toujours en surfacique) et après je repasse en volumique pour faire une coupe.Dans tous les cas je vais essayer ce que tu m'as conseillé et je te tiens au courant.MerciA bientot
vinz369 Posté(e) le 12 juillet 2006 Auteur Posté(e) le 12 juillet 2006 Re bonjour, C'est bon ça marche. Je te remercie 8pool la fonction addnewsplit m'a bien aidé. J'ai un autre probleme maintenant. Je souhaite faire un copier d'un corp d'un doc1 pour faire un colage spécial ds un doc2. En fait je procède comme suit:- je suis dans doc2, je lance l'enregistrement.- j'ouvre doc1, je fais mon copier du corps qui m'interesse.- je reviens dans doc1 en faisant fenetre/doc1.- et enfin je fais mon colage spécial en tant que résultat avec lien. Le probleme est qu'en fait il ne me code pas la derbière partie. En fait le code réalise la copie du corps puis le changement de fenetre mais ne rend pas la nouvelle fenetre(doc2) réellement active et donc qd il veut faire le collage spécial il le fait dans le mauvais document, soit doc1. Je voudrais savoir s'il y a un code pour forcer la fenetre active en tant que document actif?Merci d'avance
vinz369 Posté(e) le 27 juillet 2006 Auteur Posté(e) le 27 juillet 2006 Bonjour, J'ai une autre question. Je cherche à faire une boite de dialogue pour ouvrir un fichier toujours dans ma macro sous catia. Il me semble qu'en visual basic il existe une fonction Openfiledialog qui ouvre une boite de dialogue pour faire ça. Est-ce que vous savez comment je pourrais réaliser la même chose au sein de ma macro en VBA? Merci d'avanceA bientot
vinz369 Posté(e) le 27 juillet 2006 Auteur Posté(e) le 27 juillet 2006 Je viens de trouver la solution. Je la donne donc au cas où quelqu'un d'autre en aurait besoin.En fait il faut utiliser la commande CATIA.fileselectionbox Maintenant, désolé de vous embéter encore mais j'aurais une autre question. Je vous mets la partie du code en question: Sub CATMain() Dim documents1 As DocumentsSet documents1 = CATIA.Documents Dim productDocument1 As ProductDocumentSet productDocument1 = documents1.Add("Product") Dim product1 As ProductSet product1 = productDocument1.Product Dim products1 As ProductsSet products1 = product1.Products OuvertureBlocINF.Show Dim arrayOfVariantOfBSTR1(0)arrayOfVariantOfBSTR1(0) = cheminINFSet products1Variant = products1products1Variant.AddComponentsFromFiles arrayOfVariantOfBSTR1, "All" Dim partDocument1 As PartDocumentSet partDocument1 = documents1.Item [surligneur] ("INF.CATPart")[/surligneur] Dim product2 As ProductSet product2 = partDocument1.GetItem(1) product2.PartNumber = "INF" OuvertureBlocSUP.Show Dim arrayOfVariantOfBSTR2(0)arrayOfVariantOfBSTR2(0) = cheminSUPSet products1Variant = products1products1Variant.AddComponentsFromFiles arrayOfVariantOfBSTR2, "All" Dim partDocument2 As PartDocumentSet partDocument2 = documents1.Item [surligneur] ("SUP.CATPart")[/surligneur] Dim product3 As ProductSet product3 = partDocument2.GetItem(2) product3.PartNumber = "SUP" end sub Mon problème est que je ne peut intégrer à ce product que des pièces qui auraient exactement le nom INF.CATPart et SUP.CATPart.Hors je souhaiterais pouvoir intégrere n'importe quelle" pièce. Que dois-je faire? Je remercie ceux qui ont lu jusqu'à la fin, en espérant que vous pourrez m'aider.A bientot [Edité le 27/7/2006 par vinz369]
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