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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 3 4 След.
Автоматический расчет массы, Рассчитать массу тела
 
Помогите плз. Вот плавно перехожу с изучения DOCs2010 на CAD 11 по служебной необходимости. Вопрос следующий: Как получить автоматический расчет массы построенной детали. Т.е. есть переменная $mass, надо задать выражение, по которому вычислялась бы масса тела со всеми выпуклостями и впуклостями. Пусть плотность будет $p.
Облазил весь справочник, в форуме пролазил больше часа. Кто-нибудь уже ведь это рассчитывал.
Изменено: Александр Фадеев - 12.07.2011 19:21:13
Вижу...
 
Александр, надеюсь эта информация вам поможет.
Вот файл, в котором я попытался реализовать вашу задачу:
Авто-расчёт массы.grb. Файл создан в сборке T-Flex 10.0.57.
Также можно почитать в справке - наберите в Указателе "функции", enter - выпадет окошко. В окошке есть пункт "Функции setv() и getv()". В этой статье описаны способы получения различных глобальных переменных, которые отражают некоторые настройки из команды "ST:Статус". В том числе там можно получить следующие значения (цитирую):
"...
Для трёхмерных моделей предусмотены следующие глобальные параметры:

getv("mass",0) - значение массы всех тел в сцене;

getv("volume",0) - значение объёма всех тел в сцене;

getv("area",0) - значение площади поверхности всех тел в сцене;
..."
 
добавлю ещё. для большей наглядности у себя я сделал вот что:
- в прототипе файла создал переменную "масса": getv("mass",0)<1?round(getv("mass",0),0.01):(getv("mass",0)<10?round(getv("mass",0),0.1):round(getv("mass",0),1)) (это с округлениями)
- а потом связал её с ячейкой форматки "масса".
- и пересохранил прототип. (для удобства можно сделать переменную скрытой)
и теперь при построении 3д модели тут же отображается масса конструкции в документации.
 
Всем спасибо. Николай и Алексей очень помогли.
Вижу...
 
Цитата
alexey987 пишет:

а потом связал её с ячейкой форматки "масса".

А зачем? Ведь уже предусмотрена скрытая переменная "$Масса", которая связана с форматкой!!! В нее и стоит подставлять выражение. К тому же эта переменная уже "подставлена" в данные для спецификации.
 
А ткнуть ПКМ в тело и выбрать команду "Измерить" не то?!
Там же можно назначить переменную на требуемую измеряемую величину 3D объекта.

Ну а для связи с форматкой действительно возможно применение функции ftoa(get("Тело_0","mass")) в предзаложенной в прототипе переменной $Maссa, попадающей в форматку. Только не забудьте, что в свойствах материала измеряемого 3D объекта должна стоять правильная плотность.
Само выражение ftoa(get("Тело_0","mass")) означает "Преобразовать число в текст" ...(это ftoa(), т.к. считываемое с тела значение массы - число, а переменная для форматки - текст)..."для значения массы Тела_0 текущей 3D модели".

аналогично можно получить почти любую характеристику почти любого объекта модели или чертежа и произвести с ними любые математические или логические операции в редактире переменных.

ТщательнЕЕ изучаем справку! ;)
Изменено: IKir - 09.08.2011 16:27:37
 
в прототипе файла создал переменную "масса": getv("mass",0)<1?round(getv("mass",0),0.01):(getv("mass",0)<10?round(getv("mass",0),0.1):round(getv("mass",0),1)) (это с округлениями) [QUOTE]
Попробовал сделать как написано выше, массу считает, но почему-то не всегда(причина не понятна). А вот чудеса происходят с теми объектами к которым прикрепляется эта переменная - при удалении детали из сборки(операции из модели) - удаляется вместе с тем объектом к которому привязана эта переменная.
Кто-то сталкивался с подобной проблемой? Сборка 10.0.59
 
Цитата
Александр пишет:
при удалении детали из сборки(операции из модели) - удаляется вместе с тем
объектом к которому привязана эта переменная.
Если объект удаляется, то связанная с ним переменная как по-вашему должна существовать?
 
Цитата
Александр пишет:
в прототипе файла создал переменную "масса": getv("mass",0)<1?round(getv("mass",0),0.01):(getv("mass",0)<10?round(getv("mass",0),0.1):round(getv("mass",0),1)) (это с округлениями)
Цитата

