Attribute VB_Name = "CircleOnPoints" '****************************************************************************************************** '***** Name: '***** Author: Neil Meredith '***** Support: '***** Date: 04 December 2008 '***** Description: creates geometry on set of Points on Plane in Geo Set "Inputs" '***** '***** Status: '***** Advancements: '***** Requirements: '***** Compatibility: '****************************************************************************************************** Sub CATStart() 'Declarations Dim mydoc As PartDocument Set mydoc = CATIA.ActiveDocument Dim mypart As Part Set mypart = mydoc.Part Dim hsf As HybridShapeFactory Set hsf = mypart.HybridShapeFactory Dim zaxis As HybridShapeDirection Set zaxis = hsf.AddNewDirectionByCoord(0, 0, 1) Dim xyplane Set xyplane = mypart.OriginElements.PlaneXY 'Variables LineLength = 500 CircleRad = 500 'Select Inputs set Dim inputset As HybridBody Set inputset = mypart.HybridBodies.Item("Inputs") 'Set inputset = mypart.HybridBodies.Item(1) 'Create Outputs set Dim outputset As HybridBody Set outputset = mypart.HybridBodies.Add outputset.Name = "Lines" 'Create Circles set Dim circleset As HybridBody Set circleset = mypart.HybridBodies.Add circleset.Name = "Circles" 'Start Loop For i = 1 To inputset.HybridShapes.Count 'Get start point Dim currentpoint Set currentpoint = inputset.HybridShapes.Item(i) 'Create line Dim zline As HybridShapeLinePtDir Set zline = hsf.AddNewLinePtDir(currentpoint, zaxis, 0, LineLength, False) outputset.AppendHybridShape zline 'zline.Name = "LINE_" & i zline.Name = currentpoint.Name & "_" & i mypart.UpdateObject zline 'Create Circle Dim xcircle As HybridShapeCircleCtrRad Set xcircle = hsf.AddNewCircleCtrRad(currentpoint, xyplane, 0, CircleRad) circleset.AppendHybridShape xcircle 'xcircle.Name = "CIRCLE_" & i xcircle.Name = currentpoint.Name & "_" & i mypart.UpdateObject xcircle Next mypart.Update End Sub