Autodesk Inventor API. Первые шаги/Уровень детали
Работа на уровне документа детали
Вектор нормали к плоской грани детали
Информацию о реальной геометрии (топологии) грани предоставляет объект Evaluator, ассоциированный с гранью. Поэтому верный результат может быть получен вызовом следующего метода: Face.Evaluator.GetNormal.
Вектор нормали к поверхности в заданной точке
Требуется вычислить компоненты вектора нормали к поверхности в заданной ее точке. Ниже приводится пример решения подобной задачи
Решение опирается на использование связанного с гранью объекта Evaluator, который предоставляет данные о реальной геометрии поверхности.
Стоит также обратить внимание на технику работы с параметрическим представлением поверхности.
Public Sub GetNormalToSurface_Test()
'Ссылка на активный документ
Dim oDoc As PartDocument
Set oDoc = ThisApplication.ActiveDocument
'Ссылка на грань
Dim oFace As Face
Set oFace = oDoc.ComponentDefinition.Features. _
ExtrudeFeatures.Item(1).StartFaces.Item(1)
'Ссылка на связанный с гранью объект SurfaceEvaluator
Dim oEval As SurfaceEvaluator
Set oEval = oFace.Evaluator
'Создание на грани координатной точки,
'в которой нас интересует нормаль.
'Эта точка будет использована для получения
'соответствующей праметрической точки на грани.
'Префикс ad в имени массива означает "array of double".
Dim adPoints(2) As Double
adPoints(0) = 0
adPoints(1) = 0
adPoints(2) = 0
Dim adGuessParams() As Double
Dim adMaxDeviations() As Double
Dim adParams() As Double
Dim alngSolutionNatures() As SolutionNatureEnum
Call oEval.GetParamAtPoint( _
adPoints, _
adGuessParams, _
adMaxDeviations, _
adParams, _
alngSolutionNatures)
'Получение компонент вектора нормали
'в точке, заданной параметрически.
Dim adNormals() As Double
Call oEval.GetNormal(adParams, adNormals)
Debug.Print "Normal: " & adNormals(0) & ", " & _
adNormals(1) & ", " & _
adNormals(2)
End Sub
Как найти самую верхнюю грань детали?
И заодно: поставить рабочую точку на макушке детали, не делая предположений о форме детали.
Анализ профильного пути экструдированной детали
Определить количество профильных путей и их типы, а также количество и типы сегментов в каждом профильном пути.