Помогите плз. Вот плавно перехожу с изучения DOCs2010 на CAD 11 по служебной необходимости. Вопрос следующий: Как получить автоматический расчет массы построенной детали. Т.е. есть переменная $mass, надо задать выражение, по которому вычислялась бы масса тела со всеми выпуклостями и впуклостями. Пусть плотность будет $p. Облазил весь справочник, в форуме пролазил больше часа. Кто-нибудь уже ведь это рассчитывал.
Александр, надеюсь эта информация вам поможет. Вот файл, в котором я попытался реализовать вашу задачу: Авто-расчёт массы.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д модели тут же отображается масса конструкции в документации.
А зачем? Ведь уже предусмотрена скрытая переменная "$Масса", которая связана с форматкой!!! В нее и стоит подставлять выражение. К тому же эта переменная уже "подставлена" в данные для спецификации.
А ткнуть ПКМ в тело и выбрать команду "Измерить" не то?! Там же можно назначить переменную на требуемую измеряемую величину 3D объекта.
Ну а для связи с форматкой действительно возможно применение функции ftoa(get("Тело_0","mass")) в предзаложенной в прототипе переменной $Maссa, попадающей в форматку. Только не забудьте, что в свойствах материала измеряемого 3D объекта должна стоять правильная плотность. Само выражение ftoa(get("Тело_0","mass")) означает "Преобразовать число в текст" ...(это ftoa(), т.к. считываемое с тела значение массы - число, а переменная для форматки - текст)..."для значения массы Тела_0 текущей 3D модели".
аналогично можно получить почти любую характеристику почти любого объекта модели или чертежа и произвести с ними любые математические или логические операции в редактире переменных.
в прототипе файла создал переменную "масса": 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 версиях все работает....помогите плз...
Уточнения: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 из этого файла(в котором создана и привязана наша преславутая переменная). И вот тут происходят чудеса: вместе с операцией удаляется основная надпись, переменная $Масса.
Тогда это явно баг, до которого никому не было дело. Обращайтесь с подробным описанием проблемы в Support@TopSystems.ru для его исправления. Через форум достучаться нереально, т.к. он создан исключительно с целью взаимодействия пользователей T-Flex, чем мы с вами и занимались. Сотрудники тех. поддержки сюда не заходят и не принимают заявки на исправление. Как временную меру - можно использовать временное изменение значения Массы на пустое.
Это мое личное мнение, я не сотрудник ТопСистем, имею опыт работы только с CAD 11, 12 и опыт взаимодействия с тех.поддержкой ТопСистем.