Aller au contenu

VBA plan projection vue catdrawing


Messages recommandés

Posté(e)

Bonjour,

pour mon boulot j'ai une macro qui me permet de faire une mise en plan automatique.

Celle ci permet également de faire une vue dépliée (pièce faite avec sheetmetal) de ma pièce.

Jusqu'à aujourd’hui cette vue dépliée utilisée un des trois plans XY, YZ, ZX.

Je voudrais remplacer ce choix par la sélection d'une face ou d'un plan pour créer ma vue.

Dans la macro ci-dessous je parviens à les sélectionner mais dans ce cas la face choisie est toujours projetée suivant la face qui a servie à l'esquisse (du moins il me semble).

C'est à dire que je n'arrive pas à projeter suivant la face de dessous par exemple.

Contrairement à l'icône Catia dans la mise en plan qui va créer la vue suivant la face sélectionnée dans le 3D.

Quelqu'un peut-il me dire ce qu'il manque à mon programme pour obtenir la même chose.

Merci par avance.

 

Public mydraw As DrawingDocument, mysheet, myview, myplandoc As Document
Public Document As PartDocument

Sub CATMain()
'macro qui demande de sélectionner une face ou un plan
'recupération des coordonnées des 2 axes
'creation de la vue dans draw

Dim Status
Dim BiDimFeature
Dim selection1 'As Selection

   Set mydraw = CATIA.ActiveDocument
   Set mysheet = mydraw.Sheets.Item(1)
   Set myview = mysheet.Views.Item(3)
   Set myplandoc = myview.GenerativeBehavior.Document.Parent
   
   Plan_projection.Show
   Unload Plan_projection
   
       myplandoc.Activate

   Set selection1 = myplandoc.Selection
   
Dim InputObjectType(1)
InputObjectType(0) = "Plane"
InputObjectType(1) = "PlanarFace"

selection1.Clear

Status = selection1.SelectElement2(InputObjectType, "Selectionner le plan de projection", True)
If (Status = "Cancel") Then Exit Sub

Set BiDimFeature = selection1.Item(1).Value
' Dim AutomationType

Dim v1(2), v2(2)
BiDimFeature.GetFirstAxis v1
BiDimFeature.GetSecondAxis v2


MsgBox v1(0) & ";" & v1(1) & ";" & v1(2) & "+" & v2(0) & ";" & v2(1) & ";" & v2(2)

mydraw.Activate

Dim DrawingFrontView, DrawingViewGenerativeBehavior As DrawingViewGenerativeBehavior

Set DrawingFrontView = mysheet.Views.Add("Front View")
Set DrawingViewGenerativeBehavior = DrawingFrontView.GenerativeBehavior
    DrawingViewGenerativeBehavior.Document = myplandoc.Product
    DrawingViewGenerativeBehavior.DefineFrontView v1(0), v1(1), v1(2), v2(0), v2(1), v2(2)
    DrawingFrontView.X = 300
    DrawingFrontView.Y = 150
   DrawingViewGenerativeBehavior.Update

selection1.Clear


End Sub

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é