Prob sur Macro sous Catia V5R14

cs_xtremiste Messages postés 5 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 9 août 2006 - 12 mai 2006 à 14:14
cs_MoonecK Messages postés 2 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 30 mars 2007 - 30 mars 2007 à 21:40
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 :






<LI>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 :</LI>




<DIR>
"Compile error :


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



</DIR>
Voici l’aide proposé par DS pour cette fonction:




<DIR>
<DIR>
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)



</DIR>
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






</DIR>


<LI>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.</LI>







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


Stéphane.

</DIR>

3 réponses

cs_MoonecK Messages postés 2 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 20:48
Bonjour Xtremiste,

Je rencontre le meme probleme que toi concernant GetBoundaryBox.

As tu trouvé la réponse a ce sujet, ou es tu parvenu a contourner le probleme ?

Merci d'avance
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
30 mars 2007 à 21:27
Euh...
Bonjour (et bienvenue) Mooneck...
Je doute un peu (beaucoup) que Xtremiste, qui n'a sur ce forum que 6 messages et dont la dernière visite remonte à aoôt 2006, voie ton message ....
0
cs_MoonecK Messages postés 2 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 21:40
Ah oui, effectivement il vaut mieux que je fasse appel à Sherlock Holmes !
Merci pour le tuyau
0
Rejoignez-nous