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

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

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

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

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

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

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

Макрос - Сохранить как PDF.

Автор N1Tron1X, 05.09.19, 09:59:10

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

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

la_Mypka

Цитата: Slaviation от 11.08.24, 19:58:37Добрый день.
Попробуйте из под админа зарегистрировать командой regsvr32 файл pdf2d.dll. Он лежит в папке Bin КОМПАС'а.
запустила от админа regsvr32 "C:\Program Files\ASCON\KOMPAS-3D v21\Bin\Pdf2d.dll"
вылезло следующее окно:
2024-08-15_07-25-54.png

la_Mypka

#61
Цитата: Teywl Wind от 12.08.24, 08:15:08а если запускать программу в самом PyScripter, в ПДФ сохраняет?
Не знаю, как это сделать. Я далека от программирования, максимум могу сделать по инструкции.
...
Разобралась, как запустить. При запуске макроса, записанного мной (сохраняла чертеж как pdf), ошибок не выдает, но и файл не сохраняет. Или мне неизвестно место сохранения; чертеж я сохраняла как pdf в той же папке, уже имеющийся файл pdf не обновляется.
...
Макрос выглядит следующим образом:
2024-08-15_07-58-32.png

Slaviation

Добрый день.
Не вижу на скрине кода создания pdf. Может он дальше есть?
Попробуйте прилагаемый макрос. При необходимости замените имя pdf файла в строке 51 на требуемое.
+ Благодарностей: 1

Петрович-47

Цитата: Slaviation от 15.08.24, 08:11:44...Не вижу на скрине кода создания pdf...
Это нормальное явление для макрорекордера, я много раз пытался "сохранить как", но всегда получал только инициализацию а самого действа ни разу не было...
Отстой...
+ Благодарностей: 1

la_Mypka

Цитата: Slaviation от 15.08.24, 08:11:44Добрый день.
Не вижу на скрине кода создания pdf. Может он дальше есть?
Попробуйте прилагаемый макрос. При необходимости замените имя pdf файла в строке 51 на требуемое.
На скрине весь код, то, что Компас написал.
С помощью Вашего test получается следующая штука:
2024-08-15_17-51-44.png
Появился еще вопрос: если/когда макрос заработает, так и придется каждый раз вручную указывать имя файла. Это занимает столько времени, что вся затея оказывается нерентабельной. Хотела по кнопке сохранять текущий чертеж в то же место как pdf.

Slaviation

#65
Во второй строке выше от красной поменяйте компас с 23 на ваш.
Последнюю строку поменяйте на
converter.Convert(kompas_document.PathName + ".pdf", 0, False)
+ Благодарностей: 1

la_Mypka

Цитата: Slaviation от 15.08.24, 19:08:07Во второй строке выше от красной поменяйте компас с 23 на ваш.
Последнюю строку поменяйте на
converter.Convert(kompas_document.PathName + ".pdf", 0, False)

поменяла:
2024-08-16_06-46-21.png

после нажатия на ОК:
2024-08-16_06-47-14.png

UU

PathName - Полное имя документа.
Свойство доступно только для чтения. Возвращает полное имя файла документа, состоящее из пути, имени и расширения файла.
Может нужно сначала убрать старое расширение файла, а затем новое подпихивать?

la_Mypka

Цитата: UU от 16.08.24, 06:01:55Может нужно сначала убрать старое расширение файла, а затем новое подпихивать?
В вашей фразе улавливаю мысль "ну тупая"))
Ответ на ваш вопрос - может, кто его знает... Повторюсь, я далека от программирования, сделала по "инструкции" уважаемого Slaviation

Попробовала в разных комбинациях - и cdw вписывала, и всяко-разно - не работает

UU

Цитата: Slaviation от 15.08.24, 19:08:07Во второй строке выше от красной поменяйте компас с 23 на ваш.
Последнюю строку поменяйте на
converter.Convert(kompas_document.PathName + ".pdf", 0, False)
Тут должно быть четыре параметра, а не три.
Цитата: la_Mypka от 16.08.24, 06:31:09В вашей фразе улавливаю мысль "ну тупая"))
Ответ на ваш вопрос - может, кто его знает... Повторюсь, я далека от программирования, сделала по "инструкции" уважаемого Slaviation

Попробовала в разных комбинациях - и cdw вписывала, и всяко-разно - не работает
Смотрите внимательно справку.
https://help.ascon.ru/KOMPAS_SDK/23/ru-RU/iconverter_convert.html

Михаил88

Цитата: la_Mypka от 16.08.24, 06:31:09В вашей фразе улавливаю мысль "ну тупая"))
Ответ на ваш вопрос - может, кто его знает... Повторюсь, я далека от программирования, сделала по "инструкции" уважаемого Slaviation

