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

Принадлежность кривой эскизу


tALEX

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

После длительного изучения документации я понял, что НЕ знаю, :wallbash: как программно определить,является ли выбранная мною кривая элементом эскиза, или она просто так кривая.

И я очень надеюсь, что уважаемые All ткнут пальцем в нужную мне функцию ибо не спасли меня ни

extern int UF_MODL_ask_object_feat (

tag_t object_tag,

tag_t * feature_tag );

ни

extern int UF_OBJ_ask_type_and_subtype (

tag_t object_id,

int * type,

int * subtype );

ни другие, попавшиеся мне на глаза функции.

Надеюсь на помощь

tALEX

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


Тут проблема скорее всего заключается в том, что примитив, например отрезок ( UF_line_type ), который сидит в фичере эскиз ( UF_feature_type ) НЕ принадлежит ему. Этот отрезок "принадлежит" фигулине с типом UF_sketch_type, которая ,НЕ являясь фичером, в свою очередь принадлежит фичеру эскиз. Т.е. получается цепочка типа:

UF_feature_type -> UF_sketch_type -> UF_line_type.

Соответственно, UF_MODL_ask_object_feat (...) в данном случае не проходит для отрезка, так как он НЕ принадлежит ни одному фичеру. Если же спросить фичер у объекта UF_sketch_type то ф-ция сработает как надо (не проверял). Как найти по UF_line_type соостветствующий UF_sketch_type я не нашел ( скорее всего - никак ). Таким образом остается старый рабоче-крестьянский способ - перебор :bleh:

Алгоритм:

1. У выбранной кривой спросили прототип ( если работаем в контексте сборки ) родительскую часть через UF_ASSEM_ask_prototype_of_occ

2. У этого прототипа спросили родительскую часть UF_OBJ_ask_owning_part

3. Зарядили цикл по фичерам в этой родительской части при помощи UF_OBJ_cycle_objs_in_part ( prototype_part_tag, UF_feature_type, & feat )

4. при нахождении фичера, спрашиваем у него кто он такой: UF_MODL_ask_feat_type

5. Если он не SKETCH - продолжаем.

6. Если скетч, то спрашиваем из чего он состоит: UF_MODL_ask_feat_object. Как ни странно, но эта ф-ция честно выдает наши кривые, в отличии от UF_MODL_ask_object_feat :bleh:

7. В тагах, полученный в п 6 ищем наш исходный прототип, полученный в п 1.

Regardzzz ...

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

2 niki

Итак, рабоче-крестьянский перебор сработал, и кривые эскизов уже идентифицируются и все по алгоритму...

Сейчас с трепетом приступаю к новому отлову объектов.

А именно.

Как определить, является ли выбранная кривая ассоциативной (или элементом ассоциативной кривой) ?

Если опять полным перебором, придется стреляться ...

Пока же продолжаю пробовать всякие

UF_MODL_ask_feat_object и наоборот

2 all

Напишу, выложу, будет всем подарок :rolleyes:

tALEX

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

Как определить, является ли выбранная кривая ассоциативной (или элементом ассоциативной кривой) ?

- это что значит?

PS Для полученных тагов не забывай спрашивать статус через UF_OBJ_ask_status. Если с этим объектом дальше работаешь, то он НЕ должен быть ни UF_OBJ_DELETED ни UF_OBJ_TEMPORARY ни UF_OBJ_CONDEMNED а то UG может с катушек слететь :wink:

Regardzzz ...

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

2 niki

Как определить, является ли выбранная кривая ассоциативной (или элементом ассоциативной кривой) ?

- это что значит?

Ну , если построенная кривая еще и feature, вот тогда она ассоциативная.

Helics

Offset

Bridge

Intersect

итд

Результат выполнения этих операций это она и есть.

Задача эта оказалась вполне разрешимой

Пусть object - примитив (например UF_line_type )

UF_MODL_ask_object_feat (object , &feature_tag );

если feature_tag равен NULL то точно не ассоциативная

если feature_tag не NULL

то определяем тип

UF_MODL_ask_feat_type (feature_tag,&feature_type );

Если тип SWP104 или SKIN,(а я не знаю что за тип такой)

то object родитель для EXTRUDE или для чего то еще ...

и не ассоциативный

Если тип какой то другой(пусть OFFSET_CURVE) то етот тип возвращается и для родительских кривых OFFSET_CURVE и для результата OFFSET_CURVE.

Но

UF_MODL_ask_feat_object(feature_tag,&n_eids,&eids );

возвращают теги результ кривых OFFSET_CURVE

Если среди них есть наш object , то кривая ассоциативная

А это то, что надо :clap_1:

Уф...

Пошел искать новые недокументированные feature

tALEX

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

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

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

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

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

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

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

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

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

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

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




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