Попробовал сделать как написано выше, массу считает, но почему-то не всегда(причина не понятна). А вот чудеса происходят с теми объектами к которым прикрепляется эта переменная - при удалении детали из сборки(операции из модели) - удаляется вместе с тем объектом к которому привязана эта переменная.
Кто-то сталкивался с подобной проблемой? Сборка 10.0.59
Тоже не понял проблему. Вроде все логично происходит. Опишите плз подробнее шаг за шагом.
Вижу...
 
По порядку происходит следующее, в новом файле:
1 Захожу в переменные, открываю скрытые, изменяю выражение переменной $Масса на: getv("mass",0)<1?round(getv("mass",0),0.01):(getv("mass",0)<10?round(getv("mass",0),0.1):round(getv("mass",0),1)). Устанавливаю связь с переменной в графе основной надписи "Масса".
2 Создаю деталь, используя несколько 3D операций (или создаю новую сборку).
3 Удаляю 3D операцию или деталь из сборки. И вот тут происходят чудеса: вместе с операцией(деталью в сборке) удаляется основная надпись, переменная $Масса.
А теперь вопрос: почему это происходит? И как лечится?
Пробовал: создавать новую переменную, привязывать эту переменную к форматке(на итоге в графе "Масса" всегда "0"), просто создавал надпись и привязывал переменную к ней(удаляется надпись)
Причем в 11 и 12 версиях все работает....помогите плз...
Изменено: Александр - 02.08.2012 09:15:05
 
Уточнения:1. Захожу в переменные чего? Детали? Сборки?
2. Создаю деталь - как эта деталь связана с нашей первой деталью (она входит в нее, или в нее входит вышеуказанная деталь)?
3. Удаляем элементы опять же откуда: из первой (где вы настроили переменную), или из второй (которая, судя по вашим словам, может быть как деталь, так и сборкой)?
Вижу...
 
Я описал проблему, которая существует и в детали, и в сборке.
А есть разница переменные это детали или сборки? Я же привязываю ее к надписи на 2D окне. Давайте еще раз без сборок, просто про деталь:
1 Захожу в переменные, открываю скрытые, изменяю выражение переменной $Масса на: getv("mass",0)<1?round(getv("mass",0),0.01):(getv("mass",0)<10?round(getv("mass",0),0.1):round(getv("mass",0),1)). Устанавливаю связь с переменной в графе основной надписи "Масса".
2 В этом же файле создаю деталь, используя несколько 3D операций.
3 Удаляю 3D операцию, которую создал в пункте 2 из этого файла(в котором создана и привязана наша преславутая переменная). И вот тут происходят чудеса: вместе с операцией удаляется основная надпись, переменная $Масса.
Изменено: Александр - 02.08.2012 09:40:01
 
Вот наглядное изображение того что происходит...
Масса.JPG (219.63 КБ)
 
А если на момент удаления операции выражение массы делать пустым (""), то проблема исчезает?
Изменено: Александр Фадеев - 02.08.2012 10:19:48
Вижу...
 
Если сделать "", то проблема исчезает.
 
Тогда это явно баг, до которого никому не было дело. Обращайтесь с подробным описанием проблемы в Support@TopSystems.ru для его исправления. Через форум достучаться нереально, т.к. он создан исключительно с целью взаимодействия пользователей T-Flex, чем мы с вами и занимались. Сотрудники тех. поддержки сюда не заходят и не принимают заявки на исправление.
Как временную меру - можно использовать временное изменение значения Массы на пустое.

Это мое личное мнение, я не сотрудник ТопСистем, имею опыт работы только с CAD 11, 12 и опыт взаимодействия с тех.поддержкой ТопСистем.
Вижу...
 
Цитата
Александр Фадеев пишет:
Сотрудники тех. поддержки сюда не заходят
Струдники сюда заходят. Но в техподдержку все равно сообщать надо.
 
Цитата
B_S_V пишет:
Цитата
Александр Фадеев пишет:
Сотрудники тех. поддержки сюда не заходят
Струдники сюда заходят. Но в техподдержку все равно сообщать надо.
Со своей неточностью согласен...

Но надеяться на решение подобных проблем здесь - не стоит. Суть выражения была в этом.
Вижу...
 
Всем спасибо, буду, как и раньше вписывать массы вручную. Просто хочется, чтобы в проге за 100 руб работали элементарные вещи.... :applanse: :) :) :)
 
А ответ тех поддержки прост до безумия - покупайте новую версию, там все работает ))))
Страницы: 1 2 3 4 След.