[CATIA VBA] Pièce symétrique

CATDEV Messages postés 8 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 4 février 2007 - 13 déc. 2006 à 16:41
CATDEV Messages postés 8 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 4 février 2007 - 14 déc. 2006 à 08:31
<hr />
Bonjour,

Je développe aujourd'hui un outil qui permet de réaliser la pièce symétrique (toto_201.CATPart) d'une originale (tata_200.CATPart)

Contenu de l'originale :
1 - Un à plusieurs Open body,
2 - un à plusieurs Holes, final Holes, etc.
3 - Un à plusieurs Geometrical set
4 - En plus du trièdre de la pièce, il y a un trièdre qui sert de plan de symétrie (x,z) ce trièdre doit être détruis à la fin du processus dans la pièce original

L'outil fait :

1 - ouvre la pièce sélectionnée,
2 - créer un nouveau part et génère son nom en fonction de la pièce originale. (ici je n'arrive pas à faire des copier coller depuis la pièce originale vers la nouvelle pièce) PasteSpecial As result
Donc pour le moment je suis obligé de fermer ma pièce 201.
3 - je sélectionne le premier open body et je le copie.
4 - j'essaye de le coller et CATIA plante.
"Command Interruped"

Si quelqu'un peu m'aider à comprendre?

Voici mon code actuel :

<hr />


,
Function fPart(PartFile As String)
'Dim intCountItem As Integer
'Dim CourantObject As String
CATIA.RefreshDisplay = False
CATIA.DisplayFileAlerts = False

'Renomme les fichiers PRODUCT, replace les PART et sauvegarde ceux-ci dans le répertoire temporaire OUT

'-------------------------------------
'
' Open a part 200
'
'-------------------------------------

Language = "VBSCRIPT"

Set Documents1 = CATIA.Documents

Dim partDocument1 As Document
Set partDocument1 = Documents1.Open(PartFile)

' Retrieving a Part HybridBodies collection to attaching OpenBodies (Geometrical set)
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = partDocument1.Part.HybridBodies

Dim partBodies1 As Bodies
Set partBodies1 = partDocument1.Part.Bodies

Dim partBody As Body

Dim strNameBody As String
strNameBody = partDocument1.Part.InWorkObject.Name

Set partBody = partDocument1.Part.Bodies.Item(strNameBody)

Dim str201PartName As String
str201PartName = Replace(PartFile, "200", "201")

'-------------------------------------
'
' Create a new part for 201
'
'-------------------------------------

Dim intPosition As Integer
intPosition = InStrRev(PartFile, "\")

Dim strShortFileOpenName As String
strShortFileOpenName = Mid(PartFile, intPosition + 1)
Dim str201Name As String

str201Name = Replace(strShortFileOpenName, "20000", "20100", 1, vbTextCompare)

'MsgBox str201Name, vbCritical, "New Part Name"

Dim intDotPosition As Integer
intDotPosition = InStrRev(str201Name, ".")

Dim strNewFile201 As String
strNewFile201 = Left(str201Name, intDotPosition - 1)

Set documents2 = CATIA.Documents
Set partDocument2 = documents2.Add("Part")

' renomme le fichier standard part en part 201 -------------------------------------

Set product2 = partDocument2.Product
product2.PartNumber = Replace(partDocument2.Name, partDocument2.Name, strNewFile201)

partDocument2.Close
'-------------------------------------
'
'From 200 / copy / paste to 201
'
'-------------------------------------

Set specsAndGeomWindow2 = CATIA.ActiveWindow

Set partDocument1 = CATIA.ActiveDocument
Dim selection1 As Selection
Set selection1 = partDocument1.Selection

If Selection = True Then
selection1.Clear
Else
End If

Dim part1 As Part
Set part1 = partDocument1.Part
Dim bodies1 As Bodies
Dim body1 As Body
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item(strNameBody)
selection1.Add body1
selection1.Copy

' Fait planter CATIA !!!!!!!

'CATIA.ActiveDocument.Selection.PasteSpecial "CATIA_RESULT"

'Set specsAndGeomWindow2 = CATIA.ActiveWindow
'Set viewerpoint3D2 = specsAndGeomWindow2.ActiveViewer
'Set viewpoint3D2 = viewerpoint3D2.Viewpoint3D
'
''Dim partDocument2 As Document
'Set partDocument2 = CATIA.ActiveDocument
'
'Dim part2 As PartDocument
'Set part2 = partDocument2
'
'part2.Activate
'
'Set bodies2 = part2.Selection

'Set body2 = bodies1.Item("Res")
'partBodies1.Add
'selection1.PasteSpecial (fgfd)
'CATIA.ActiveDocument.Selection.PasteSpecial "CATIA_RESULT"

'******************************
' Updating CATIA PArt
'partDocument1.Part.Update

partDocument2.SaveAs str201PartName
partDocument2.Close
End Function







Cordialement,
CATIADEV

2 réponses

TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
13 déc. 2006 à 21:25
Bonsoir,
C'est du vb6 d'un univers parallèle oubien tu t'es trompé de forum ?

Jcbé[^]
0
CATDEV Messages postés 8 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 4 février 2007
14 déc. 2006 à 08:31
Bonjour Jcbé,

Ben comme vous vous en douter, si je "post" ici, c'est bien parce que je suis dans :



Thèmes
/
Visual Basic 6
/
Langages dérivés
/
VBA
/
...



Cela veut bien dire que CATIA a un éditeur VBA comme dans Excel

<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??>
<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600">

</v:shapetype>



Pour information, sur ce lien vous trouverez un fichier d'aide pour récupérer les objets CATIA (Propriétés et Méthodes).





http://patrick.dubernet.free.fr/Files/CATIA/





Donc, je reste ouvert à toutes propositions qui pourrait m'aider à corriger mon problème.

Cordialement,
Patrick
0
Rejoignez-nous