Evo napravio sam jedan macro za kreiranje cilindra unutrasnjeg poluprecnika 50 mm, spoljasnjeg 100 mm i visine 25 mm.Zapravo, catia je to sama kreirala.
Code:
Sub CATMain()
Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Add("Part")
Dim part1 As Part
Set part1 = partDocument1.Part
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
Dim body1 As Body
Set body1 = bodies1.Item("PartBody")
Dim sketches1 As Sketches
Set sketches1 = body1.Sketches
Dim originElements1 As OriginElements
Set originElements1 = part1.OriginElements
Dim reference1 As Reference
Set reference1 = originElements1.PlaneXY
Dim sketch1 As Sketch
Set sketch1 = sketches1.Add(reference1)
Dim arrayOfVariantOfDouble1(8)
arrayOfVariantOfDouble1(0) = 0#
arrayOfVariantOfDouble1(1) = 0#
arrayOfVariantOfDouble1(2) = 0#
arrayOfVariantOfDouble1(3) = 1#
arrayOfVariantOfDouble1(4) = 0#
arrayOfVariantOfDouble1(5) = 0#
arrayOfVariantOfDouble1(6) = 0#
arrayOfVariantOfDouble1(7) = 1#
arrayOfVariantOfDouble1(8) = 0#
Set sketch1Variant = sketch1
sketch1Variant.SetAbsoluteAxisData arrayOfVariantOfDouble1
Dim factory2D1 As Factory2D
Set factory2D1 = sketch1.OpenEdition()
Dim geometricElements1 As GeometricElements
Set geometricElements1 = sketch1.GeometricElements
Dim axis2D1 As Axis2D
Set axis2D1 = geometricElements1.Item("AbsoluteAxis")
Dim line2D1 As Line2D
Set line2D1 = axis2D1.GetItem("HDirection")
line2D1.ReportName = 1
Dim line2D2 As Line2D
Set line2D2 = axis2D1.GetItem("VDirection")
line2D2.ReportName = 2
Dim circle2D1 As Circle2D
Set circle2D1 = factory2D1.CreateClosedCircle(0#, 0#, 50#)
Dim point2D1 As Point2D
Set point2D1 = axis2D1.GetItem("Origin")
circle2D1.CenterPoint = point2D1
circle2D1.ReportName = 3
Dim point2D2 As Point2D
Set point2D2 = factory2D1.CreatePoint(50#, 0#)
point2D2.ReportName = 4
Dim constraints1 As Constraints
Set constraints1 = sketch1.Constraints
Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(circle2D1)
Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromObject(point2D2)
Dim constraint1 As Constraint
Set constraint1 = constraints1.AddBiEltCst(catCstTypeOn, reference2, reference3)
constraint1.Mode = catCstModeDrivingDimension
Dim reference4 As Reference
Set reference4 = part1.CreateReferenceFromObject(point2D2)
Dim reference5 As Reference
Set reference5 = part1.CreateReferenceFromObject(line2D1)
Dim constraint2 As Constraint
Set constraint2 = constraints1.AddBiEltCst(catCstTypeOn, reference4, reference5)
constraint2.Mode = catCstModeDrivingDimension
Dim circle2D2 As Circle2D
Set circle2D2 = factory2D1.CreateClosedCircle(0#, 0#, 100#)
circle2D2.CenterPoint = point2D1
circle2D2.ReportName = 5
Dim point2D3 As Point2D
Set point2D3 = factory2D1.CreatePoint(100#, 0#)
point2D3.ReportName = 6
Dim reference6 As Reference
Set reference6 = part1.CreateReferenceFromObject(circle2D2)
Dim reference7 As Reference
Set reference7 = part1.CreateReferenceFromObject(point2D3)
Dim constraint3 As Constraint
Set constraint3 = constraints1.AddBiEltCst(catCstTypeOn, reference6, reference7)
constraint3.Mode = catCstModeDrivingDimension
Dim reference8 As Reference
Set reference8 = part1.CreateReferenceFromObject(point2D3)
Dim reference9 As Reference
Set reference9 = part1.CreateReferenceFromObject(line2D1)
Dim constraint4 As Constraint
Set constraint4 = constraints1.AddBiEltCst(catCstTypeOn, reference8, reference9)
constraint4.Mode = catCstModeDrivingDimension
sketch1.CloseEdition
part1.Update
Dim shapeFactory1 As ShapeFactory
Set shapeFactory1 = part1.ShapeFactory
Dim pad1 As Pad
Set pad1 = shapeFactory1.AddNewPad(sketch1, 20#)
Dim limit1 As Limit
Set limit1 = pad1.FirstLimit
Dim length1 As Length
Set length1 = limit1.Dimension
length1.Value = 25#
part1.Update
End Sub
Napravio sam i jednu formu(koja jos ne funkcionise) u kojoj bi unosio R1 i R2, a visinu bi dobijao kao (R2-R1)/2, tako da samo dva parametra mijenjam.Naravno sada je ovo VB programiranje, pa cu o tome kasnije dok se malo snadjem

.
Znaci, potrebno je valjda postaviti dvije-tri promenljive koje bi ubacio na ova mijesta gdje su mi koordinate 50, 100 i 25, moze se gore vidjeti.Tu bih volio pomoc nekog programera, ukoliko nesto sam ne iskopam
Saljem i sam VBProject, pa ko moze neka preradjuje.
Mene interesuje da li novije verzije Catia-e (moja je V5R10) programiranje zasnivaju na C++ i Javi, ili je moguce i dalje raditi u VB?
MK