Получение вершин эквидистанты

Автор Lemieux, 17.10.24, 13:28:02

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Lemieux

Всех приветствую.
Интересует момент как получить вершины эквидистанты?

Lemieux


UU

Цитата: Lemieux от 17.10.24, 16:27:11Короче никто не знает  :)
Эквидистанты чего?
2D?
3D?
Вопросы, нормально задавать научитесь.

Валерий Изранов

Материал из Википедии — свободной энциклопедии
"Эквидистанта (лат. aequidistans — равноудалённый) для данной плоской кривой L — это множество концов равных отрезков,
отложенных в определённом направлении на нормалях к L."

Википедия считает, что кривая плоская. У Компаса это 2D
Но Википедия ничего не знает про вершины и тем более как их получить.

UU

Цитата: Валерий Изранов от 17.10.24, 19:28:16Материал из Википедии — свободной энциклопедии
"Эквидистанта (лат. aequidistans — равноудалённый) для данной плоской кривой L — это множество концов равных отрезков,
отложенных в определённом направлении на нормалях к L."

Википедия считает, что кривая плоская. У Компаса это 2D
Но Википедия ничего не знает про вершины и тем более как их получить.
Покажу в картинках.
Э1.png
Э2.png

Валерий Изранов

В Википедии нет упоминаний о Компасе.
Может быть Компас не прав.

Lemieux

Опять набежали клоуны и завели демагогию.  :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 координаты. Две в плоскости и одна "вверх"

Я не знаю что есть "вершины эквидистанты".

UU

У эквидистанты есть массив ребер, у каждого ребра есть вершины IVertex, начала и конца, далее GetPoint - получить координаты вершины.

Михаил88

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())


+ Благодарностей: 1

Валерий Изранов

Немного не так.
Если верить Википедии, то изначально есть кривая.
У этой кривой может быть массив ребер одинаковой длины и перпендикулярных кривой.
Через вторые концы этих ребер и проходит эквидистанта.

Lemieux

Цитата: UU от 17.10.24, 21:36:59У эквидистанты есть массив ребер, у каждого ребра есть вершины IVertex, начала и конца, далее GetPoint - получить координаты вершины.
Мне как раз нужны были вершины.