xtremiste Posté(e) le 15 mai 2006 Posté(e) le 15 mai 2006 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.
marc54 Posté(e) le 16 mai 2006 Posté(e) le 16 mai 2006 Bonjour, Lorsque tu as le message "...Interface is restricted..." il suffit de 'détyper' ta variable : - en mettant un commentaire avant le AsDim oDimension 'As DrawingDimension- ou en passant par une variable intermediaire non typée. Marc Marc http://www.3dsys.fr
xtremiste Posté(e) le 17 mai 2006 Auteur Posté(e) le 17 mai 2006 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant