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

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

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

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

N1Tron1X

05.09.19, 09:59:10 Последнее редактирование: 05.09.19, 15:04:04 от N1Tron1X
Для уменьшения количества действий давно хотел написать макрос, который сохранял бы чертёж по пути "path\pdf DD.MM.YYYY\file_name.pdf", где

path - путь до оригинального файла
pdf DD.MM.YYYY - папка (если отсутствует, то создать) с текущей датой, например "pdf 05.09.2019"
file_name - имя оригинального файла. Если чертёж АБВГ.123456.789.cdw, то сгенеренная pdf АБВГ.123456.789.pdf (если присутствует - перезаписать)

С ЯП поверхностно знаком, даже немного писал под свои нужды, но вникнуть в API компаса тяжеловато. Ну и для полноты картины привязать бы выполнение этого макроса к клавише (F2/3/4 например).

Заранее спасибо за ответы!

upd. +те же самые действия со спецификацией, макрос при этом желательно чтобы был один.

Slaviation

ЦитироватьЕсли чертёж АБВГ.123456.789.cdw, то сгенеренная pdf АБВГ.123456.789.pdf

Добрый день.
А если есть три файла: АБВГ.123456.789.cdw, АБВГ.123456.789.spw и АБВГ.123456.789.a3d, то для каждого из них  имя pdf файла будет АБВГ.123456.789.pdf.
Может лучше расширение исходного файла не убирать АБВГ.123456.789.cdw.pdf ?

N1Tron1X

Цитата: Slaviation от 05.09.19, 11:41:05
для каждого из них  имя pdf файла будет АБВГ.123456.789.pdf

Добрый день, каждый файл имеет разное имя (после ДН следует код документа), поэтому повторения исключены :)

Начальный набор файлов для примера и они же после преобразования

АБВГ.123456.789.spw => АБВГ.123456.789.pdf
АБВГ.123456.789ВП.spw => АБВГ.123456.789ВП.pdf
АБВГ.123456.789СБ.cdw => АБВГ.123456.789СБ.pdf

ТрындецЪ

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

FR347

А что поменять в коде, что бы в ту же папку сохраняло?

N1Tron1X

Цитата: ТрындецЪ от 05.09.19, 12:49:30
Во вложении.

Благодарю, работает прямо, как хотел. Большое спасибо за Ваш труд, возьму в пользование на долгое время!

Цитата: FR347 от 05.09.19, 13:14:56
А что поменять в коде, что бы в ту же папку сохраняло?
Строка 22:
directory = iDocument.Path

FR347

Спасибо! Там и пытался менять) Но думал вот это (в изменённом виде)  должно остаться: '%s\pdf %s'.

а дату убрать)

NukliON

Цитата: ТрындецЪ от 05.09.19, 12:49:30
Во вложении.
Спасибо большое за нужный макрос.

MaxCraft

Хороший макрос, подскажите а можно сделать так чтобы спецификация сохранялась с тем же именем но добавлялось к имени СП

plscomeback

всегда интерисовал вопрос по быстрому запуску макросов, как запустить его через горячие клавиши?

NukliON

Цитата: plscomeback от 10.12.19, 15:27:50всегда интерисовал вопрос по быстрому запуску макросов, как запустить его через горячие клавиши?
Изменить расширение на .cdm, добавить в утилиты, перейти в настройки горячих клавиш, выбрать категорию - все команды, найти свою утилиту по имени.

Вират Лакх

Можно создать ярлык с быстрым вызовом.

NikMos

Всем доброго времени! Подскажите пожалуйста чайнику, как сделать тоже самое(Сохранение текущего чертежа или СП в pdf), только сохранять в dxf. Недавно начал знакомство с макросами, терминами программирования не владею. Для пробы-тупо поменял строки с pdf на dxf- сохраняет с расширением, но нужно как то конвертировать, как я понимаю. Помогите! v16

Вират Лакх

dxfversion = 2010 # Какую версию dxf использовать: 2000, 2004, 2007, 2010, 2013
AutoCAD = {2000:4, 2004:5, 2007:6, 2010:7, 2013:8, 2018:9} # Поддерживаемые версии DXF/DWG

iConverter = iApplication.Converter(KompasObject.ksSystemPath(1) + '\\ImpExp\\dwgdxfExp.rtw') # Конвертер файлов КОМПАС
iConverterParameters = iConverter.ConverterParameters(1) # Получить интерфейс параметров конвертирования (для dxf: command = 1)
currentAcadFileVersion = iConverterParameters.AcadFileVersion # Сохранить текущую версию формата dxf
iConverterParameters.AcadFileVersion = AutoCAD[dxfversion] # Версия AutoCAD, в которую осуществляем запись
iConverter.Convert('', 'c:\\1.dxf', 1, False) # Процесс конвертации (файл или текущий документ, новый файл, номер команды, диалог)
iConverterParameters.AcadFileVersion = currentAcadFileVersion # Вернуть текущую версию формата dxf

NikMos

19.05.20, 23:08:05 #14 Последнее редактирование: 19.05.20, 23:35:35 от NikMos Причина: не вено заданный вопрос
Вообще, мне нужно все гораздо проще. Просто макрос для нового(еще не сохраненного чертежа из модели): сохранить как...-формат dxf-в любую папку(напр С:\) со свойствами модели Наименование_Обозначение. Т.е вместо того, чтоб тыкать каждый раз сохраняя чертеж: Файл-- сохр как...--dxf. Можно макрос сварганить?

Вират Лакх

Сварганить можно. Для начала можете попробовать записать макрос с помощью стандартной библиотеки или через PyKompasMacro (ищите на форуме). Записанное подредактировать. Или с нуля написать. Второй вариант лучше.

NikMos

Помню, когда в армию проходил медосмотр, сказал терапевту , что болит спина после нагрузок, он сказал: Так вам к хирургу!. Зашел к хирургу с тем же...Знаете что он ответил?

Алексей_С

Цитата: ТрындецЪ от 05.09.19, 12:49:30Во вложении.
Подскажите пожалуйста, а как сохранить в pdf  с параметрами? У меня стоит Компас 14.

Алексей_С

Как я понял нужно использовать методы в Pdf2d.dll (на картинке). А как до них достучаться из Python

Петрович-47

Цитата: Вират Лакх от 20.05.20, 08:37:31...Для начала можете попробовать записать макрос с помощью стандартной библиотеки...
Попробовал я записать макрос "Сохранить как jpg"...
Запустил запись
Указал куда сохранить
Выполнил действия "Сохранить как..."->"Настройки сохранения"->"Ок"
Остановил запись
Открываю код и вижу: константы, интерфейсы, активный объект и ... больше ничего? а где сами действия?
Сейчас попробую для пдф
...
Результат тот же
Что я делаю не так?