chucky Posté(e) le 26 septembre 2006 Posté(e) le 26 septembre 2006 Bonjour à tous, Suis nouveaux sur le fofo. J'ai un peu d'expérience en VB et sous catia V5. Je travaille actuellement sur l'élaboration automatique d'un cartouche et d'une nomenclature. Je suis arrivé à faire la plus part des chose mais il reste encore quelques points sur lesquels je me casse les dents, si vous pouviez m'aider: 1) Je n'arrive pas à récupérer le poids d'un part pour l'insérer dans le cartouche. J'ai bien inséré le matériaux et j'ai accés à la densité, mais pas au volume, donc même mathématiquement je n'arrive pas à récupérer la valeur. 2) Je suis arrivé à faire le lien avec le nom du part ou du product, mais est il possible de le transformer en STRING et ne sélectionner que quelques caractaires? Un p'tit exemple s'impose:Le nom du product est : 32WA249_100_VE.CATProductle n° du plan est : 32WA249 100Le nom du produit est : S/ENS 100 VE (S/ENS seulement pour les products, mais je pense faire correspondre cette entité avec la définition du produit, une fois que j'aurais trouvé comment faire) 3) Et dernier point, est il possible de lui demander le nom du dossier contenant le projet (genre le nom du produit qui lui est associé par exemple)? Je vous remercie d'avance, Chucky Chucky
heero Posté(e) le 26 septembre 2006 Posté(e) le 26 septembre 2006 Bonjour, Pour ton premier point, je pense que tu peux accéder directement au poids de ta pièce/ton produit de la façon suivante (non testé) : MaPart.Product.Analyze.Mass où MaPart est un objet de type PartDocument ou ProductDocument Pour le reste je n'ai pas trop compris ce que tu voulais...
chucky Posté(e) le 26 septembre 2006 Auteur Posté(e) le 26 septembre 2006 Merci pour le premier point, je vais le tester de suite. ;) En ce qui concerne le point 2), la question est simple: est ce que je peux traiter le nom du part comme une chaine de caractères pour récupérer une parti du titre pour réaliser un texte automatique dans mon cartouche? Pour le petit 3): Est ce qu'il est possible de récupérer le nom du dossier contenant les parts pour faire comme précédent, un texte automatique. Chucky
heero Posté(e) le 26 septembre 2006 Posté(e) le 26 septembre 2006 Pour le 2nd point, tu peux récupérer le nom du produit en faisant : Dim nom_produit As Stringnom_produit = MaPart.Product.PartNumber Pour le 3eme point, je n'ai pas trouvé en fouillant dans l'aide de l'API CATIA, si tu veux chercher toi-même c'est un fichier nommé V5Automation.chm qui est dans CatiaV5R16\intel_a\code\bin\
chucky Posté(e) le 26 septembre 2006 Auteur Posté(e) le 26 septembre 2006 Alors j'ai essayé pour le premier point. Ca fonctionne, mais pas dans l'atelier deux 2d! J'ai fais une macro qui fonction en 3D, je fais copié collé dans celle du cartouche, et rien ne s'affiche. Je pensais avoir fait une erreur mais en relancant la première macro qui fonctionnait en 3D, j'ai le droit à un beau message d'erreur. Depuis l'atelier de dessin, il n'y aurait pas moyen d'avoir accés au propriété du modèle 3D? Chucky
chucky Posté(e) le 26 septembre 2006 Auteur Posté(e) le 26 septembre 2006 J'avais trouvé comment ecrire le nom du part, mais ce que je cherche c'est si comme les chaine de caractere de VB je peux lui dire d'écrire du caractere 1 à 8 et 10 à 15. C'est chaud la prog sous catia quand meme. Merci heero! je te remercie de participer ca motive. Chucky
gawel Posté(e) le 26 septembre 2006 Posté(e) le 26 septembre 2006 Salut chucky, tu peux faire une combinaison avec la fonction Mid(,,)celle-ci demande 3 choses:1) la chaine de caractère à traiter2) à partir d'où tu extrais ta chaine3) combien de caractères tu extrais exemple:dim toto as stringdim titi as stringdim resultat as string toto= Mid(tonfichier,1,8)titi=Mid(ton fichier,10,5) resultat= toto & titi 'on concatene les 2 extractions j'espère avoir répondu à ta questionAmicalement Gawel
heero Posté(e) le 27 septembre 2006 Posté(e) le 27 septembre 2006 Chucky, Dans la réponse 4 tu disais que tu n'arrivais pas à accéder au propriétés du modèle 3d depuis la 2d. Pourrais-tu dire quel est le message d'erreur que obtient? Ainsi que montrer la petite partie de code où tu vas chercher la masse (avec les déclarations, si possible)? A+
chucky Posté(e) le 28 septembre 2006 Auteur Posté(e) le 28 septembre 2006 Alors voila où j'en suis: la génération du nom de la pièce et du numéro du plan sont générés automatiquement, de plus, il fais la différence entre un part et un product pour rajouter le préfixe SENS (pour sous ensemble). C'est classe ;) En ce qui concerne le poids, il ne m'inscrit rien, est ce que: je peux faire ça: Sub CATMain() Dim ProductMass As StringDim DrwDocument 'As DrawingDocument Set DrwDocument = CATIA.ActiveDocument ProductMass = CATIA.ActiveDocument.Analyze.Mass '"MASS_L1" Set TextAuto(19) = DrwTexts.Add( Productmass" kg", OH - Col(2) - (Col(1) - Col(2)) / 2, OV + Format_coeff * 38.5 * mm) TextAuto(19).Name = "TB_INCAT_TextAuto19" TextAuto(19).AnchorPosition = 5 If Format_coeff = 1 Then TextAuto(19).SetFontSize 0, 0, 3.5 Else TextAuto(19).SetFontSize 0, 0, 3.5 End If TextAuto(19).SetFontName 0, 0, "Monospac821 BT" End sub [Edité le 28/9/2006 par chucky] Chucky
chucky Posté(e) le 28 septembre 2006 Auteur Posté(e) le 28 septembre 2006 Ok j'ai rebidouillé le code est vraissemblablement il n'affiche rien, donc deux solutions: 1) j'ai peut etre un problème d'unité. 2) je me suis foiré dans ma requette. Mais alors quelle est la variable du poids lorsque l'on est en drawing? Chucky, je l'aurais un jour, je l'aurais! Chucky
fhughes Posté(e) le 28 septembre 2006 Posté(e) le 28 septembre 2006 C'est marrant de constater que les développeurs de Catia laissent faire par les utilisateurs des parties de dev qui normalement devraient être intégrées dans un soft de modélisation volumique 3D !!! Que de bricolage pour un pauvre cartouche... Changer ses habitudes, c'est déjà innover...
chucky Posté(e) le 29 septembre 2006 Auteur Posté(e) le 29 septembre 2006 Il ne s'agit pas de laisser faire, mais plutot une demande d'aide, il ne me semble pas avoir demandé une solution clef en main. Je suis stagiaire mécanien à l'UTBM, j'ai fais un peu de VB et j'ai accés à la doc CATIA, mais il faut dire que celle ci n'est pas toujours explicite... :o De plus, j'ai beau chercher, je ne trouve pas d'ouvrage sur ce sujet, donc c'est un peu chaud pour moi. Chucky
fhughes Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Je me suis mal exprimé : Il est tout à fait louable de chercher à créer des automatisations avec un logiciel de CAO, d'autant que la plupart offre cette possibilité, par l'intermédiaire d'un langage interne ou externe. Mais ce qui me trouble, c'est qu'il faille bidouiller pour obtenir des informations aussi fondamentales que les propriétés massiques d'un modèle 3D, informations qui à mon sens devraient être disponibles directement. C'est tout. Changer ses habitudes, c'est déjà innover...
chucky Posté(e) le 29 septembre 2006 Auteur Posté(e) le 29 septembre 2006 Elles le sont peut etre! :D C'est seulement que c'est pas facile de coder pour un dessinateur qui a fait des étude de méca. <acronym class=dict title= Chucky
heero Posté(e) le 29 septembre 2006 Posté(e) le 29 septembre 2006 Bonjour Chucky, J'aimerai savoir comment tu fait pour faire la différence en une part et un product?Je pense qu'il n'est pas possible d'accéder directement à la masse de la pièce depuis une mise en plan (du moins je n'ai pas trouvé), donc je pense que si tu peux trouver le lien vers la pièce, tu pourras la charger et avoir la masse. Malheureusement je ne sais pas comment on obtient ce lien. A+
chucky Posté(e) le 2 octobre 2006 Auteur Posté(e) le 2 octobre 2006 Salut! Voici comment j'ai fait pour le test part - product: Dim Doc_3D 'As Document '3D associé If CATIA.ActiveDocument.Sheets.Item(1).Views.Count > 2 Then Set Doc_3D = CATIA.ActiveDocument.Sheets.Item(1).Views.Item(3).GenerativeBehavior.Document.Parent '1ère projection ElseIf CATIA.Documents.Count = 2 Then For i = 1 To 2 If InStr(CATIA.Documents.Item(i).Name, ".CATPart") <> 0 Then Set Doc_3D = CATIA.Documents.Item(i) End If Next Else MsgBox "No associated 3D model detected!" & Chr(10) & "Create a view of the associated 3D model and then create the title block", 64, "No 3D" Exit Sub End If 'Test If InStr(Doc_3D.Name, ".CATPart") <> 0 Then MsgBox " C'est un part ! " Else MsgBox " C'est pas un part ! (dans mon cas c'est donc un product!) "End If Chucky
heero Posté(e) le 2 octobre 2006 Posté(e) le 2 octobre 2006 Salut chucky, Essaie de faire [surligneur] Doc_3d.Product.Analyze.Mass [/surligneur] à la suite du code précédent. Peut-être cela marchera-t-il...
chucky Posté(e) le 19 octobre 2006 Auteur Posté(e) le 19 octobre 2006 Salut à tous! J'ai essayé et ca veut pas marché! J'ai un peu de mal à comprendre. A part ça, j'ai un p'tit soucis. C'est trés bete! :exclam: Je voudrais que les paramètres de mon drafting qui gère les éléments du cartouche prennent leurs valeurs dans un fichier excel. Quelqu'un sait comment on fait? Chucky
CATIADEV Posté(e) le 22 novembre 2006 Posté(e) le 22 novembre 2006 Bonjour, Il n'est pas possible de manipuler des fichiers qui ne sont pas "ouvert" dans CATIA. :casstet: Donc, tu récupère dans ton draw le fichier qui a servi à faire ta/tes vue(s) puis tu l'ouvres et tu récupère la masse que tu passe dans une variable de type Integer. Ensuite tu convertis le type int en string. :exclam: puis tu fermes ton Part ou product, là le draw est actif dans l'état ou tu l'avais laissé puis tu utilises le contenu de ta variable string pour mettre à jour ton cartouche. Have fun ! :D CATIADEV
chucky Posté(e) le 23 novembre 2006 Auteur Posté(e) le 23 novembre 2006 J'ai trouvé plus simple: J'ai créé des paramètres dans le draw qui prennent les valeurs désirées lors de la réalisation du cartouche donc part ou product ouvert! Finalement, plus besoin de tout ouvrir pour faire mes passages d'info entre les différents fichiers. ;) Chucky Chucky
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