Всех приветствую.
Интересует момент как получить вершины эквидистанты?
Короче никто не знает :)
Цитата: Lemieux от 17.10.24, 16:27:11Короче никто не знает :)
Эквидистанты чего?
2D?
3D?
Вопросы, нормально задавать научитесь.
Материал из Википедии — свободной энциклопедии
"Эквидистанта (лат. aequidistans — равноудалённый) для данной плоской кривой L — это множество концов равных отрезков,
отложенных в определённом направлении на нормалях к L."
Википедия считает, что кривая плоская. У Компаса это 2D
Но Википедия ничего не знает про вершины и тем более как их получить.
Цитата: Валерий Изранов от 17.10.24, 19:28:16Материал из Википедии — свободной энциклопедии
"Эквидистанта (лат. aequidistans — равноудалённый) для данной плоской кривой L — это множество концов равных отрезков,
отложенных в определённом направлении на нормалях к L."
Википедия считает, что кривая плоская. У Компаса это 2D
Но Википедия ничего не знает про вершины и тем более как их получить.
Покажу в картинках.
Э1.png
Э2.png
В Википедии нет упоминаний о Компасе.
Может быть Компас не прав.
Опять набежали клоуны и завели демагогию. :beer:
Цитата: Валерий Изранов от 17.10.24, 19:28:16Википедия считает, что кривая плоская. У Компаса это 2D
Кривая может быть плоской и в 3D.
Цитата: Валерий Изранов от 17.10.24, 19:28:16Но Википедия ничего не знает про вершины и тем более как их получить.
А как Вы собрались задавать отрезок в пространстве?
Цитата: UU от 17.10.24, 18:39:50Вопросы, нормально задавать научитесь.
Вопрос нормальный, если бы знали, то переспросили.
Нормального способа я не нашёл, только через одно место.
1. Получаем эквидистанту.
2. Через свойство Owner получаем IFeature7.
3. У Feature7, через свойство ModelObjects[Unknown](Почему-то ModelObjects[vertex] или ModelObjects[Edge] возвращают null ), получаем массив. В данном массиве первый элемент это ребро, второй начальная точка, третий конечная точка.
Цитата: Lemieux от 17.10.24, 20:14:05Кривая может быть плоской и в 3D
3D по определению 3 координаты. Две в плоскости и одна "вверх"
Я не знаю что есть "вершины эквидистанты".
У эквидистанты есть массив ребер, у каждого ребра есть вершины IVertex, начала и конца, далее GetPoint - получить координаты вершины.
surface_container = kompas_api7_module.ISurfaceContainer(part7)
equidistant_surfaces = surface_container.EquidistantSurfaces
equidistant_surface = equidistant_surfaces.EquidistantSurface(0)
feature = equidistant_surface.Owner
print(feature.Name)
vertices = feature.ModelObjects(kompas6_constants_3d.o3d_vertex)
for vertex in vertices:
print(vertex.GetPoint())
Немного не так.
Если верить Википедии, то изначально есть кривая.
У этой кривой может быть массив ребер одинаковой длины и перпендикулярных кривой.
Через вторые концы этих ребер и проходит эквидистанта.
Цитата: UU от 17.10.24, 21:36:59У эквидистанты есть массив ребер, у каждого ребра есть вершины IVertex, начала и конца, далее GetPoint - получить координаты вершины.
Мне как раз нужны были вершины.