我有一个可以创建 4 个点的宏,每个点的长度都链接到一个已设置的参数。但这只是第一次创建点。我希望有一个完整的链接,例如,如果参数值有任何更新,每个点的长度应该会相应更新。谢谢
更多细节:如果我双击通过此代码创建的点,我需要看到长度 = 值 = CATIA_V5R22_VENT-HOLES-DEFINITION-BACKREST_V01\HOLES_PARAMETERS\HOLE_RADIUS
不是这样的长度=值
Private Function GetParameterValue(part As Object, categoryName As String, parameterName As String) As Double
Dim parameters As Object
Dim parameter As Object
Set parameters = part.parameters
On Error Resume Next
Set parameter = parameters.Item(categoryName & "\" & parameterName)
If Not parameter Is Nothing Then
GetParameterValue = parameter.value
Else
GetParameterValue = 0 ' Default value if the parameter doesn't exist
End If
On Error GoTo 0
End Function
Sub points(hybridBody As Object)
Dim partDocument As Object
Set partDocument = CATIA.Documents.Item("CATIA_V5R22_VENT-HOLES-DEFINITION-BACKREST_V01.CATPart")
Dim part1 As Object
Set part1 = partDocument.part
' Retrieve the value of the hole radius
Dim holeRadius As Double
holeRadius = GetParameterValue(part1, "HOLES_PARAMETERS", "HOLE_RADIUS")
Dim hybridShapes1 As Object
Set hybridShapes1 = hybridBody.hybridShapes
Dim hybridShapeLinePtDir1 As Object
Set hybridShapeLinePtDir1 = hybridShapes1.Item("Horiz. Axis")
Dim reference1 As Object
Set reference1 = part1.CreateReferenceFromObject(hybridShapeLinePtDir1)
Dim hybridShapeIntersection1 As Object
Set hybridShapeIntersection1 = hybridShapes1.Item("Inter. Right")
Dim reference2 As Object
Set reference2 = part1.CreateReferenceFromObject(hybridShapeIntersection1)
Dim hybridShapeFactory1 As Object
Set hybridShapeFactory1 = part1.hybridShapeFactory
Dim hybridShapePointOnCurve1 As Object
Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveWithReferenceFromDistance(reference1, reference2, holeRadius, True)
hybridShapePointOnCurve1.distanceType = 1
hybridShapePointOnCurve1.Name = "Point.1"
hybridBody.AppendHybridShape hybridShapePointOnCurve1
part1.InWorkObject = hybridShapePointOnCurve1
part1.Update
part1.Update
End Sub