Точка на кривой

Автор Lemieux, Вчера в 14:00:17

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

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

Lemieux

Есть команда "Точка на кривой". Во время диалога, если щёлкнуть по кривой, то добавляется новая вершина в месте где курсор. Как это реализовать с помощью API? Куда копать?

lavgirb

Цитата: Lemieux от Вчера в 14:00:17Есть команда "Точка на кривой". Во время диалога, если щёлкнуть по кривой, то добавляется новая вершина в месте где курсор. Как это реализовать с помощью API? Куда копать?
"Точка на кривой" создает ограничение, при котором выбранная точка размещается на выбранной кривой или ее продолжении.
Может, в V23 что-то поменялось...

Lemieux

Цитата: lavgirb от Вчера в 14:53:04"Точка на кривой" создает ограничение, при котором выбранная точка размещается на выбранной кривой или ее продолжении.
Может, в V23 что-то поменялось...
Вы попробуйте сделать то, что я написал и сразу поймёте, что я имел ввиду. В 21 КОМПАС такое же поведение было.

Slaviation

Добрый день.
Пример ао вложении. Запускать на активной детали.
+ Благодарностей: 1

Lemieux

Цитата: Slaviation от Вчера в 15:04:27Добрый день.
Пример ао вложении. Запускать на активной детали.
Спасибо. Меня интересует как вот это высчитывается

Цитироватьpoint_3d_param_curve.Offset = 49.9694234

UU

Цитата: Lemieux от Вчера в 15:26:46Спасибо. Меня интересует как вот это высчитывается
В чём проблема?
GetPoint.

Lemieux

Цитата: UU от Сегодня в 08:10:13В чём проблема?
GetPoint.
Распишите, пожалуйста, поподробней. А то у меня так просто не получилось.

Мне пришлось подписаться на эвент DocumentFrameNotify
Там ловить нажатие мышки
Конвертировать координаты с помощью методов GetPickRay, ConvertCoordinates
Получать кривую с помощью метода PickModelObjects
Строить эквидистанту
С помощью метода PickModelObjects получать IEdge
У IEdge получать IMathCurve3D
С помощью метода NearPointProjection получать параметр T
С помощью метода GetMetricLength конвертировать его в длину

UU


Lemieux

Попозже будет ещё крутой вопрос. По поводу смены опорных точек в "Точка смещение" между объектами.