Перейти к публикации

Программирование на Ug/open(open++)


SAN

Рекомендованные сообщения

Как реализовать команду Point Set (меню: Insert->Curve->Point Set...) на UG/Open ?

Требуется набор точек для различных вариантов:

Equal Arc Length, Chordal Tolerance.

Ссылка на сообщение
Поделиться на других сайтах


похоже, готовых функций -- аналогов этому меню нет.

но есть необходимые кирпичики:

UF_MODL_ask_point_along_curve

Returns a parameter value for a point along a curve or edge based upon three inputs: a reference point, an offset distance, and a direction flag.

UF_MODL_ask_curve_points

Returns an array of 3D point coordinates (x,y,z) based on an input curve, chordal tolerance, angular tolerance, and step tolerance.

Ссылка на сообщение
Поделиться на других сайтах

Вообще такая функция есть но она дает избыточное число точек

так что лучше переписать

Например для оценки хорды между двумя параметрами может быть использован след фрагмент кода Я как-то писал это для CАМ обработки

Формула приближенная ассимптотическая

static int chord(tag_t curve, double par1, double par2, double *c)

{ int irc;

double p1[3], p2[3], t[3], p_n[3], b_n[3], tor, rad, dx, dy, dz, lc, ll;

irc=UF_CURVE_ask_arc_length(curve, par1, par2, UF_MODL_UNITS_PART, &lc);

irc=UF_MODL_ask_curve_props(curve, par1, p1, t, p_n, b_n, &tor, &rad);

irc=UF_MODL_ask_curve_props(curve, par2, p2, t, p_n, b_n, &tor, &rad);

dx=p1[0]-p2[0]; dy=p1[1]-p2[1]; dz=p1[2]-p2[2];

ll=sqrt(dx*dx+dy*dy+dz*dz);

*c=sqrt(3./8.*lc*fabs(lc-ll));

return 0;

}

Ссылка на сообщение
Поделиться на других сайтах

Спасибо всем за советы !

Использовал для разбиения "Equal Arc Length"

UF_MODL_ask_point_along_curve(...);

UF_CURVE_evaluate_curve(...);

UF_CURVE_create_point(...);

все работает.

Изменено пользователем SAN
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...