Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Измерения с помощью API
 
Есть 2 вопроса.
Первый - технический: как в API использовать функции работы с переменными get, getv, measure, distance и т.д.? В хелпе по API (кстати написан ужасно, практически ничего толком и не написано, или это только в бесплатной 10-ке?) не нашел ничего толкового.
Ну и второй вопросик. Нужно определить находится ли некотороя точка внутри тела или снаружи. При измерении функцией distance получаем кратчайшее расстояние до граней тела, но это ничего не говорит о положении точки внутри тела. Как быть?
 
Начну с начала, хотя правильнее было бы начать с конца…
Что касается get, getv, measure и distance их аналогов я в хелпе тоже не нашел. Скорее всего их там просто нет. Но есть такой вариант: создаете в редакторе переменных необходимые переменные с использованием get, getv, measure или distance, далее при помощи API считываете значения ваших переменных (примеры считывания значений переменных можно посмотреть здесь http://www.tflex-nord.narod.ru/ или здесь http://www.tflex.ru/vhodnaforum/read.php?PAGEN_1=1&FID=1&TID=811#nav_start). При необходимости можно делать пересчет модели через API. Но все это гораздо удобнее делать через модуль Параметры>Оптимизация и без применения API. Что касается самого главного – определения находится ли точка внутри тела или нет, могу предложить следующий очень примитивный способ: сделать каким-либо образом эквидистанту к Вашей поверхности и измерять расстояние от точки (3D узла) до обеих поверхностей. По разности расстояний можно будет судить о положении точки относительно тела.

Мне приходилось определять, при каких значениях переменных одно тело касается другого, или почти касается, но не пересекает. Пришлось извращаться... К сожалению, средств для определения, по какую сторону от объекта А находится объект Б, пересекаются ли объекты, я также не нашел. Сдается мне их в 10-ке нет, а функции востребованные.
Кто ищет - тот всегда найдет!
 
Цитата
Brom25
создаете в редакторе переменных необходимые переменные с использованием get, getv, measure или distance, далее при помощи API считываете значения ваших переменных
A если мне во-перых не нужны эти переменные (мне нужны значения функций get, measure и т.д. внутри макроса), а, во-вторых, создать эти переменные я могу лишь после отработки части макроса, когда создадутся нужные элементы. Как быть?

Цитата
Brom25
Что касается самого главного – определения находится ли точка внутри тела или нет, могу предложить следующий очень примитивный способ:
Спасибо за способ. Хороший вариант, правда весьма извращенный.
С 10-кой по этому поводу более-менее понятно, а в 11-ой версии что-нибудь подобное есть (функции всякого измерения в API)?
 
Я сам не проверял, однако в Помощи по OpenAPI довольно быстро нашёл метод, который, судя по описанию, определяет принадлежность точки телу. Как мне кажется, нужно получить геометрию у выбранного тела, а помом вызвать этот метод, передав в него точку. Она может быть взята с модели (3D узел) или сконструирована по координатам.

Enclosure BaseBody::ContainsPoint(TFlex::Model::Model3D::Geometry::BasePoint3D * point);

Если не получится, я смогу попробовать. Напишите.
 
Цитата
Артём Мессорош пишет:
A если мне во-перых не нужны эти переменные (мне нужны значения функций get, measure и т.д. внутри макроса)

Переменные нужны лишь для того, чтобы считать при помощи API значения этих переменных.

Цитата
Артём Мессорош пишет:
во-вторых, создать эти переменные я могу лишь после отработки части макроса, когда создадутся нужные элементы. Как быть?

В Вашем случае у меня, к сожалению, даже обходных ("извращенных") вариантов нет.
Кто ищет - тот всегда найдет!
 
Цитата
Brom25 пишет:

Артём Мессорош пишет:
во-вторых, создать эти переменные я могу лишь после отработки части макроса, когда создадутся нужные элементы. Как быть?


В Вашем случае у меня, к сожалению, даже обходных ("извращенных") вариантов нет.
Если известны элементы которые нужно измерять, создайте макросом переменные которые измеряют нужное на нужном этапе. А считав значения, удалите переменные перед окончанием работы макроса.
 
Уважаемый Артём.
А какова исходная задача макроса? Зачем Вам необходимо определять, находится ли точка внутри тела? Возможно, есть другой способ решения задачи...
Страницы: 1