1)Например через AddNewDatums + посредник (напрямик не захотело)
- Код: Выделить всё
Sub CATMain()
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part
Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory
Dim hybridShapeDirection1 As HybridShapeDirection
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirectionByCoord(0#, 0#, 0#)
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies
Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Geometrical Set.4")
Dim sketches1 As Sketches
Set sketches1 = hybridBody1.HybridSketches
Dim sketch1 As Sketch
Set sketch1 = sketches1.Item("Sketch.2")
Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromObject(sketch1)
Dim axisSystems1 As AxisSystems
Set axisSystems1 = part1.AxisSystems
Dim axisSystem1 As AxisSystem
Set axisSystem1 = axisSystems1.Item("Absolute Axis System")
Dim reference3 As Reference
Set reference3 = part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(AxisSystem.1;2);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", axisSystem1)
Dim hybridShapeCurvePar1 As HybridShapeCurvePar
Set hybridShapeCurvePar1 = hybridShapeFactory1.AddNewCurvePar(reference1, reference3, 0#, False, False)
hybridShapeCurvePar1.SmoothingType = 0
hybridBody1.AppendHybridShape hybridShapeCurvePar1
part1.InWorkObject = hybridShapeCurvePar1
part1.Update
Dim HShape
Set Reference = part1.CreateReferenceFromObject(hybridShapeCurvePar1)
' HShape = hybridShapeFactory1.AddNewDatums(reference1) -не хочет
HShape = hybridShapeFactory1.AddNewDatums(Reference)
num = UBound(HShape)
For i = 0 To num
hybridBody1.AppendHybridShape HShape(i)
Next
part1.InWorkObject = HShape(num)
part1.Update
End Sub
2)В рейде вроде есть еще CATDomain....;
3)StartCommand ( "Disassemble" )
http://www.coe.org/p/fo/et/thread=14966 - ноо тут бы неплохо перед нажатием "ОК" через WApi выбрать деление на домены, а не примитивы;
а вообще простой проход вполне себе сойдет(если, конечно, оно будет проще п.1 - не факт).