Language="VBSCRIPT" '******************************************************************************************* '* '* Procedure that allow the user to insert an axial sequential operation '* '* Open CATProcess and load Machining workbench '* Execute the VB Script Macro '* '******************************************************************************************* '********************************* 'Global variables '******************************** Dim MfgDoc1 As Document Dim ActivityRef As AnyObject Dim Setup1 As ManufacturingSetup Dim Program1 As ManufacturingProgram Dim PartMachined As Product ' Product including the Design Part Dim documents1 As Documents Dim partDocument1 As Document '******************************************************************************************* '* Main Entry Point '******************************************************************************************* Sub CATMain() Dim ProgramList As MfgActivities Dim NumberOfPO As Integer Dim childs As Activities Dim child As Activity Dim quantity As Integer Dim Line1 As CATIABase Dim Point1 As CATIABase Dim Point2 As CATIABase Dim Point3 As CATIABase Dim Plane2 As CATIABase Dim Line2 As CATIABase Dim Line3 As CATIABase '******************************************************************************************* '*** Retrieve the Open body of the part '******************************************************************************************* Set documents1 = CATIA.Documents Set partDocument1 = documents1.Item("Part_ToolMotion.CATPart") Set part1 = partDocument1.Part Set hybridBodies1 = part1.HybridBodies Set hybridBody1 = hybridBodies1.Item("Open_body.1") Set hybridShapes1 = hybridBody1.HybridShapes '******************************************************************************************* '*** Retrieve the tool motion's geometry '******************************************************************************************* Set Plane1 = hybridShapes1.Item("Plane.1") Set Line1 = hybridShapes1.Item("Line.1") Set Point1 = hybridShapes1.Item("Point.1") Set Point2 = hybridShapes1.Item("Point.2") Set Point3 = hybridShapes1.Item("Point.3") Set Plane2 = hybridShapes1.Item("Plane.2") Set Line2 = hybridShapes1.Item("Line.2") Set Line3 = hybridShapes1.Item("Line.3") Set MfgDoc1 = CATIA.ActiveDocument '******************************************************************************************* '*** Retrieve current Process Root '******************************************************************************************* Set ActivityRef = MfgDoc1.GetItem("Process") '*** Retrieve current SetUp '*** If (ActivityRef.IsSubTypeOf("PhysicalActivity")) Then Set childs = ActivityRef.ChildrenActivities quantity = childs.Count if quantity <= 0 then Exit Sub End if NumberOfPO = 0 For I=1 To quantity Set child = childs.Item(I) If (child.IsSubTypeOf("ManufacturingSetup")) Then Set Setup1 = child NumberOfPO = NumberOfPO +1 Exit For End If Next End If '******************************************************************************************* '*** Retrieve current Program '******************************************************************************************* set ProgramList = Setup1.Programs Set PartMachined = SetUp1.Product Set Program1 = ProgramList.GetElement(1) '******************************************************************************************* ' Creation axial sequential operation '******************************************************************************************* Dim Mo As ManufacturingOperation Set Mo = Program1.AppendOperation("PointToPoint",1) Mo.SetTool("T3 End Mill D 10") '******************************************************************************************* ' Creation of point tool motion '******************************************************************************************* Dim Tm1 as ToolMotion Set Tm1 = Mo.InsertToolMotion("MfgSeqMotionPoint",1) Call Tm1.SetGeometry("PointSite",Point3, PartMachined, 0) '******************************************************************************************* ' Creation of position tool motion '******************************************************************************************* Dim Tm2 as ToolMotion Set Tm2 = Mo.InsertToolMotion("MfgSeqMotionPosition",2) Call Tm2.SetGeometry("Parts", Plane1, PartMachined, 0) Call Tm2.SetGeometry("FirstRelimitingElement", Line2, PartMachined, 0) Call Tm2.SetGeometry("Drives",Line3 , PartMachined, 0) Call Tm2.SetGeometry("RelimitingElements",Point3 , PartMachined, 0) '******************************************************************************************* ' Modification of Position on check parameter '******************************************************************************************* Dim CheckMode As Variant Set CheckMode = Tm2.GetAttribute("MfgCheckStopMode") CheckMode.ValuateFromString ("MfgTo") '******************************************************************************************* ' Creation of delta tool motion '******************************************************************************************* Dim Tm3 as ToolMotion Set Tm3 = Mo.InsertToolMotion("MfgSeqMotionDelta",3) Set CheckMode = Tm3.GetAttribute("MfgPtDeltaMode") CheckMode.ValuateFromString ("MfgPtDeltaParallelLine") Call Tm3.SetGeometry("GuidingElements", Line2, PartMachined, 0) Dim OffsetValue As Variant Set OffsetValue = Tm3.GetAttribute("MfgPtDeltaDistance") OffsetValue.Value = 15 '******************************************************************************************* ' get the list of tool motions and reading each tool motion '******************************************************************************************* Dim TMList2 As MfgToolMotions Set TMList2 = MO.GetListOfToolMotions NbMo = TMList2.Count Dim Test2 As ManufacturingToolMotion Set Test2 = TMList2.GetElement(1) 'msgbox(Test2.Name) Set Test2 = TMList2.GetElement(2) 'msgbox(Test2.Name) Set Test2 = TMList2.GetElement(3) 'msgbox(Test2.Name) End Sub