• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

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

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как в КОМПАС v16 преобразовать сборку в единое тело?

Автор Akew, 24.04.17, 22:15:50

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

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

Akew

Здравствуйте!

В КОМПАС-3D v16 в функции сохранения сборки как детали в ручном режиме ("Сохранить с параметрами") можно указать опции, позволяющие провести дополнительные преобразования модели (удалить историю построения, преобразовать компоненты в тела-заготовки или в одно тело, и т.д.).
Вопрос: можно ли управлять этими опциями посредством API?

Спасибо.


Akew

Цитата: Sabahs от 25.04.17, 07:49:12
IKompasDocument3D.DeleteHistory
К сожалению, это не совсем то: данный метод появился задолго до выхода КОМПАС-3D 16-й версии (в 13-й, если не ошибаюсь). Во всяком случае, "на корню" мой основной вопрос он не решил.
Мне нужно, чтобы я мог в программе задать параметры, как это делается вручную, расставляя галочки и радиокнопки параметров в диалоге "Сохранить как деталь с параметрами".

Расставить галки можно через WinApi, я так делал здесь http://forum.ascon.ru/index.php/topic,16941.msg226606.html#msg226606 , а здесь http://forum.ascon.ru/index.php/topic,27686.msg207534.html#msg207534 вообще пришлось писать отдельное приложение за контролем станком, через его штатное приложение.

kisilmike

Sabahs, правильно ли я понимаю, чтобы сборку преобразовать в единое тело, нужно удалить историю построения через deleteHistory?

У меня возникла проблема:
После преобразования все элементы объединяются в одно тело, и если удалить потом все элементы сборки и оставить только сам файл сборки (.a3d) при открытии все ок, а при закрытии компас спрашивает куда они делись. Видимо сборка каким-то образом ссылается на эти файлы. Как удалить эту привязку?

У меня сборка с внешними файлами, т.е. сборка.a3d + файлы сборки в этой же папке (part1.m3d, part2.m3d, part3.m3d).
Выполняю такой код:

iDocument3D = iKompasObject.Document3D()
item = "c:\CONVERT-FROM\sborka.a3d"
iDocument3D.Open(item, True)
iDocument = iApplication.ActiveDocument

iKompasDocument3D = KAPI7.IKompasDocument3D(iDocument)

iKompasDocument3D.DeleteHistory()

#iKompasObject.ksMessage(item)
#iDocument3D.SaveAsEx( GetDirToSave( item, dir_new ), 0 )
#iDocument3D.close()


Так и должно быть? Что можно сделать?

Попробуйте после iKompasDocument3D.DeleteHistory, перестроить документ iKompasDocument3D.RebuildDocument и сохранить, если Вам нужна сборка без истории, но под новым именем, то сначала, сохраните сборку под новым именем, а затем разрушаете и сохраняете.
+ Благодарностей: 1

kisilmike

Вау, спасибо за помощь! Вроде все работает!

На всякий случай выкладываю код скрипта, вдруг кому пригодится. А то у вас тут на форуме очень мало материала
(Скрипт проходится по файлам C:\FROM\(...).a3d, пересохраняет их в папку C:\TO\, затем удаляет историю построения превращая сборку в единую деталь в формате .m3d) ТЕГИ: a3d to m3d, a3d в m3d
+ Благодарностей: 3

ТрындецЪ

Спасибо за файл! Тоже считаю, что нужно больше рабочих примеров выкладывать.
Добавил в Ваш код окна для выбора исходной папки и папки для сохранения, чтобы не вписывать эти пути в код перед каждым новым запуском. 
+ Благодарностей: 2