DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
3 participants
Page 1 sur 1
DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Bonjour,
Suite aux différents retour d'expérience sur le cartouche définis dans ce sujet : Cartouche personnalisé
Nous avons décider de modifier la disposition générale du cartouche et d'y ajouter certaines informations, c'est pour cela que je vous sollicite aujourd'hui.
En effet, nous souhaiterions faire apparaitre la "Description" renseignée dans les propriétés du part ou du product (Cadre rouge de l'image ci-dessous), ainsi que le numéro de "Nomenclature" (Cadre bleu).
De plus, nous souhaiterions indiquer la matière dans le cartouche, à savoir que la matière est celle appliquée au part (Cadre rouge de l'image ci-dessous) :
Or, après avoir analyser le fichier d'aide Catia (Automotion), je n'ai pas trouver les variables ou code me permettant d'obtenir ce que je veux. De plus, le cartouche est générer par une macro VBscript et non en VBA.
Suite aux différents retour d'expérience sur le cartouche définis dans ce sujet : Cartouche personnalisé
Nous avons décider de modifier la disposition générale du cartouche et d'y ajouter certaines informations, c'est pour cela que je vous sollicite aujourd'hui.
En effet, nous souhaiterions faire apparaitre la "Description" renseignée dans les propriétés du part ou du product (Cadre rouge de l'image ci-dessous), ainsi que le numéro de "Nomenclature" (Cadre bleu).
De plus, nous souhaiterions indiquer la matière dans le cartouche, à savoir que la matière est celle appliquée au part (Cadre rouge de l'image ci-dessous) :
Or, après avoir analyser le fichier d'aide Catia (Automotion), je n'ai pas trouver les variables ou code me permettant d'obtenir ce que je veux. De plus, le cartouche est générer par une macro VBscript et non en VBA.
Dernière édition par d.vincent567 le Lun 24 Avr 2017 - 20:18, édité 1 fois
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Bonjour ci-dessous une partie du code d'une macro que je suis en train de faire
pour extraire diverses info d'un assemblage et pièce (matière, masse, nom de fichiers ...), cette partie de code te perpétra de récupérer la référence de la pièce les infos de la case nomenclature et les infos de la case description.
en espérant t'avoir aidé,
pour extraire diverses info d'un assemblage et pièce (matière, masse, nom de fichiers ...), cette partie de code te perpétra de récupérer la référence de la pièce les infos de la case nomenclature et les infos de la case description.
en espérant t'avoir aidé,
- Code:
'******** http://cao-3d-pro.com/ ****
'*** Partie code extract nomenclature ****
'*********** JP - 2017 ****
Sub CATMain()
ExtractNum
End Sub
Public Function ExtractNum()
Dim SouReference As Product
Set SouReference = PartSelect.Product
'
MsgBox "référence part: " & SouReference.Name & Chr(10) & "Nomenclature: " & SouReference.Nomenclature & Chr(10) & "description: " & SouReference.DescriptionRef
'
'SouReference.Name 'référence de la part
'SouReference.Nomenclature 'infos nomenclature
'SouReference.DescriptionRef 'description part
End Function
'**** Document actif (ci-dessous procédure pour une part) ****
Public Property Get PartSelect() As PartDocument
Set PartSelect = CATIA.ActiveDocument
End Property
cad00- actif
- Messages : 33
Date d'inscription : 17/03/2015
Localisation : PACA
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Merci pour l'info, je vais tester demain et je vous fais un retour rapide .
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Je viens de regarder plus en détail le code, et il s'agit d'un code en VBA, or le cartouche est actuellement générer par un code en vbscript.
C'est vrai que je ne l'ai pas précisé, mais le mieux serai d'avoir un seul code, car ça nous évite d'utilisé X macro pour le cartouche.
C'est vrai que je ne l'ai pas précisé, mais le mieux serai d'avoir un seul code, car ça nous évite d'utilisé X macro pour le cartouche.
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
La même en VBSCRIPT :
- Code:
Sub CATMain()
Dim SouReference 'As Product
Dim PartSelect 'As Product
'
Set PartSelect = CATIA.ActiveDocument
Set SouReference = PartSelect.Product
'
MsgBox "référence part: " & SouReference.Name & Chr(10) & "Nomenclature: " & SouReference.Nomenclature & Chr(10) & "description: " & SouReference.DescriptionRef
'
End Sub
cad00- actif
- Messages : 33
Date d'inscription : 17/03/2015
Localisation : PACA
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Merci pour ton retour, si je comprends bien : Ce code fonctionne si le part est actif (si la fenetre en cours est bien ouverte sur la part),
du coup il faut que je trouve le moyen pour remplacer l'objet actif par la vue active sur le Drawing. Je vais me plonger dans l'aide catia .
du coup il faut que je trouve le moyen pour remplacer l'objet actif par la vue active sur le Drawing. Je vais me plonger dans l'aide catia .
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Salut Vincent,
Pour récupérer les infos du 3D, il faut récupérer le nom du 3D qui est lié à une des vues du CATDrawing:
Tu pourras ensuite récupérer les valeurs souhaitées:
Pour récupérer les infos du 3D, il faut récupérer le nom du 3D qui est lié à une des vues du CATDrawing:
- Code:
On Error Resume Next
If DrwSheets.Item(1).Views.Count > 2 Then
Set Doc_3D = CATIA.ActiveDocument.Sheets.Item(1).Views.Item(3).GenerativeBehavior.Document.Parent '1ère projection
link_3d = True
If InStr(Doc_3D.Name, ".CATPart") <> 0 Then
Set Parameters_3D = Doc_3D.Part.Parameters
Else
Set Parameters_3D = Doc_3D.Product.Parameters.RootParameterSet.DirectParameters
End If
Else
MsgBox "Aucun document 3D associé n'a pu être détecté !" & Chr(10) & "Créez une vue de votre modèle 3D puis lancez la mise à jour du cartouche", 64, "No 3D"
'Exit Function
End If
On Error GoTo 0
Tu pourras ensuite récupérer les valeurs souhaitées:
- Code:
On Error Resume Next
TextMaterial = Parameters_3D.Item("Material").Value 'si CATIA en allement ou anglais
TextMaterial = Parameters_3D.Item("Matériau").Value 'si CATIA en français
TextDescFR = Doc_3D.Product.DescriptionRef 'Part_Description
TextDescEN = Doc_3D.Product.Definition 'Part_Add_Description
TextNomenclature = Doc_3D.Product.Nomenclature 'Nomenclature
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
lumpazepfel a écrit:Salut Vincent,
Pour récupérer les infos du 3D, il faut récupérer le nom du 3D qui est lié à une des vues du CATDrawing:
- Code:
On Error Resume Next
If DrwSheets.Item(1).Views.Count > 2 Then
Set Doc_3D = CATIA.ActiveDocument.Sheets.Item(1).Views.Item(3).GenerativeBehavior.Document.Parent '1ère projection
link_3d = True
If InStr(Doc_3D.Name, ".CATPart") <> 0 Then
Set Parameters_3D = Doc_3D.Part.Parameters
Else
Set Parameters_3D = Doc_3D.Product.Parameters.RootParameterSet.DirectParameters
End If
Else
MsgBox "Aucun document 3D associé n'a pu être détecté !" & Chr(10) & "Créez une vue de votre modèle 3D puis lancez la mise à jour du cartouche", 64, "No 3D"
'Exit Function
End If
On Error GoTo 0
Tu pourras ensuite récupérer les valeurs souhaitées:Voilà pour le principe. il faut bien sûr adapter à tes variables et à ton code.
- Code:
On Error Resume Next
TextMaterial = Parameters_3D.Item("Material").Value 'si CATIA en allement ou anglais
TextMaterial = Parameters_3D.Item("Matériau").Value 'si CATIA en français
TextDescFR = Doc_3D.Product.DescriptionRef 'Part_Description
TextDescEN = Doc_3D.Product.Definition 'Part_Add_Description
TextNomenclature = Doc_3D.Product.Nomenclature 'Nomenclature
Merci Lumpazepfel, je vais tester ça dès que possible (un peu débordé en ce moment).
Juste par curiosité, as-tu trouvé ces informations dans le fichier V5Automation.chm? Car si tel est le cas je serai intéressé de savoir dans quelle rubrique, j'ai pas mal cherché mais j'avoue ne pas avoir trouvé ce que je cherchais.
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
C'est une partie de notre code de cartouche.
Tu peux trouver des info dans V5Automation.chm en cherchant "GenerativeBehavior.Document".
Je pourrai t'aider à intégrer dans ta macro, mais pas de façon très réactive car je n'ai pas trop de dispo non plus.
Tu peux trouver des info dans V5Automation.chm en cherchant "GenerativeBehavior.Document".
Je pourrai t'aider à intégrer dans ta macro, mais pas de façon très réactive car je n'ai pas trop de dispo non plus.
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Ok, j'ai réussi à intégrer le code à la macro, cependant ça marche de façon aléatoire. Notamment, sur le deuxième calque il garde la référence de la première vue du premier calque.
Je pense qu'il y a peut être un soucis avec la mise à jour des infos, je vais regarder demain si je trouve une solution .
Je pense qu'il y a peut être un soucis avec la mise à jour des infos, je vais regarder demain si je trouve une solution .
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Bonjour,
Ci-dessous une Macro en VBSCRIPT, normalement tu devrais récupérer les infos suivantes (mais tu pourras en ajouter d’autre) : le nom de la pièce 3D lié au plan, la matière de la pièce et la valeur de la variable « Nomenclature ».
Par contre j’utilise le lien de la mise en plan pas le lien de la vue, pour une pièce de détail cela n’a pas bien d’importance, mais du coup je peux avoir accès à d’autres données issue de la 3D, si il y a plusieurs liens dans la mise en plan cela marche aussi.
Bien sûr il te faudra adapter la macro, actuellement les infos sont récupérées via msgbox.
Si question n’hésites pas !
Ci-dessous une Macro en VBSCRIPT, normalement tu devrais récupérer les infos suivantes (mais tu pourras en ajouter d’autre) : le nom de la pièce 3D lié au plan, la matière de la pièce et la valeur de la variable « Nomenclature ».
Par contre j’utilise le lien de la mise en plan pas le lien de la vue, pour une pièce de détail cela n’a pas bien d’importance, mais du coup je peux avoir accès à d’autres données issue de la 3D, si il y a plusieurs liens dans la mise en plan cela marche aussi.
Bien sûr il te faudra adapter la macro, actuellement les infos sont récupérées via msgbox.
Si question n’hésites pas !
- Code:
'--------------- MACRO ---------------------
'--------- Extrait Macro Cartouche ----------
'----- JP 2017 -- http://cao-3d-pro.com/----
'----------------------------------------------
Sub CATMain()
Dim PartDocCatia 'As PartDocument
Dim NDocCatia 'As Product
Dim oAppliedMaterial 'As Material
Dim oManager 'As MaterialManager
Dim esname 'As String
Dim Matiere 'As String
'
Dim oStiEngine 'As StiEngine
Set oStiEngine = CATIA.GetItem("CAIEngine")
Dim oFatherStiDBItem 'As StiDBItem
'
'Set oFatherStiDBItem = CATIA.ActiveDocument
Set oFatherStiDBItem = oStiEngine.GetStiDBItemFromAnyObject(CATIA.ActiveDocument)
'
Dim oStiDBChildren 'As StiDBChildren
Set oStiDBChildren = oFatherStiDBItem.GetChildren()
'
Dim oStiDBItem 'As StiDBItem
Set oStiDBItem = oStiDBChildren.Item(1)
'
Dim DrawingLink 'As String
Dim FullPathDrawingLink 'As String
'
Dim NbCildren 'As Integer
NbCildren = oStiDBChildren.Count
'
For i = 1 To oStiDBChildren.Count
'
FullPathDrawingLink = oStiDBChildren.Item(i).GetDocumentFullPath
'
If (InStr(1, oStiDBChildren.Item(i).GetDocument.Name, "CATProduct") > 0) Then
DrawingLink = oStiDBChildren.Item(i).GetDocument.Name
End If
'
If (InStr(1, oStiDBChildren.Item(i).GetDocument.Name, "CATPart") > 0) Then
Set PartDocCatia = oStiDBChildren.Item(i).GetDocument
Set NDocCatia = PartDocCatia.Product.ReferenceProduct
'
esname = PartDocCatia.Name
'
Set oManager = PartDocCatia.Part.GetItem("CATMatManagerVBExt") 'oManager As MaterialManager
oManager.GetMaterialOnPart PartDocCatia.Part, oAppliedMaterial 'oAppliedMaterial As Material
'
If oAppliedMaterial Is Nothing Then
Matiere = "non definie"
Else
Matiere = oAppliedMaterial.Name ' matière de la pièce
End If
'
MsgBox esname & " - " & Matiere & " Nom:" & " - " & NDocCatia.Nomenclature, vbApplicationModal
DrawingLink = oStiDBChildren.Item(i).GetDocument.Name
End If
'
If DrawingLink = "" Then
Else
' MsgBox DrawingLink, vbApplicationModal
End If
Next
End Sub
cad00- actif
- Messages : 33
Date d'inscription : 17/03/2015
Localisation : PACA
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Bonjour,
Je modifie actuellement le code du cartouche, j'ai globalement trouvé la solution pour l'ensemble du besoin.
Je posterai le code "type" pour critique une fois ce dernier terminé.
Je modifie actuellement le code du cartouche, j'ai globalement trouvé la solution pour l'ensemble du besoin.
Je posterai le code "type" pour critique une fois ce dernier terminé.
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
J'ai toujours un problème avec la matière.
Pour mieux comprendre ma problématique, je vais expliquer rapidement la disposition des plans :
Sur le Calque 1 : Vue générale, Isométrique, nomenclature, etc
Sur les calques suivant (Calque 1+n) : Vue de "détail" des pièces (une pièces par calque) pour la fabrication des pièces.
(La disposition et l'utilisation des plans n'est pas à remettre en question, restons concentré sur les problème de macro )
Or avec la macro actuelle quand on génère les calques détaillant les pièces, la matière qui est affichée dans le cartouche est la matière du premier calque.
Voici la partie du code qui gère les informations issues du 3D (très fortement inspirée de vos réponses ) :
Pour mieux comprendre ma problématique, je vais expliquer rapidement la disposition des plans :
Sur le Calque 1 : Vue générale, Isométrique, nomenclature, etc
Sur les calques suivant (Calque 1+n) : Vue de "détail" des pièces (une pièces par calque) pour la fabrication des pièces.
(La disposition et l'utilisation des plans n'est pas à remettre en question, restons concentré sur les problème de macro )
Or avec la macro actuelle quand on génère les calques détaillant les pièces, la matière qui est affichée dans le cartouche est la matière du premier calque.
Voici la partie du code qui gère les informations issues du 3D (très fortement inspirée de vos réponses ) :
- Code:
Sub CATLinks()
'-------------------------------------------------------------------------------
'How to fill in texts with data of the part/product linked with current sheet
'-------------------------------------------------------------------------------
On Error Resume Next
Dim ViewDocument
Select Case GetContext():
Case "LAY": Set ViewDocument = CATIA.ActiveDocument.Product
Case "DRW":
If Views.Count>=3 Then
Set ViewDocument = Views.Item(3).GenerativeBehavior.Document
Else
Set ViewDocument = Nothing
End If
Case Else:Set ViewDocument = Nothing
End Select
'Find the product document
Dim ProductDrawn
Set ProductDrawn=Nothing
For i = 1 to 8
If TypeName(ViewDocument)="PartDocument" Then
Set ProductDrawn=ViewDocument.Product
Exit For
End If
If TypeName(ViewDocument)="Product" Then
Set ProductDrawn=ViewDocument
Exit For
End If
Set ViewDocument = ViewDocument.Parent
Next
'-------------------------------------------------------------------------------2017/05/03 - 11:36 - Ajout par X.YYYYY
'Récupération des informations issues du modèle 3D
'-------------------------------------------------------------------------------
On Error Resume Next
If DrwSheets.Item(1).Views.Count > 2 Then
Set Infos_3D = CATIA.ActiveDocument.Sheets.Item(1).Views.Item(3).GenerativeBehavior.Document.Parent '1ère projection
link_3d = True
If InStr(Infos_3D.Name, ".CATPart") <> 0 Then
Set Parameters_3D = Infos_3D.Part.Parameters
Else
Set Parameters_3D = Infos_3D.Product.Parameters.RootParameterSet.DirectParameters
End If
Else
MsgBox "Aucun document 3D associé n'a pu être détecté !" & Chr(10) & "Créez une vue de votre modèle 3D puis lancez la mise à jour du cartouche", 64, "No 3D"
'Exit Function
End If
On Error GoTo 0
'-------------------------------------------------------------------------------2017/05/03 - 11:36 - Ajout par X.YYYYY
'Modification des valeurs des textes en liens avec les informations issues du modèle 3D
'-------------------------------------------------------------------------------
On Error Resume Next
If ProductDrawn <> Nothing Then
Texts.GetItem("TitleBlock_Text_EnoviaV5_Effectivity").Text = ProductDrawn.PartNumber
Texts.GetItem("TitleBlock_Text_Title_1").Text = ProductDrawn.Definition
Texts.GetItem("TitleBlock_Text_Material_1").Text = Parameters_3D.Item("Matériau").Value 'si CATIA en français
Texts.GetItem("TitleBlock_Text_Description_1").Text = ProductDrawn.DescriptionRef ' 'Part_Description - si CATIA en français
Dim ProductAnalysis As Analyze
Set ProductAnalysis = ProductDrawn.Analyze
Texts.GetItem("TitleBlock_Text_Weight_1").Text = FormatNumber(ProductAnalysis.Mass,2)
End If
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Bonjour,
Dans ta macro, ton problème est que tu édites les liens des vues et pour pouvoir sortir les infos dont tu as besoin il faut que ta macro active chaque calque un après à l’autre, puis qu'elle active une vue du calque actif (ce n’est pas compliqué, mais c’est long).
Si ta mise en plan est constituée de plusieurs calques et si (à part la première planche sur laquelle il y a un assemblage, si j’ai bien compris) sur chaque calque tu as une pièce de détail qui a été insérée indépendamment de l’assemblage (pas par une modification des liens faite par un clic droit sur la vue, puis édition des liens…..), dans ce cas la macro que j’ai écrite fonctionne selon ton besoin, c’est-à-dire que pour une mise en plan active quel que soit le nombre de calques, la macro te donnera les infos de toute les pièces de chaque calques (sans qu’il soit obligé de les activer un par un).
J’ai testé sur une mise en plan avec 5 calques, 1 calque de l’assemblage, 3 calques de détail et 1 calque avec une vue ISO de l’assemblage, lorsque je lance la macro j’ai accès à toute les infos des pièces 3D, les infos s’affichent dans l’ordre des calques.
Dans ta macro, ton problème est que tu édites les liens des vues et pour pouvoir sortir les infos dont tu as besoin il faut que ta macro active chaque calque un après à l’autre, puis qu'elle active une vue du calque actif (ce n’est pas compliqué, mais c’est long).
Si ta mise en plan est constituée de plusieurs calques et si (à part la première planche sur laquelle il y a un assemblage, si j’ai bien compris) sur chaque calque tu as une pièce de détail qui a été insérée indépendamment de l’assemblage (pas par une modification des liens faite par un clic droit sur la vue, puis édition des liens…..), dans ce cas la macro que j’ai écrite fonctionne selon ton besoin, c’est-à-dire que pour une mise en plan active quel que soit le nombre de calques, la macro te donnera les infos de toute les pièces de chaque calques (sans qu’il soit obligé de les activer un par un).
J’ai testé sur une mise en plan avec 5 calques, 1 calque de l’assemblage, 3 calques de détail et 1 calque avec une vue ISO de l’assemblage, lorsque je lance la macro j’ai accès à toute les infos des pièces 3D, les infos s’affichent dans l’ordre des calques.
cad00- actif
- Messages : 33
Date d'inscription : 17/03/2015
Localisation : PACA
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Oui, j'avais à peu près cerné le problème mais je ne connais pas assez le fonctionnement des codes pour pouvoir palier à ce problème dans l’immédiat. Cependant, une des évolutions envisagée pour cette macro, serai de générer les cartouches de tout les calques une fois l'ensemble de plus terminé. Du coup, peut être que le problème serai résolut par la même occasion.cad00 a écrit:Bonjour,
Dans ta macro, ton problème est que tu édites les liens des vues et pour pouvoir sortir les infos dont tu as besoin il faut que ta macro active chaque calque un après à l’autre, puis qu'elle active une vue du calque actif (ce n’est pas compliqué, mais c’est long).
Tu as bien compris, en générale sur les premières pages c'est les vues d'assemblage et des sous ensemble, puis ensuite le détail de chaque pièces. Du coup, pour le détail on repart à chaque fois du fichier 3D.cad00 a écrit:Si ta mise en plan est constituée de plusieurs calques et si (à part la première planche sur laquelle il y a un assemblage, si j’ai bien compris) sur chaque calque tu as une pièce de détail qui a été insérée indépendamment de l’assemblage (pas par une modification des liens faite par un clic droit sur la vue, puis édition des liens…..), dans ce cas la macro que j’ai écrite fonctionne selon ton besoin, c’est-à-dire que pour une mise en plan active quel que soit le nombre de calques, la macro te donnera les infos de toute les pièces de chaque calques (sans qu’il soit obligé de les activer un par un).
Je ne connais pas la modification par les liens, comment fait-on? (C'est plus pour ma culture qu'autre chose).
Ok, il me reste à me replonger sur la solution que tu proposescad00 a écrit:J’ai testé sur une mise en plan avec 5 calques, 1 calque de l’assemblage, 3 calques de détail et 1 calque avec une vue ISO de l’assemblage, lorsque je lance la macro j’ai accès à toute les infos des pièces 3D, les infos s’affichent dans l’ordre des calques.
d.vincent567- actif
- Messages : 84
Date d'inscription : 05/11/2016
Localisation : Brest
Re: DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
Je t'ai dit une bêtise il n'y a pas besoin d'activer les vues ou les calques pour obtenir les infos, ci-dessous le code en VBSCRIPT,
il faudra adapter la macro à tes besoins, je récupère les infos en supposant qu'il y a une vue nommée "Vue de face" (mais on peut corriger) en suite pour les liens des vues : http://cao-3d-pro.com/catia-mise-en-plan-les-liens-des-vues/
Sub CATMain()
Dim TableauTXT() 'As String
Dim MyDoc 'As DrawingDocument
Set MyDoc = CATIA.ActiveDocument
'
Dim OCollectDrawingSheet 'As DrawingSheets
Set OCollectDrawingSheet = MyDoc.Sheets
Dim NbSheet 'As Integer
NbSheet = OCollectDrawingSheet.Count
'
Dim ODrawingSheet 'As DrawingSheet
'
Dim OCollectView 'As DrawingViews
Dim NbView 'As Integer
'
Dim Oview 'As DrawingView
'
Dim oFrontViewGB 'As DrawingViewGenerativeBehavior
'
Dim link3D 'As Document
'
For i = 1 To NbSheet
Set ODrawingSheet = OCollectDrawingSheet.Item(i)
MsgBox ODrawingSheet.Name, vbApplicationModal
Set OCollectView = ODrawingSheet.Views
NbView = OCollectView.Count
For p = 1 To NbView
Set Oview = OCollectView.Item(p)
If Oview.Name = "Main View" Or Oview.Name = "Background View" Then
Else
If Oview.Name = "Vue de face" Then
MsgBox Oview.Name, vbApplicationModal
Set oFrontViewGB = Oview.GenerativeBehavior
MsgBox oFrontViewGB.Document.Name, vbApplicationModal
Set link3D = Oview.GenerativeBehavior.Document.Parent
MsgBox link3D.Name, vbApplicationModal
End If
End If
Next
Next
End Sub
il faudra adapter la macro à tes besoins, je récupère les infos en supposant qu'il y a une vue nommée "Vue de face" (mais on peut corriger) en suite pour les liens des vues : http://cao-3d-pro.com/catia-mise-en-plan-les-liens-des-vues/
Sub CATMain()
Dim TableauTXT() 'As String
Dim MyDoc 'As DrawingDocument
Set MyDoc = CATIA.ActiveDocument
'
Dim OCollectDrawingSheet 'As DrawingSheets
Set OCollectDrawingSheet = MyDoc.Sheets
Dim NbSheet 'As Integer
NbSheet = OCollectDrawingSheet.Count
'
Dim ODrawingSheet 'As DrawingSheet
'
Dim OCollectView 'As DrawingViews
Dim NbView 'As Integer
'
Dim Oview 'As DrawingView
'
Dim oFrontViewGB 'As DrawingViewGenerativeBehavior
'
Dim link3D 'As Document
'
For i = 1 To NbSheet
Set ODrawingSheet = OCollectDrawingSheet.Item(i)
MsgBox ODrawingSheet.Name, vbApplicationModal
Set OCollectView = ODrawingSheet.Views
NbView = OCollectView.Count
For p = 1 To NbView
Set Oview = OCollectView.Item(p)
If Oview.Name = "Main View" Or Oview.Name = "Background View" Then
Else
If Oview.Name = "Vue de face" Then
MsgBox Oview.Name, vbApplicationModal
Set oFrontViewGB = Oview.GenerativeBehavior
MsgBox oFrontViewGB.Document.Name, vbApplicationModal
Set link3D = Oview.GenerativeBehavior.Document.Parent
MsgBox link3D.Name, vbApplicationModal
End If
End If
Next
Next
End Sub
cad00- actif
- Messages : 33
Date d'inscription : 17/03/2015
Localisation : PACA
Sujets similaires
» Macro export cartouche dans Excel
» DRAWING - Cartouche personnalisé - Repositionnement Logo après changement de format de feuille
» Mise à jour d'un cartouche personnalisé en fonction des paramètres de la pièce
» Récupérer le lien d'une part dans un CATDrawing
» Récupérer le nom d'une part active dans un produit ouvert
» DRAWING - Cartouche personnalisé - Repositionnement Logo après changement de format de feuille
» Mise à jour d'un cartouche personnalisé en fonction des paramètres de la pièce
» Récupérer le lien d'une part dans un CATDrawing
» Récupérer le nom d'une part active dans un produit ouvert
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|