j.besseau Posté(e) le 11 juillet 2008 Posté(e) le 11 juillet 2008 Bonjour !!! Je suis en train de personnaliser un cartouche pour mon entreprise, il est pratiquement terminé.Cependant je cherche à récupéré la valeur des paramètres que je créé dans une pièce ou un assemblage. CAD que dans une pièce ou un assemblage, je rajoute des paramètres dans les propiétés (ex: dessiné le;dessiné par; traitement; référence....). Ensuite je souhaite récupérer la valeur de ces paramètres et les affichés dans mon cartouche. Merci par avance pour votre aide !! Julien[Edité le 11/7/2008 par j.besseau] [Edité le 11/7/2008 par j.besseau]
seb72xx Posté(e) le 12 juillet 2008 Posté(e) le 12 juillet 2008 Ci dessous une macro (version beta) qui peut vous aider.Il faut nommer les textes correctement. Sub CATMain()'------------------------------------------------' Auteur: Sébastien LAUNAY pour ALLIO' Cette macro permet de mettre à jour des zones de texte nommé dans un drawing' pour le remplissage automatique du cartouche' Les informations sont issu de la pièce 3D mis en plan:' Propriétées défini par l'utilisateur (voir macro "clean.catvba")' Propriétées compatible avec le package ZAD Airbus' format, echelle, date, nom de login transformé selon convention ALLIO'------------------------------------------------On Error Resume NextDim drawingDocument1 As DrawingDocumentSet drawingDocument1 = CATIA.ActiveDocument Dim drawingSheets1 As DrawingSheetsSet drawingSheets1 = drawingDocument1.Sheets Dim drawingSheet1 As DrawingSheetSet drawingSheet1 = drawingSheets1.ActiveSheet Dim ProductDrawn As ProductSet ProductDrawn = drawingSheets1.Item(1).Views.Item(3).GenerativeBehavior.Document If Err.Number = 0 Then Dim drawingViews1 As DrawingViewsSet drawingViews1 = drawingSheet1.Views 'Dim drawingView1 As DrawingView'Set drawingView1 = drawingViews1.ActiveView Dim drawingView1 As DrawingViewSet drawingView1 = drawingViews1.Item(2) Dim parameters1 As ParametersSet parameters1 = ProductDrawn.UserRefProperties Dim drawingTexts1 As DrawingTextsSet drawingTexts1 = drawingView1.Texts'====start=================================================Set drawingText1 = drawingTexts1.GetItem("Texte.référence")drawingText1.Text = ProductDrawn.NameSet drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set drawingText1 = drawingTexts1.GetItem("Texte.Description")drawingText1.Text = ProductDrawn.DescriptionRefSet drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("REFERENCE")Set drawingText1 = drawingTexts1.GetItem("Texte.REFERENCE")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("MATERIAL")Set drawingText1 = drawingTexts1.GetItem("Texte.MATERIAL")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("STATE")Set drawingText1 = drawingTexts1.GetItem("Texte.STATE")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("THICKNESS/DIAMETER")Set drawingText1 = drawingTexts1.GetItem("Texte.THICKNESS")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("OBSERVATIONS")Set drawingText1 = drawingTexts1.GetItem("Texte.OBSERVATIONS")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("LENGTH")Set drawingText1 = drawingTexts1.GetItem("Texte.LENGHT")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("WIDTH")Set drawingText1 = drawingTexts1.GetItem("Texte.WIDTH")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set strParam1 = parameters1.GetItem("MASS")Set drawingText1 = drawingTexts1.GetItem("Texte.MASS")drawingText1.Text = "" 'Clears textdrawingText1.InsertVariable 0, 0, strParam1Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set drawingText1 = drawingTexts1.GetItem("Texte.Date")drawingText1.Text = Format(Date, "dd/mm/yy")Set drawingText1 = NothingSet strParam1 = Nothing '====start=================================================Set drawingText1 = drawingTexts1.GetItem("Texte.Dessinateur")'drawingText1.Text = CATIA.SystemService.Environ("LOGNAME")'If drawingText1.Text = "" Then drawingText1.Text = CATIA.SystemService.Environ("USERNAME")Texttmp1 = CATIA.SystemService.Environ("USERNAME")drawingText1.Text = UCase(Left$(Texttmp1, 2) + Right$(Texttmp1, 1))Set drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set drawingText1 = drawingTexts1.GetItem("Texte.Format")Select Case drawingSheet1.PaperSizeCase catPaperA0drawingText1.Text = "A0"Case catPaperA1drawingText1.Text = "A1"Case catPaperA2drawingText1.Text = "A2"Case catPaperA3drawingText1.Text = "A3"Case catPaperA4drawingText1.Text = "A4" End SelectSet drawingText1 = NothingSet strParam1 = Nothing'====start=================================================Set drawingText1 = drawingTexts1.GetItem("Texte.Echelle")drawingText1.Text = drawingSheets1.Item(1).Views.Item(3).Scale1Set drawingText1 = NothingSet strParam1 = Nothing '=========================================='a tester pour mettre a jour drawingText1.ModifyVisuEnd If End Sub
j.besseau Posté(e) le 15 juillet 2008 Auteur Posté(e) le 15 juillet 2008 Merci beaucoup pour ta macro, je vais essayé de suite. Par contre, comment est-ce que je peut faire pour placer ces boites de texte avec la valeur de mes paramètres dans mon cartouche ?Sachant que je procède de la façon suivante : Dim TitleBlock_Text_Indice As DrawingText Set TitleBlock_Text_Indice = DrwTexts.Add("Indice", OH - 192.5, OV + 2.5) TitleBlock_Text_Indice.Name = "TitleBlock_Text_Indice" TitleBlock_Text_Indice.AnchorPosition = catMiddleRight TitleBlock_Text_Indice.Angle = -90 TitleBlock_Text_Indice.SetFontSize 0, 0, 1.8 OH et OV étant les coordonnées de mon points d'origine.
j.besseau Posté(e) le 15 juillet 2008 Auteur Posté(e) le 15 juillet 2008 bon, j'ai essayé ta macro mais ça ne marche pas pour ce que je veux faire. Ta macro permet de récupéré des valeurs de boites de texte crée dans la mise en plan. J'ai besoins de récupéré des informations directement dans la 3D d'une pièce ou d'un assemblage! Ensuite, j'intègre ces informations dans mon plan 2D (dans mon cartouche). Ces informations sont issu les propriétés de la pièce ou assemblage 3D, se sont des paramètres rajoutés de type "chaine" que l'ont peut également prendre pour créé une nomenclature. Si quelqu'un pourrait m'aider ou juste me donner la marche à suivre, ça serait vraiment génial ! [Edité le 15/7/2008 par j.besseau]
seb72xx Posté(e) le 25 juillet 2008 Posté(e) le 25 juillet 2008 Bonjour, La macro que j'ai envoyé fait exactement ce que tu veux. Elle récupère le contenu de propriétées (par exemple MATERIAL qui est une propriétée personnalisée ajoutée au CATPART) issu du 3D pour les placer dans des zones de texte préalablement nommé correctement dans le drawing. Pour savoir dans quel fichier CATPART sont les propiétés la macro recherche le fichier 3D associé à la la vue principal qui doit avoir été placé auparavant. MATERIAL est une chaine de texte dans le 3DTexte.MATERIAL est le nom de la zone de texte dans le 2DLa macro fait simplement un copier de l'un dans l'autre. Cordialement,
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