Aller au contenu

Prob lème macro pour Catia V5R14


Messages recommandés

Posté(e)

Bonjour,

Je développe une macro en VBA pour CATIA V5R14. La macro effectue des opérations sur un document de type « Drafting » et je rencontre des problèmes avec certaines fonctions :

 

- la fonction GetBoundaryBox(), elle doit me retourner la position de ma dimension sur le calque de travail. Le problème est que j’ai toujours le même message d’erreur :

 

”Compile error :

Function or interface marked as restricted, or the function uses an automation type not supported in Visual Basic”

 

Voici l’aide proposé par DS pour cette fonction:

 

o Sub GetBoundaryBox(CATSafeArrayVariant oValues)

Get boundary box coordinates of dimension value.

Parameters:

oValues

List of boundary box coordinates (X1,Y1,X2,Y2,.....X4,Y4).

Example:

This example gets boundary box coordinates of MyDimension path.

MyDimension.GetBoundaryBox(oValues)

 

Mon programme pour cette fonction : (je veux lire la position de la dimension)

 

Sub CATMain()

'---------------------------------------------------------------------------

'1/ Lecture du document .CATDrawing ouvert

'---------------------------------------------------------------------------

Dim DrwDoc As DrawingDocument 'Variable type de document

Set DrwDoc = CATIA.ActiveDocument 'on active le document

'---------------------------------------------------------------------------

'2/ Sélection du calque contenant les vues à copier

'---------------------------------------------------------------------------

Dim oSheetSource As DrawingSheet 'Variable calque source

Set oSheetSource = DrwDoc.Sheets.Item("Sheet.1") 'nom du calque source

 

'---------------------------------------------------------------------------

'3/ Sélection de la vue à copier

'---------------------------------------------------------------------------

Dim oViewSource1 As DrawingView

Set oViewSource1 = oSheetSource.Views.Item("AB-AB")

 

oViewSource1.Activate

oSheetSource.Activate

Set DrwDoc = CATIA.ActiveDocument

 

Dim oDimensions As DrawingDimensions

Set oDimensions = oViewSource1.Dimensions

 

Dim oDimension As DrawingDimension

Set oDimension = oDimensions.Item(1)

 

Dim selection1 As Selection

Set selection1 = DrwDoc.Selection

selection1.Clear

selection1.Add oDimension

 

Dim X1 As Single

Dim Y1 As Single

Dim X2 As Single

Dim Y2 As Single

Dim X3 As Single

Dim Y3 As Single

Dim X4 As Single

Dim Y4 As Single

oDimension.GetBoundaryBox X1, Y1, X2, Y2, X3, Y3, X4, Y4

 

End Sub

 

 

- Je souhaiterais créer une droite, toujours dans un document Drafting (jusque la tout va bien), mais je voudrais que cette droite est une contrainte de type “fixe” (et là, c’est le drame). J’arrive à appliquer des contraintes dans un document de type « .Part » mais je ne parviens pas à trouver la fonction pour le Drafting.

 

 

Si vous avez des infos sur ces fonctions, je suis preneur. Merci par avance.

Stéphane.

 

Posté(e)

Bonjour,

 

Lorsque tu as le message "...Interface is restricted..." il suffit de 'détyper' ta variable :

- en mettant un commentaire avant le As

Dim oDimension 'As DrawingDimension

- ou en passant par une variable intermediaire non typée.

 

Marc

Posté(e)

bonjour, merci pour l'info. J'ai réussi à faire fonctionner la fonction GetBoundaryBox(), mais par contre je n'arrive toujours pas à créer de contrainte de type "fixe" sur une droite.

Stéphane

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é