Попробовала в разных комбинациях - и cdw вписывала, и всяко-разно - не работает

Замените на эту строчку

converter.Convert('', kompas_document.PathName[:-4] + ".pdf", 0, False)

можете еще самой последней строчкой добавить

application.MessageBoxEx(kompas_document.PathName[:-4] + ".pdf" + "\n Документ сохранен успешно", '', 64)

Screenshot_2.png
+ Благодарностей: 2

UU

Цитата: Михаил88 от 16.08.24, 06:51:48application.MessageBoxEx(kompas_document.PathName[:-4] + ".pdf" + "\n Документ сохранен успешно", '', 64)
application.MessageBoxEx(kompas_document.PathName[:-4] + ".pdf" + "\n Документ сохранен успешно", '', 64)
Где здесь используется возвращаемое значение этой - converter.Convert('', kompas_document.PathName[:-4] + ".pdf", 0, False) строки?
Она может и неуспешно выполнится.

Михаил88

name_file = kompas_document.PathName[:-4] + ".pdf"
rez = converter.Convert('', name_file, 0, False)
if rez == 1:
    application.MessageBoxEx(name_file + "\n Документ сохранен успешно.", '', 64)
else:
    application.MessageBoxEx(name_file + "\n Не удалось сохранить документ.", '', 64)
+ Благодарностей: 2

Slaviation

Цитата: undefinedPathName - Полное имя документа.
Свойство доступно только для чтения. Возвращает полное имя файла документа, состоящее из пути, имени и расширения файла.
Может нужно сначала убрать старое расширение файла, а затем новое подпихивать?

Да, возможно старое расширение нужно убрать, но если есть несколько файлов, отличающихся только расширением, к примеру "Узел.cdw" и "Узел.spw", то при сохранении их в pdf они перезапишутся и в итоге останется один "Узел.pdf".
Если же старое расширение не убирать, то при сохранении в pdf файлов "Узел.cdw" и "Узел.spw" получим два файла "Узел.cdw.pdf" и "Узел.spw.pdf", которым старые расширения вроде и не мешают.

Да в последней строке пропущен первый параметр. Нужно
converter.Convert("", kompas_document.PathName + ".pdf", 0, False)
Коллеги, прошу извинить за эту неточность.
+ Благодарностей: 1

la_Mypka

Цитата: Slaviation от 16.08.24, 07:30:23Да в последней строке пропущен первый параметр. Нужно
converter.Convert("", kompas_document.PathName + ".pdf", 0, False)

не сработало

2024-08-17_05-41-36.png

Цитата: Михаил88 от 16.08.24, 06:51:48Замените на эту строчку

converter.Convert('', kompas_document.PathName[:-4] + ".pdf", 0, False)

Сработало! Файл успешно сохранился!

А теперь объясните мне, пожалуйста, как сделать так, чтоб окно PyScripter не появлялось, чтобы файл сохранялся просто по нажатию кнопки, к которой привязан макрос?

Изначальная цель была - уменьшить количество кликов мыши при сохранении файла в pdf.

2024-08-17_05-50-17.png

UU

Цитата: la_Mypka от 17.08.24, 04:50:59А теперь объясните мне, пожалуйста, как сделать так, чтоб окно PyScripter не появлялось, чтобы файл сохранялся просто по нажатию кнопки, к которой привязан макрос?
Сделать библиотеку dll(rtw).
+ Благодарностей: 1

la_Mypka

Цитата: UU от 17.08.24, 05:26:29Сделать библиотеку dll(rtw).

Погуглила - работа в Visual Studio. :shu:
Может когда-нибудь и займусь.

Всем огромное спасибо за участие и терпение, насыпала благодарностей :afro:  :beer:

la_Mypka

На всякий случай прикрепляю работающий у меня макрос для 21-го компаса
test.zip

Михаил88

Цитата: la_Mypka от 17.08.24, 04:50:59А теперь объясните мне, пожалуйста, как сделать так, чтоб окно PyScripter не появлялось, чтобы файл сохранялся просто по нажатию кнопки, к которой привязан макрос?

Изначальная цель была - уменьшить количество кликов мыши при сохранении файла в pdf.

Вам нужно изменить расширение файла с .cdm на .pyw.
Далее нужно через Открыть с помощью указать, чтобы открывало через pythonw.exe. Его расположение такое C:\ProgramData\ASCON\KOMPAS-3D\21\Python 3\App

+ Благодарностей: 1

Михаил88

Цитата: la_Mypka от 17.08.24, 04:50:59не сработало

Будет работать если вы уберете лишние знаки.

converter.Convert("", kompas_document.PathName + ".pdf", 0, False)


+ Благодарностей: 1