|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
А разговор идет о чистом AutoCAD? Или нет?
----- добавлено через ~17 мин. ----- Я что-то сразу не вспомнил (сейчас чертёж печатал и осенило), что в окне печати в разделе «Параметры печати» (правый столбец) есть «галка» «Сохранить параметры». Она у Вас случайно не поставлена? |
||||
|
||||
Цитата:
Нюанс, что в русском Автокаде имя конфигурации "нет", в английском "none" Код:
Неплохой набор функций Plot Device functions for AutoLISP
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 24.06.2016 в 17:14. Причина: см #25 |
||||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Всем привет!
VVA - большое спасибо, а то я уже действительно начал сомневаться, что задаю вопрос в правильном месте. Однако, как уже отметил P_S, метод этот дает нестабильный результат. Проявляется (по крайней мере у меня) это следующим образом (для наглядности чуть изменил предложенный код на вот такой вот): (vl-load-com) (setq a1 (vlax-get-acad-object)) (print a1) (setq a2 (vla-get-activedocument a1)) (print a2) (setq a3 (vla-get-Layouts a2)) (print a3) (setq a4 (vla-item a3 (getvar "CTAB"))) (print a4) (setq a5 (vla-put-configname a4 "Нет")) (print a5) (princ) Что получается. 1. Открываем файл в Автокаде выполняем вышеприведенный код Получаем: #<VLA-OBJECT IAcadApplication 00a88728> #<VLA-OBJECT IAcadDocument 00f27cec> #<VLA-OBJECT IAcadLayouts 00f72964> #<VLA-OBJECT IAcadLayout 00f713a4> Ошибка Automation. Invalid input Вместо "Нет" можно ставить имя существующего принтера - не важно. Не работает. Но! 2. Стоит только вызвать _pagesetup и не делая в появившемся окне ничего (!) закрыть его через кнопку "ОК", как всё начинает работать. Тот же код дает прекрасный результат #<VLA-OBJECT IAcadApplication 00a88728> #<VLA-OBJECT IAcadDocument 00f27cec> #<VLA-OBJECT IAcadLayouts 00f72964> #<VLA-OBJECT IAcadLayout 00f713a4> nil Спокойно меняя принтеры как на любой из списка, так и на "Нет". Видимо, действие _pagesetup -> "ОК" то ли меняет какой-то указатель на/в таблице принтеров, то ли дает какой-то другой "внутренний пинок" структурам файла в памяти. Ну типа того, как в ранних версиях Автокада приходилось иногда для корректности работы ssget, вызываемой где-то посреди программы, рисовать и тут же стирать (программно, конечно) ма-а-а-ленький такой отрезок где-нибудь ближе к точке (0,0). Вот интересно, какой (vla .... ) дает этит "пинок" ?!
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Да, предложенный frostmourn код работает более стабильно,
пока никаких нештатых действий не проявилось. И - уж для полного счастья (!) - подскажите, плиз: а) как получить список доступных для выбора вариантов бумаги (уже после того, как принтер установлен в "Нет" - встроенных, "автокадовских") - удобнее всего получить их в виде списка. б) как назначить один из этих размеров бумаги. Выбор из списка и подбор бумаги по форматке пользователя (размер и ориентацию) сделаю сам функциями обычного LISP'a.
__________________
Счастливо, Алексей! |
|||
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 451
|
Всем добрый день.
Попробовал. Работает стабильно и делает ровно то, что требовалось. Спасибо большое всем откликнувшимся и отдельное - приславшим строчки кода. А есть где-нибудь описание всех этих vla- vlax- функций на русском языке? А то я как в своё время отошел от активного программирования (ещё во времена 2000-го Автокада), так только описание функций "классического" АвтоЛиспа и имею...
__________________
Счастливо, Алексей! |
|||
|
||||
цитата отсюда
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Autocad 2012 x64 sp2 как решить проблему не выбирающегося принтера? | Z_Felix | AutoCAD | 5 | 17.03.2015 15:44 |
Вызвать окно «Замена принтера в PC3-файле» | AlphaGeo | AutoCAD | 16 | 21.01.2014 14:46 |
В Autocad 2006 не отображаются сетевые принтера | vova_king | AutoCAD | 8 | 19.04.2013 21:32 |
Как создать нестандартный формат листа для принтера с помощью Lisp'а | Shraybicus | LISP | 15 | 27.01.2011 13:02 |