' Instantiation of a User Feature Reference "UserFeature2" ' UserFeature2 is stored in the CATPart "e:\UserFeatureStartSweep.CATPart" ' It has ' 2 inputs: Center and Surface ' 2 published parameters: Height and Radius ' 1 output: Direction '------------------------------------------------------------------ '------------------------------------------------------------------ Catia.SystemService.Print "Retrieve the current part" Dim PartDocumentDest As PartDocument Set PartDocumentDest = CATIA.ActiveDocument Dim PartDest As Part Set PartDest = PartDocumentDest.Part '------------------------------------------------------------------ Catia.SystemService.Print "Retrieve the User Feature Reference" CATIA.DisplayFileAlerts = False Dim PartDocumentStart As PartDocument Set PartDocumentStart = CATIA.Documents.Read ("E:\UserFeatureStartSweep.CATPart") Dim PartStart As Part Set PartStart = PartDocumentStart.Part Dim reference As Object Set reference = PartStart.FindObjectByName("UserFeature2") '------------------------------------------------------------------ Catia.SystemService.Print "Instantiate the reference in the current part" Dim factory As InstanceFactory Set factory = PartDest.GetCustomerFactory("InstanceFactory") Dim instance As ShapeInstance Set instance = factory.AddInstance(reference) '------------------------------------------------------------------ Catia.SystemService.Print "Set Inputs" Dim Center As Object Set Center = PartDest.FindObjectByName("Point.1") Dim Surface As Object Set Surface = PartDest.FindObjectByName("Surface.1") instance.PutInput "Point.1", Center instance.PutInput "Surface.1", Surface '------------------------------------------------------------------ Catia.SystemService.Print "Modify Parameters" Dim param1 As Parameter Set param1 = instance.GetParameter("Height") param1.ValuateFromString("40mm") Dim param2 As Parameter Set param2 = instance.GetParameter("Radius") param2.ValuateFromString("30mm") '------------------------------------------------------------------ Catia.SystemService.Print "Update" PartDest.Update '------------------------------------------------------------------ Catia.SystemService.Print "Retrieves Inputs and Outputs" Dim inputCentre As Object Set inputCentre = instance.GetInput("Center") Dim inputSurface As Object Set inputSurface = instance.GetInput("Surface") Catia.SystemService.Print "Retrieve outputs" Dim outputDirection As Object Set outputDirection = instance.GetOutput("Direction") '------------------------------------------------------------------ Catia.SystemService.Print "Close the CATPart containing the reference" PartDocumentStart.Close