Здравствуйте, Максим Маркевич. Можно ли переделать код VBA 16 урока- Пакетная печать блоков-форматов на LISP?Максим Маркевич не пишет на lisp'е. А в чем смысл этой переделки?
А есть уже созданная тема- Пакетная печать блоков-форматов в PDF на LISP?Уже есть - ты в ней. :)
Может есть примеры кода, хотя бы для одного формата, напр. А1?Кто-нибудь думаю поможет с этим.
(poly-by-blocks)
Я ж как команду не оформлял.
Я так понял, что нужно оформить код, как команду. Типа С: ?Совершенно необязательно.
Я еще поменял путь на (poly-plot "C:\Проекты".В lisp в строке должны быть двойные обратные наклонные, т.е. не (poly-plot "C:\Проекты") а (poly-plot "C:\\Проекты")
ЧТО ЭТО?"C:\Проекты" - это каталог или имя файла? Там должно быть имя файла.
путь, где лежит моя программа?Туда нужно прописать имя файла, в который будет сохранен pdf-файл.
или, что туда надо прописывать? ???
что значить full_bleed?Значит выберите тот, который у вас есть. В разных версиях AutoCAD (и языковых локализациях) могут быть разные названия форматов.
просто у меня нет такого формата...
после того, как выбираю объекты, пишет- nilЭто в принципе нормально.
И в каком месте ошибка?Похоже здесь:
Так я "от балды" нарисовал прямоугольник, из него создал блок с именем "a1" и запустил команду. Все...Леша. Там кажется еще координаты нужно преобразовать из WCS (или UCS) в DCS: http://adn-cis.org/pechat-granicz-okna-pri-pomoshhi-vba.html
Почему-то ПДФ файл создается пустой. Без моего выделенного блока.Выложи чертеж на котором проверяешь, чтобы Алексей мог проверить.
Охотно верю. Но изначально вопрос был в том, чтобы "перевести" с VBA на LISP (насколько я помню) :) Поставленную задачу и решал.Так я "от балды" нарисовал прямоугольник, из него создал блок с именем "a1" и запустил команду. Все...Леша. Там кажется еще координаты нужно преобразовать из WCS (или UCS) в DCS: http://adn-cis.org/pechat-granicz-okna-pri-pomoshhi-vba.html
Т.е. (trans pt 0 2) или (trans pt 1 2)
'(vla-put-stylesheet layout "acad.ctb")
(if (wcmatch (strcase (vla-get-effectivename ent)) "A1,A1")Почему имя блока 2 раза прописывается?
Что-то не получается. nil пишетВ каком месте? Покажи свой код
если вдруг случится чудо и этот код заработает?Чудо не случится - там полная чехарда со скобками.
Не могу я это сделать, не могу.Значит я был прав с самого начала. Это раздел в котором помогают с написанием программ, а не пишут программу от нуля и до конца под конкретные запросы конкретного заказчика. Значит тебе нужно искать того, кто за тебя напишет программу. С этим вопросом тебе сюда: http://adn-cis.org/forum/index.php?board=38.0
Я бы искал по авторизованным тренинговым центрам (ATC)Тоже сомнительно и совсем не бесплатно.
Что можете сказать про учебный центр "Специалист"?Говорить нужно не про учебный центр, а про конкретного преподавателя учебного центра.
http://www.specialist.ru/course/lisp1
Вопросы по DCL куда писать?Создать новую тему здесь: http://adn-cis.org/forum/index.php?board=7.0
В макросах прописана команда. В автозагрузке стоитЧьи слова? :) Я так понимаю, что каким-то образом все же приложение загружается автоматически. Только загружается "не то и не оттуда". Вполне возможно, что загрузка прописана в StartupSuite (команда _.appload, потом нажать на портфельчик) - надо проверить, откуда код грузится.
А в названии, например, кодировка соблюдена? Иногда бывает и такое, что в код попадают английские символы, а в реале они русские.
Балиев,Права на запись в папку? Специальных нет, обычные... А этого разве недостаточно?
Права на запись есть?
BACKGROUNDPLOTУстановил, но результат тот же...
День добрый!Не похоже это на мой код. По крайней мере я такого не помню. Или это другой крыс :)
Написал скрипт для печати в PDF используя скрипт Крыса. Последняя строка почему-то не выполняется. В чем проблема?Код - Auto/Visual Lisp [Выбрать]
(vl-load-com) (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq objsToPrint (ssget)) (setq obj (vlax-ename->vla-object (ssname objsToPrint 0))) (vla-GetBoundingBox obj 'minp 'maxp) (setq pmin (vlax-make-safearray vlax-vbDouble '(0 . 1))) (vlax-safearray-put-element pmin 0 (vlax-safearray-get-element minp 0)) (vlax-safearray-put-element pmin 1 (vlax-safearray-get-element minp 1)) (setq pmax (vlax-make-safearray vlax-vbDouble '(0 . 1))) (vlax-safearray-put-element pmax 0 (vlax-safearray-get-element maxp 0)) (vlax-safearray-put-element pmax 1 (vlax-safearray-get-element maxp 1)) (setq layout (vla-get-activelayout doc)) (vla-refreshplotdeviceinfo layout) (vla-put-configname layout "DWG to PDF.pc3") (vla-put-canonicalmedianame layout "ISO_full_bleed_A4_(297.00_x_210.00_MM)") (vla-put-centerplot layout :vlax-true) (vla-put-plotrotation layout ac90degrees) (vla-put-standardscale layout acscaletofit) (vla-put-stylesheet layout "acad.ctb") (vla-setwindowtoplot layout pmin pmax) (vla-put-plottype layout acwindow) (vla-regen doc acallviewports) (vla-plottofile (vla-get-Plot doc) "D:\\tmp\\tmp")
В командном окне почему-то пишет: :vlax-false
(https://i.postimg.cc/vchCTypb/image.png) (https://postimg.cc/vchCTypb)
Заранее благодарен.
Не похоже это на мой код. По крайней мере я такого не помню. Или это другой крысНу, я его творчески переработал, разумеется. Но начиная с 15-й строки, ну очень на тебя похож. ;)
Ну тогда пошаговая отладка с проверкой результатов выполнения каждой из функций.Хм... А код чего-то взял и заработал... Возможно, все-таки установка BACKGROUNDPLOT в 0 помогла... Ну, или чудо... В любом случае спасибо!