' Instantiation of a Power
Copy Reference called "TwoSurfacicHole"
' TwoSurfacicHole is stored in the CATPart PowerCopyReference.CATPart"
' It has 3 inputs: FirstHole, Support,and SecondHole
' and 2 published parameters: Radius1 and Radius2
'--------------------------------------------------------------
'---------------------------------------------------------------
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 factory of the current part"
Dim factory As InstanceFactory (A)
Set factory = PartDest.GetCustomerFactory("InstanceFactory")
'---------------------------------------------------------------
CATIA.SystemService.Print "BeginInstanceFactory"
(1)
factory.BeginInstanceFactory "TwoSurfacicHole", "e:\tmp\PowerCopyReference.CATPart"
'---------------------------------------------------------------
CATIA.SystemService.Print "Begin Instantiation"
factory.BeginInstantiate (2)
'---------------------------------------------------------------
CATIA.SystemService.Print "Set Inputs"
Dim FirstHole As Object
Set FirstHole = PartDest.FindObjectByName("Point.1")
Dim Support As Object
Set Support = PartDest.FindObjectByName("Extrude.1")
Dim SecondHole As Object
Set SecondHole = PartDest.FindObjectByName("Point.2")
factory.PutInputData "FirstHole", FirstHole
(3)
factory.PutInputData "Support", Support
factory.PutInputData "SecondHole", SecondHole
'---------------------------------------------------------------
CATIA.SystemService.Print "Modify Parameters"
Dim param1 As Parameter
Set param1 = factory.GetParameter("Radius1")
(4)
param1.ValuateFromString("25mm")
Dim param2 As Parameter
Set param2 = factory.GetParameter("Radius2")
param2.ValuateFromString("15mm")
'---------------------------------------------------------------
CATIA.SystemService.Print "Instantiate"
(5)
Dim Instance As ShapeInstance
Set Instance = factory.Instantiate
'---------------------------------------------------------------
CATIA.SystemService.Print "End of Instantiation"
factory.EndInstantiate (6)
'---------------------------------------------------------------
CATIA.SystemService.Print "Release the reference document"
factory.EndInstanceFactory (7)
'---------------------------------------------------------------
CATIA.SystemService.Print "Update"
PartDest.Update
|
-
Initialization (1):
Use the
BeginInstanceFactory method of the
CATIAInstanceFactory interface. The first argument must be the name
of the Power Copy. The second argument is the name of the document
where this reference is stored.
For example: InstanceFactory.BeginInstanceFactory ("name_of_reference","name_of_document")
-
Instantiation: It is the most important part. It
is broken down into 5 other steps that must be executed in the
following order:
-
Begin of instantiation: Use the BeginInstantiate
method (2) of the
CATIAInstanceFactory interface.
For example: InstanceFactory.BeginInstantiate
|
-
Valuation of inputs: Use the PutInputData method
(3) of the
CATIAInstanceFactory interface.
For example: InstanceFactory.PutInputData "input1",
selected_feature1
|
-
Parameter modification: Retrieve the published
parameter using the GetParameter method
(4) of the
CATIAInstanceFactory interface.
Then, modify its value using the ValuateFromString method
of the CATIAParameter interface.
For example: Set param = InstanceFactory.GetParameter
("published_parameter1")
param.ValuateFromString ("length1")
|
- Instantiation:
Use the Instantiate method (5)
of the CATIAInstanceFactory interface. Nothing
is returned by this method when instantiating a Power Copy.
For example: Set Instance =
InstanceFactory.Instantiate
|
-
End of instantiation: Use the EndInstantiate
method (6) of the
CATIAInstanceFactory interface.
For example: InstanceFactory.EndInstantiate
|
- Conclusion:
Use the EndInstanceFactory method (7)
of the CATIAInstanceFactory interface.
For example: InstanceFactory.EndInstanceFactory
To get an example, see
Instantiating a Power Copy From a VB Macro.
|