centrer sur le graphe
2 participants
Page 1 sur 1
centrer sur le graphe
Bonjour,
Quand je travail dans un ensemble j'utilise souvent la fonction (par le biais du clic droit) centrer sur le graphe.
Ce qui me gène dans cette fonctionnalité, c'est qu'il centre sur l'objet sélectionné , soit une ligne, une droite ou un point ce qu'il fais qu'il déploie aussi
la part dans lequel la sélection est faite.
Donc ce que je souhaite, c'est de faire une macro qui puisse centrer sur le graphe mais qu'il s’arrête à la "Part" parent de l'objet sélectionné.
dans le cas de récupération de maquette via un Step ou de fichier Part construit à partir d'un "all catpart" , ça m'aiderai vachement.
Avez vous une solution
Merci de votre aide
raphael
Quand je travail dans un ensemble j'utilise souvent la fonction (par le biais du clic droit) centrer sur le graphe.
Ce qui me gène dans cette fonctionnalité, c'est qu'il centre sur l'objet sélectionné , soit une ligne, une droite ou un point ce qu'il fais qu'il déploie aussi
la part dans lequel la sélection est faite.
Donc ce que je souhaite, c'est de faire une macro qui puisse centrer sur le graphe mais qu'il s’arrête à la "Part" parent de l'objet sélectionné.
dans le cas de récupération de maquette via un Step ou de fichier Part construit à partir d'un "all catpart" , ça m'aiderai vachement.
Avez vous une solution
Merci de votre aide
raphael
Dernière édition par raphael_59240 le Ven 29 Juil 2016 - 10:43, édité 2 fois
raphael_59240- actif
- Messages : 127
Date d'inscription : 28/03/2015
Age : 53
Localisation : dunkerque
Re: centrer sur le graphe
Salut Raphaël,
Très bonne idée de macro, c'est vrai qu'on n'a pas toujours besoins de dérouler tout l'arbre mais de s'arrêter au niveau de la Part.
Voici un code pour se recentrer sur la Part dont un élément géométrique est sélectionné dans un CATProduct.
Pour les Allcatpart tu veux te recentrer sur le corps de pièce?
Après quelques tests, je me suis rendu compte que la macro ne fonctionne pas dans le cas où il y a des composants dans le Product
A suivre...
Très bonne idée de macro, c'est vrai qu'on n'a pas toujours besoins de dérouler tout l'arbre mais de s'arrêter au niveau de la Part.
Voici un code pour se recentrer sur la Part dont un élément géométrique est sélectionné dans un CATProduct.
Pour les Allcatpart tu veux te recentrer sur le corps de pièce?
- Code:
'************************************************************
'* Recentre le graph sur au niveau de la CATPart *
'* dont un élément est sélectionné dans le 3D *
'* *
'* Il faut un Catproduct actif et sélectionné un élément *
'* géométrique 3D, puis lancer la macro *
'* Lumpazepfel juillet 2016 *
'************************************************************
Sub CATMain()
Dim myDocument As Document
On Error Resume Next
Set myDocument = CATIA.ActiveDocument
If (Err.Number <> 0) Then
MsgBox ("Il n'y a pas de document actif."), vbExclamation + vbOKOnly, "Avertissment"
Exit Sub
End If
On Error GoTo 0
Dim myLeafProduct
Dim MaSelection
Set MaSelection = myDocument.Selection
Dim MaSelection2 As Selection
Set MaSelection2 = myDocument.Selection
'Recentre sur l'élément sélectionné pour développer l'arbre
CATIA.StartCommand "Centrer le graphe" 'si CATIA est en Français
'CATIA.StartCommand "Center graph" 'si CATIA est en Anglais
If MaSelection.Count = 0 Then
MsgBox "Sélectionnez un élément dans le 3D et relancer la macro"
End
Else
On Error Resume Next
Set myLeafProduct = MaSelection.Item(1).LeafProduct
If Err <> 0 Then
MsgBox "Le Document actif est une CatPart,il faut un CATProduct"
End
Else
MaSelection2.Add myLeafProduct
End If
MaSelection2.Remove (1)
CATIA.StartCommand "Centrer le graphe" 'si CATIA est en Français
'CATIA.StartCommand "Center graph" 'si CATIA est en Anglais
End If
End Sub
Après quelques tests, je me suis rendu compte que la macro ne fonctionne pas dans le cas où il y a des composants dans le Product
A suivre...
Dernière édition par lumpazepfel le Lun 25 Juil 2016 - 13:08, édité 1 fois (Raison : disfonctionnement dans certain cas)
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: centrer sur le graphe
Salut Raphaël,
J'ai un peu revu le code et rajouté le cas d'une CatPart avec plusieurs corps.
J'ai un peu revu le code et rajouté le cas d'une CatPart avec plusieurs corps.
- Code:
'************************************************************
'* Recentre le graphe sur au niveau de la CATPart *
'* ou du Corps de pièce *
'* dont un élément est sélectionné dans le 3D *
'* *
'* Il faut un fichier 3D actif et sélectionné un élément *
'* géométrique 3D, puis lancer la macro *
'* Lumpazepfel juillet 2016 *
'************************************************************
'*http://catiav5.forumactif.org/t1483-centrer-sur-le-graphe#6648*
Sub CATMain()
Dim myDocument As Document
On Error Resume Next
Set myDocument = CATIA.ActiveDocument
If (Err.Number <> 0) Then
MsgBox ("Il n'y a pas de document actif."), vbExclamation + vbOKOnly, "Avertissment"
Exit Sub
End If
On Error GoTo 0
Dim myLeafProduct
Dim MaSelection
Set MaSelection = myDocument.Selection
Dim myInstName As String
myInstName = ""
Dim myElement 'As AnyObject
Dim myBody As Body
If MaSelection.Count = 0 Then
MsgBox "Sélectionnez un élément dans le 3D et relancer la macro"
End
Else
CATIA.StartCommand "Centrer le graphe"
On Error Resume Next
Set myLeafProduct = MaSelection.Item(1).LeafProduct
If Err <> 0 Then
'si le document est une part recentrer sur le corps de pièce de l'élément sélectionné
Set myElement = MaSelection.Item(1).Value
'remonte d'un niveau jusqu'à trouver un corps de pièce
Do While myBody Is Nothing
Set myBody = myElement
Set myElement = myElement.Parent
Loop
myInstName = myBody.Name
Else
'Dans un product recentrer sur la part de l'élément sélectionné
myInstName = myLeafProduct.Name 'Name = nom d'instance -->unique
End If
End If
MaSelection.Clear
MaSelection.Search "Name=" & myInstName & ",all"
CATIA.StartCommand "CATCafCenterGraphOnCSOHdr" 'fonction trouvée ici : http://forum.cad.de/foren/ubb/Forum137/HTML/004538.shtml
End Sub
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: centrer sur le graphe
Lumpazepfel,
Merci beaucoup il faudrait que le moderateur le mette dans les outils à partager.
ça marche bien
petite question: as tu fais une formation programmation catia avec dassault?
Merci beaucoup il faudrait que le moderateur le mette dans les outils à partager.
ça marche bien
petite question: as tu fais une formation programmation catia avec dassault?
raphael_59240- actif
- Messages : 127
Date d'inscription : 28/03/2015
Age : 53
Localisation : dunkerque
Re: centrer sur le graphe
Salut Raphael,
j'ai moi la macro a des petits bug suivant le type de fichier : l'arbre se recentre bien mais la pièce n'est pas toujours sélectionnée (orange)
Oui j'ai suivi une formation macro Catia, mais le mieux c'est de pratiquer et de fouiller sur les forums et d'aider les autres permet aussi de découvrir de nouveaux trucs.
j'ai moi la macro a des petits bug suivant le type de fichier : l'arbre se recentre bien mais la pièce n'est pas toujours sélectionnée (orange)
Oui j'ai suivi une formation macro Catia, mais le mieux c'est de pratiquer et de fouiller sur les forums et d'aider les autres permet aussi de découvrir de nouveaux trucs.
lumpazepfel- Fédérateur
- Messages : 319
Date d'inscription : 02/11/2015
Localisation : Ensisheim
Re: centrer sur le graphe
Je l'ai repositionne en cours
raphael_59240- actif
- Messages : 127
Date d'inscription : 28/03/2015
Age : 53
Localisation : dunkerque
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum