Language="VBSCRIPT"
'*******************************************************************************************
'*
'* Procedure that allow the user to create a lathe sequential operation and tool motions
'*
'* Open CATProcess and load Lathe 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("PartLathe_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 PT1 = hybridShapes1.Item("PT1")
Set PT2 = hybridShapes1.Item("PT2")
Set PT3 = hybridShapes1.Item("PT3")
Set D1 = hybridShapes1.Item("D1")
Set D2 = hybridShapes1.Item("D2")
Set D3 = hybridShapes1.Item("D3")
Set D3 = hybridShapes1.Item("D3")
Set D4 = hybridShapes1.Item("D4")
Set D5 = hybridShapes1.Item("D5")
Set D6 = hybridShapes1.Item("D6")
Set D7 = hybridShapes1.Item("D7")
'*******************************************************************************************
'*** Retrieve current Process Root
'*******************************************************************************************
Set MfgDoc1 = CATIA.ActiveDocument
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)
'*******************************************************************************************
' Create lathe horizontal machine
'*******************************************************************************************
Dim Machine1 As ManufacturingMachine
Set Machine1 = SetUp1.CreateMachine("MfgHorizontalLatheMachine")
'*******************************************************************************************
' Creation lathe sequential operation
'*******************************************************************************************
dim Mo1 As ManufacturingOperation
Set Mo1 = Program1.AppendOperation("MfgLatheSequentialOperation",1)
MO1.SetTool("T1 External Tool")
Dim Tm1 as ToolMotion
Dim Tm2 as ToolMotion
Dim Tm3 as ToolMotion
Dim Tm4 as ToolMotion
Dim Tm5 as ToolMotion
'*******************************************************************************************
' Creation of gostd tool motion and geometry assignment
'*******************************************************************************************
Set Tm1 = Mo1.InsertToolMotion("MfgSeqMotionLatheGoStd", 1)
Call Tm1.SetGeometry("Parts", PT1, PartMachined, 0)
'*******************************************************************************************
' Creation of Go GO tool motion
'*******************************************************************************************
Set Tm2 = Mo1.InsertToolMotion("MfgSeqMotionLatheGoStd",2)
Call Tm2.SetGeometry("Parts", D2, PartMachined, 0)
Call Tm2.SetGeometry("SecondRelimitingElement", D1, PartMachined, 0)
'*******************************************************************************************
' Creation of Indirv tool motion
'*******************************************************************************************
Set Tm3 = Mo1.InsertToolMotion("MfgSeqMotionLatheIndirv",3)
Call Tm3.SetGeometry("Parts", D4, PartMachined, 0)
Call Tm3.SetGeometry("FirstRelimitingElement", D3, PartMachined, 0)
'*******************************************************************************************
' Creation of Delta tool motion
'*******************************************************************************************
Set Tm4 = Mo1.InsertToolMotion("MfgSeqMotionLatheDelta", 4)
Dim DeltaMode As Variant
Set DeltaMode = Tm4.GetAttribute("MfgLatheEODeltaCheckMode")
DeltaMode.ValuateFromString ("MfgLatheDeltaPtPt")
Call Tm4.SetGeometry("FirstRelimitingElement", PT2, PartMachined,1)
Call Tm4.SetGeometry("FirstRelimitingElement", PT3,PartMachined, 2)
'*******************************************************************************************
' Creation of Go GO tool motion
'*******************************************************************************************
Set Tm5 = Mo1.InsertToolMotion("MfgSeqMotionLatheGoStd",5)
Call Tm5.SetGeometry("Parts", D6, PartMachined, 0)
Call Tm5.SetGeometry("SecondRelimitingElement", D5, PartMachined, 0)
'*******************************************************************************************
' Creation of Delta tool motion
'*******************************************************************************************
Set Tm6 = Mo1.InsertToolMotion("MfgSeqMotionLatheDelta", 6)
Set DeltaMode = Tm6.GetAttribute("MfgLatheEODeltaCheckMode")
DeltaMode.ValuateFromString ("MfgLatheDeltaLineDist")
Call Tm6.SetGeometry("FirstRelimitingElement", D5, PartMachined, 0)
Dim DeltaValue as Variant
Set DeltaValue = Tm6.GetAttribute("MfgLatheEOValueDistance")
DeltaValue.Value = 10
'*******************************************************************************************
' Creation of gostd tool motion and geometry assignment
'*******************************************************************************************
Set Tm7 = Mo1.InsertToolMotion("MfgSeqMotionLatheGoStd", 7)
Call Tm7.SetGeometry("Parts", D6, PartMachined, 0)
'*******************************************************************************************
' Creation of Follow tool motion and geometry assignment
'*******************************************************************************************
Set Tm8 = Mo1.InsertToolMotion("MfgSeqMotionLatheFollow", 8)
Call Tm8.SetGeometry("Parts", D7, PartMachined, 0)
'*******************************************************************************************
' Creation of PP Word tool motion and geometry assignment
'*******************************************************************************************
Set Tm5 = Mo1.InsertToolMotion("MfgSeqMotionPPWord",9)
Dim TMList As MfgToolMotions
Set TMList = MO1.GetListOfToolMotions
NbMo = TMList.Count
'msgbox NbMo
Dim Test As ManufacturingToolMotion
Set Test = TMList.GetElement(1)
'msgbox(Test.Name)
End Sub