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
Как найти самую верхнюю грань детали?
[править]И заодно: поставить рабочую точку на макушке детали, не делая предположений о форме детали.
Анализ профильного пути экструдированной детали
[править]Определить количество профильных путей и их типы, а также количество и типы сегментов в каждом профильном пути.