[résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Voir le sujet précédent Voir le sujet suivant Aller en bas

[résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Tonio091 le Mar 5 Juil 2016 - 3:13

Bonjour,

Je débute en Catvba je cherche à faire une macro qui génère la vue de face et les projetées (droite, gauche, dessus, dessous). Le code ci dessous s'exécute correctement pour les vues de droite et de gauche mais pour les vues de dessus et dessous elles se superposent à la vue de face. Elles sont d'abord bien positionnées mais ensuite quand on sélectionne la vue de face et qu'on la bouge sur le drawing les vues de dessous et dessus se superposent et ne sont donc plus bien positionnées. Ce qui me parait encore plus bizarre, c'est que le problème se produit uniquement sur les vues de dessus/dessous(je peux les bouger horizontalement mais pas verticalement) et pas sur les vues de droite/gauche(qui elles sont quand même verrouillées horizontalement). Le code est exactement le même pour les 4 vues projetées (voir ci dessous) :

'Macro permettant de créer les vues d'un plan et d'y ajouter les références automatiques sur les vues générées'

Dim Draw1 As DrawingDocument
Set Draw1 = CATIA.Documents.Item("TestDraw.CATDrawing")

'Recuperer le calque actif

Dim WorkSheet As DrawingSheet
Set WorkSheet = Draw1.DrawingRoot.ActiveSheet

'Ouverture de la part à mettre au plan
Dim PartDoc As PartDocument
Set PartDoc = CATIA.Documents.Item("Test.CATPart")


'Création vue de face generatrice
Dim FaceViewGen As DrawingView
Set FaceViewGen = WorkSheet.Views.Add("Front View")
FaceViewGen.GenerativeBehavior.Document = PartDoc
FaceViewGen.GenerativeBehavior.DefineFrontView 0, 1, 0, 0, 0, 1
FaceViewGen.Activate

'Mise à jour du plan
Draw1.DrawingRoot.Update

'Création vue de droite generatrice
Dim RightViewGen As DrawingView
Set RightViewGen = WorkSheet.Views.Add("Right View")
RightViewGen.GenerativeBehavior.Document = PartDoc
RightViewGen.GenerativeBehavior.DefineProjectionView FaceViewGen.GenerativeBehavior, catRightView
RightViewGen.ReferenceView = FaceViewGen
RightViewGen.AlignedWithReferenceView

Draw1.DrawingRoot.Update

'Création vue de gauche generatrice
Dim LeftViewGen As DrawingView
Set LeftViewGen = WorkSheet.Views.Add("Left View")
LeftViewGen.GenerativeBehavior.Document = PartDoc
LeftViewGen.GenerativeBehavior.DefineProjectionView FaceViewGen.GenerativeBehavior, catLeftView
LeftViewGen.ReferenceView = FaceViewGen
LeftViewGen.AlignedWithReferenceView

'Mise à jour du plan
Draw1.DrawingRoot.Update

'Création vue du dessus
Dim TopViewGen As DrawingView
Set TopViewGen = WorkSheet.Views.Add("Top View")
TopViewGen.GenerativeBehavior.Document = PartDoc
TopViewGen.GenerativeBehavior.DefineProjectionView FaceViewGen.GenerativeBehavior, catTopView
TopViewGen.ReferenceView = FaceViewGen
TopViewGen.AlignedWithReferenceView

Draw1.DrawingRoot.Update

'Création vue du dessous
Dim BottomViewGen As DrawingView
Set BottomViewGen = WorkSheet.Views.Add("Bottom View")
BottomViewGen.GenerativeBehavior.Document = PartDoc
BottomViewGen.GenerativeBehavior.DefineProjectionView FaceViewGen.GenerativeBehavior, catBottomView
BottomViewGen.ReferenceView = FaceViewGen
BottomViewGen.AlignedWithReferenceView

Draw1.DrawingRoot.Update

RightViewGen.xAxisData = 150
LeftViewGen.xAxisData = -150
TopViewGen.yAxisData = 150
BottomViewGen.yAxisData = -150

Draw1.DrawingRoot.Update

FaceViewGen.xAxisData = 594.5
FaceViewGen.yAxisData = 420.5

End Sub

Si vous avez une idée ça m'intéresse. Merci pour votre aide.


Dernière édition par Tonio091 le Lun 11 Juil 2016 - 23:48, édité 1 fois
avatar
Tonio091
actif
actif

Messages : 25
Date d'inscription : 26/02/2011
Age : 35

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Nico_atomique le Mar 5 Juil 2016 - 18:48

Salut,

Je n'ai jamais fait de mise en plan de cette façon donc je ne fais que des propositions!

Je vois que tu as le code écrit comme ça:
Code:
RightViewGen.xAxisData = 150
LeftViewGen.xAxisData = -150
TopViewGen.yAxisData = 150
BottomViewGen.yAxisData = -150
Peut être devrais-tu définir sur les 2 axes chacune de tes vues, non?

Dans ce cas, ça explique pourquoi tu ne peux déplacer tes vues dessus et dessous que sur l'axe X, vu que Y =(-)150
Cependant, selon ce raisonnement, les vues droite et gauche devraient bouger verticalement.

Peut-être que tu devrais creuser dans ce sens!

Nico_atomique
actif
actif

Messages : 38
Date d'inscription : 20/04/2016
Localisation : Marseille/Aix-en-Provence

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par lumpazepfel le Mar 5 Juil 2016 - 19:46

Salut Tonio,

Il faut repositionner tes vues (en x ou y) avant de définir les références :
(exemple pour la vue de dessus)
Code:
'Création vue du dessus
Dim TopViewGen As DrawingView
Set TopViewGen = WorkSheet.Views.Add("Top View")
TopViewGen.GenerativeBehavior.Document = PartDoc
TopViewGen.GenerativeBehavior.DefineProjectionView FaceViewGen.GenerativeBehavior, catTopView
TopViewGen.yAxisData = 150 '<---------------
TopViewGen.ReferenceView = FaceViewGen
TopViewGen.AlignedWithReferenceView

Ne me demande pas pourquoi, mais ça semble fonctionner.
avatar
lumpazepfel
actif
actif

Messages : 141
Date d'inscription : 03/11/2015
Localisation : Ensisheim

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Tonio091 le Mar 5 Juil 2016 - 22:28

Merci à vous pour vos réponses Nico_atomique et lumpazepfel. Effectivement, en repositionnant l'axe x ou y de la vue avant de déclarer la vue de référence ça fonctionne.
avatar
Tonio091
actif
actif

Messages : 25
Date d'inscription : 26/02/2011
Age : 35

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Nico_atomique le Mar 5 Juil 2016 - 23:54

Pas de soucis!
N'oublie pas de passer le sujet en résolu du coup! Smile

Nico_atomique
actif
actif

Messages : 38
Date d'inscription : 20/04/2016
Localisation : Marseille/Aix-en-Provence

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par raphael_59240 le Mer 6 Juil 2016 - 0:24

bonjour,

Cette fonction fait le travail que tu demande?Question


Sinon quel est la diférence?


Raphael
avatar
raphael_59240
actif
actif

Messages : 123
Date d'inscription : 28/03/2015
Age : 46
Localisation : dunkerque

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Tonio091 le Mer 6 Juil 2016 - 4:29

Bonjour,

Raphael cette fonction te crée simplement une nouvelle vue vide mais c'est tout, ce que je cherchais à faire c'est à partir d'un drawing et d'une part ouverte dans CATIA c'est générer les vues de bases (face, droite, gauche, dessus, dessous) en un click par l'utilisateur. Aussi je rencontre un aussi un problème sur la syntaxe sans doute quand il s'agit uniquement d'un product ci dessous le code :

'Ouverture de la part à mettre au plan
Dim ProductDoc As ProductDocument
Set ProductDoc = CATIA.Documents.Item("TestReferences.CATProduct")


'Création vue de face generatrice
Dim FaceViewGen As DrawingView
Set FaceViewGen = WorkSheet.Views.Add("Front View")
FaceViewGen.GenerativeBehavior.Document = ProductDoc ----> ça plante ici avec l'erreur suivante "Run-Time error 430 Class does not support Automation or does not support expected Interface"

FaceViewGen.GenerativeBehavior.DefineFrontView 0, 1, 0, 0, 0, 1
FaceViewGen.Activate

'Mise à jour du plan
Draw1.DrawingRoot.Update

Je pense peut être à une référence non cochée ou alors je n'ai pas la bonne méthode quand il s'agit d'un product.

Si quelqu'un a encore une idée ça m'aiderait beaucoup.

Merci à vous

Tonio
avatar
Tonio091
actif
actif

Messages : 25
Date d'inscription : 26/02/2011
Age : 35

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par lumpazepfel le Mer 6 Juil 2016 - 19:44

Salut,

Pour ton code, modifie ceci pour un product:

Code:
Dim ProductDoc as AnyObject

Set ProductDoc = CATIA.Documents.Item("TestReferences.CATProduct").Product

Ceci dit, la fonction proposé par Raphaël réalise les différentes vues.
As tu testé les différentes icones du menu déroulants?
avatar
lumpazepfel
actif
actif

Messages : 141
Date d'inscription : 03/11/2015
Localisation : Ensisheim

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par raphael_59240 le Mer 6 Juil 2016 - 21:16

Bonjour,

Je comprends ce que veux faire et je continu à dire que la fonction :


Ouvre ceci :



ce qui mets plus de possibilités sur les positionnements....

il y a aussi cette methode :



c est pas mal mais bon j'en suite bien loin aujourd'hui.

Je travaille en bureau d'etude depuis 15ans dont 5 ans catia V4 et 10 de catia v5. Ce type de mise en plan est hyper dépasser.
Je suis plutôt dans des formats moins école avec beaucoup de vue isométrique, détail....
donc te focaliser ds la mise en plan traditionnel via Vb (outre le fait d'apprendre le développement), je pense honnêtement que tu passe du temps pour rien.
Ceci dis ce n 'est que mon point de vue.

A bientot sur d autre sujet,

raphael
avatar
raphael_59240
actif
actif

Messages : 123
Date d'inscription : 28/03/2015
Age : 46
Localisation : dunkerque

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Tonio091 le Mer 6 Juil 2016 - 22:39

Bonjour,

Ah oui tu as raison Raphael autant pour moi désolé j'avais mal lu/vu l'icone. La mise en plan de base pour un plan d'ensemble n'est qu'une première étape, je pense ensuite ajouter les références de chaque pièce de l'ensemble sur le plan voir peut être aussi à intégrer dans le plan une nomenclature de pièces de façon automatique.

Merci encore pour vos réponses pour info ça aussi ça marche à l'endroit où ça plante :

FaceViewGen.GenerativeBehavior.Document = ProductDoc.Product

A bientôt
Tonio
avatar
Tonio091
actif
actif

Messages : 25
Date d'inscription : 26/02/2011
Age : 35

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par raphael_59240 le Jeu 7 Juil 2016 - 18:22

Bonjour tonio,

Peux tu mettre ton message en résolu (en éditant tu as cette possibilité)

Merci ,


raphael
avatar
raphael_59240
actif
actif

Messages : 123
Date d'inscription : 28/03/2015
Age : 46
Localisation : dunkerque

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Docserta le Sam 24 Sep 2016 - 9:28

Merci lumpazepfel

Dire que j'ai perdu 2 heures a essayer de comprendre le problème, alors que la solution était dans le forum.

Code:
TopViewGen.yAxisData = 150

Christian
avatar
Docserta
actif
actif

Messages : 41
Date d'inscription : 10/11/2011
Localisation : Rennes

Revenir en haut Aller en bas

Re: [résolu]Créer une vue de face et des vues projetées à partir d'une part ou d'un product

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum