Tenho uma macro que pode criar 4 pontos. O comprimento de cada ponto está vinculado a um parâmetro já definido. Mas, apenas para criar o ponto pela primeira vez, gostaria de ter um link completo. Por exemplo, se o parâmetro tiver alguma atualização de valor, o comprimento de cada ponto deve ser atualizado de acordo. Obrigado.
mais detalhes: se eu clicar duas vezes no ponto criado por meio deste código, preciso ver Comprimento = valor = CATIA_V5R22_VENT-HOLES-DEFINITION-BACKREST_V01\HOLES_PARAMETERS\HOLE_RADIUS
não assim Comprimento = valor
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