Aller au contenu

Lien 3D - 2D


Messages recommandés

Posté(e)

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.CATProduct

le n° du plan est : 32WA249 100

Le 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

Posté(e)

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...

Posté(e)

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

Posté(e)

Pour le 2nd point, tu peux récupérer le nom du produit en faisant :

 

Dim nom_produit As String

nom_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\

 

Posté(e)

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

Posté(e)

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

Posté(e)

Salut chucky,

 

tu peux faire une combinaison avec la fonction Mid(,,)

celle-ci demande 3 choses:

1) la chaine de caractère à traiter

2) à partir d'où tu extrais ta chaine

3) combien de caractères tu extrais

 

exemple:

dim toto as string

dim titi as string

dim 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 question

Amicalement

 

Gawel

Posté(e)

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+

 

Posté(e)

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 String

Dim 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

Posté(e)

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

Posté(e)

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...

Posté(e)

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

Posté(e)

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...

Posté(e)

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

Posté(e)

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+

Posté(e)

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

Posté(e)

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...

  • 3 semaines après...
Posté(e)

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

  • 1 mois après...
Posté(e)

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

Posté(e)

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

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é