Bonjour à tous,

Plus que débutant en Prog VBA, mais "expert" Catia V5, je cherche à automatiser des conceptions...
Pour ce faire, et m'entrainer sur quelque chose de "simple", j'ai créé un Product (luminaire) dans lequel se trouve une part (squelette) et une autre dans laquelle je vais construire l'objet (lampe) !

[ame="http://www.flickr.com/photos/60758883@N02/6797742930/"]1 | Flickr - Photo Sharing![/ame]

J'enregistre une macro :
- activation de la part (Lampe)
- un cercle qui s'appui sur le point de la part (squelette)
- puis un balayage qui s'appui sur la courbe de la part (squelette)

Voila le script sortant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Sub CATMain()
 
Dim documents1 As Documents
Set documents1 = CATIA.Documents
 
Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Item("Lampe.CATPart")
 
Dim part1 As Part
Set part1 = partDocument1.Part
 
Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory
 
Dim parameters1 As Parameters
Set parameters1 = part1.Parameters
 
Dim hybridShapePointExplicit1 As HybridShapePointExplicit
Set hybridShapePointExplicit1 = parameters1.Item("Point.1")
 
Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromObject(hybridShapePointExplicit1)
 
Dim originElements1 As OriginElements
Set originElements1 = part1.OriginElements
 
Dim hybridShapePlaneExplicit1 As HybridShapePlaneExplicit
Set hybridShapePlaneExplicit1 = originElements1.PlaneXY
 
Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(hybridShapePlaneExplicit1)
 
Dim hybridShapeCircleCtrRad1 As HybridShapeCircleCtrRad
Set hybridShapeCircleCtrRad1 = hybridShapeFactory1.AddNewCircleCtrRad(reference1, reference2, False, 20#)
 
hybridShapeCircleCtrRad1.DiameterMode = True
 
hybridShapeCircleCtrRad1.SetLimitation 1
 
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies
 
Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Construction")
 
hybridBody1.AppendHybridShape hybridShapeCircleCtrRad1
 
part1.InWorkObject = hybridShapeCircleCtrRad1
 
part1.Update
 
Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(hybridShapeCircleCtrRad1)
 
Dim parameters2 As Parameters
Set parameters2 = part1.Parameters
 
Dim hybridShapeCurveExplicit1 As HybridShapeCurveExplicit
Set hybridShapeCurveExplicit1 = parameters2.Item("Curve.1")
 
Dim reference4 As Reference
Set reference4 = part1.CreateReferenceFromObject(hybridShapeCurveExplicit1)
 
Dim hybridShapeSweepExplicit1 As HybridShapeSweepExplicit
Set hybridShapeSweepExplicit1 = hybridShapeFactory1.AddNewSweepExplicit(reference3, reference4)
 
hybridShapeSweepExplicit1.SubType = 1
 
hybridShapeSweepExplicit1.SetAngleRef 1, 0#
 
hybridShapeSweepExplicit1.SolutionNo = 0
 
hybridShapeSweepExplicit1.SmoothActivity = False
 
hybridShapeSweepExplicit1.GuideDeviationActivity = False
 
hybridShapeSweepExplicit1.SetbackValue = 0.02
 
hybridShapeSweepExplicit1.FillTwistedAreas = 1
 
hybridBody1.AppendHybridShape hybridShapeSweepExplicit1
 
part1.InWorkObject = hybridShapeSweepExplicit1
 
part1.Update
 
part1.Update
 
End Sub
Mais quand je le relance, il ne se rejoue pas et bloque ligne 19 !

Et je ne comprends pas pourquoi la macro créée des noms tel que "Part1" alors que j'ai renommé ces fameuse part (squelette, lampe,...) !?

En gros des que je veux m'appuyer sur un élément externe de la part dans laquelle je travaille, cela ne fonctionne pas !!!!!

Si l'un d'entre vous peux m'apporter son aide, je serais ravis....

Merci d'avance....