Пакетное изменение свойств моделей

Автор kisilmike, 09.02.17, 14:15:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kisilmike

Добрый день.
Необходимо изменить у существующих 3D моделей step(или m3d) изменить/добавить свойство, например обозначение другое написать, наименование и добавить новое свойство.
Есть модуль Компас-макро, но почему-то эти параметры макросом не записываются... или их можно добавить отредактировав макрос?
На форумах видел несколько раз мнение, что такие вещи делаются через API компаса.

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


kisilmike

Спасибо за ссылку, получилось изменить обозначение и наименование с помщью этих строк:

iPart.marking = "666666"
iPart.name = "7777777"
iPart.Update()

А можно ли добавить еще одно свойство? Мне нужно добавить свойство "раздел спецификации" и в значение указать "стандартные изделия". Нигде не могу найти как это сделать? Буду очень благодарен если подскажите.

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

Есть свойство iPart.Standard - признак стандартного компонента.

Slaviation

Если используется КОМПАС-3D V16 и задача заключается именно в пакетном изменении свойств моделей (а не в написании кода для пакетного изменения свойств моделей), то посмотрите плагин к тоталу
http://support.ascon.ru/download/freeware_users/items/?dl_id=702
Он позволяет для группы выделенных файлов КОМПАС-3D менять свойства.

kisilmike

Вячеслав, спасибо за ответ!
К сожалению, с помощью плагина не получается изменить самый главный параметр "раздел спецификации" - в колонке это свойство отображается, а в меню "изменить атрибуты" это свойство отсутствует  :(((
Приложил скриншот.

Еще небольшое пожелание по плагину:
Если свойства менять пакетно, было бы неплохо вставлять не одно статическое значение свойства для всех файлов, а, например, брать значение для свойства из имени самого файла(как мне кажется это удобнее всего). Т.е. в имя файла прописывается нужное значение свойства через разделитель (имя_файла#значение свойства.m3d) - здесь # - разделитель, после которого начинается значение свойства.

Slaviation

Цитироватьпрописывается нужное значение свойства через разделитель (имя_файла#значение свойства.m3d)
Посмотрите на скриншот: там, после поля для ввода значения свойства есть кнопка с плюсиком. Это не то что нужно?

kisilmike

Да, там есть это свойство, но оно вставляется как значение свойства, которое я могу выбрать в этом списке. Получится, например, так: "обозначение" = [=kompas3d.Раздел спецификации]. Дело в том, что "Раздел спецификации" - это и есть само свойство, и мне нужно поменять его значение.

Slaviation

Да я не про раздел спецификации, а про пожелание:
ЦитироватьЕсли свойства менять пакетно, было бы неплохо вставлять не одно статическое значение свойства для всех файлов, а, например, брать значение для свойства из имени самого файла(как мне кажется это удобнее всего). Т.е. в имя файла прописывается нужное значение свойства через разделитель (имя_файла#значение свойства.m3d) - здесь # - разделитель, после которого начинается значение свойства.
Вот именно это вроде как можно и сделать:
Нажать плюсик, выбрать свойство [=tc.Имя]
Добавить _ (или #)
Нажать плюсик, выбрать свойство [=kompas3d.Обозначение]
В итоге, в поле ввода получим
[=tc.Имя]_[=kompas3d.Обозначение]
И применив это пакетно, получим рис.
А на счет свойства "Раздел спецификации" нужно разбираться.
Наверное его нет в меню "изменить атрибуты" потому, что его в самом КОМПАС можно выбирать только из предлагаемого  и предопределенного списка, а не ввести любое значение.

Slaviation

Попробуйте вариант из вложения.
В нем атрибут "Раздел спецификации" должен быть доступен для изменения.
+ Благодарностей: 1

kisilmike

Вы правы, видимо там прописывается какая-то связь или нужно писать в значение свойства "Раздел спецификации" не "Стандартные изделия"(строка), а идентификатор стандартных изделий. Пробовал прописывать и строкой и идентификатор 20.000000(не знаю он ли), но на саму модель это никак не влияет: свойство не добавляется и не изменяется, у самого файла в колонке свойство меняется.

kisilmike

Вячеслав, есть один момент в использовании Вашего скрипта: свойства прописываются без проблем и если потом открыть файл в компасе - эти свойства все отображаются. Но я тут использую макрос для объединения деталей в сборку и там получается что после объединения если открыть сборку - все эти свойства оказываются пустыми. При этом если заранее открыть все эти детали в компасе и пересохранить(ничего не изменяя) - проблема отсутствует. В итоге чтобы объединить детали в сборку я теперь использую с начала total commander(чтобы прописать свойства), затем макросом пробегаюсь по деталям и пересохраняю их, чтобы эти свойства применились и потом объединяю.
Такое подозрение, что компас в файлах хранит какую-то кэш-страницу, где остаются старые данные и при пересохранении он обновляет этот кэш.
Это просто заметка, свою проблему я решил пересохранением - спасибо за плагин к тотал коммандеру!
+ Благодарностей: 1