Dim assDoc As AssemblyDocument = InvApp.ActiveDocument
Dim assDocDef As AssemblyComponentDefinition = assDoc.ComponentDefinition
Dim oFace As FaceProxy = InvApp.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "Выберите плоскость для нанесения разметки")
Dim oPartOcc As ComponentOccurrence = oFace.ContainingOccurrence
Dim oPartCompDef As PartComponentDefinition = oPartOcc.Definition
For Each wPoint As WorkPoint In assDocDef.WorkPoints
If InStr(wPoint.Name, "Точка разметки") > 0 Then
Dim vecPoint As Vector = InvApp.TransientGeometry.CreateVector(wPoint.Point.X, wPoint.Point.Y, wPoint.Point.Z)
Dim vecRel As Vector = InvApp.TransientGeometry.CreateVector(oPartOcc.Transformation.Translation.X, oPartOcc.Transformation.Translation.Y, oPartOcc.Transformation.Translation.Z)
Dim vecSub As Vector = InvApp.TransientGeometry.CreateVector(vecPoint.X - vecRel.X, vecPoint.Y - vecRel.Y, vecPoint.Z - vecRel.Z)
Dim partPoint As Inventor.Point = InvApp.TransientGeometry.CreatePoint
partPoint.TranslateBy(vecSub)
oPartCompDef.WorkPoints.AddFixed(partPoint)
End If
Next