Элемент управления AutoCAD (также LT) в окне печати, ChooseString не находит принтер - PullRequest
0 голосов
/ 31 января 2019

Я сделал скрипт AutoHotkey для печати чертежей в PDF;Однако у меня возникли проблемы с определенным списком в диалоговом окне AutoCAD.Этот комбинированный список позволяет вам выбрать один из установленных принтеров или файлы конфигурации принтера.Принтер, который я хочу выбрать, - один из встроенных, который называется "DWG To PDF.pc3" .Вот мой фрагмент кода, который НЕ РАБОТАЕТ (кажется, ничего не делает): Control , ChooseString , DWG , ComboBox1 , Plot - Model

Кроме того, я пробовал с кавычками и без них (мне всегда трудно сказать, когда мне нужно цитироватьбуквальный текст) и полное имя - ничего не работает.Мой обходной путь (временно, я надеюсь) должен использовать Control , Choose , N.Это нежелательно, поскольку у разных пользователей может быть установлено больше или меньше принтеров, и это будет влиять на расположение нужного принтера в списке.Вот фрагмент этого кода: Control , Choose , 20 , ComboBox1 , Plot - Model

Для справки я установил AutoHotkey версии 1.1.30.01 - 11 ноября 2018 года.

Чего мне не хватает?Или какие-либо предложения или творческие решения (даже из других языков программирования)?Спасибо!

РЕДАКТИРОВАТЬ:

TL; DR - Это в основном предназначено для LT.

Полный контекст - у меня есть полный AutoCAD (механический)и использовать LISP для многих задач.На самом деле, я использовал ваши (Lee Mac's) учебные пособия и полезные посты на многих форумах, чтобы начать работу с ним много лет назад.В моей компании у нас есть 27 мест LT (11 полных), где я настроил фирменную ленту с файлами SCR для нескольких вещей, включая печать.Этот случай немного отличается, потому что некоторые пользователи должны иметь возможность выбрать несколько предварительно настроенных параметров печати. ​​

Конечно, я мог бы сделать больше файлов SCR для этой цели, но им не хватаетпредотвращение ошибок, которое может обеспечить AHK.На самом деле, у меня есть рабочая программа с AHK, но она не соответствует моим стандартам, поскольку кажется, что с этим конкретным комбобоксом происходит что-то глупое.Так что, если бы кто-то мог заставить меня понять это, я был бы очень признателен.

1 Ответ

0 голосов
/ 31 января 2019

Во-первых, было бы полезно выяснить, является ли хост-приложение полной версией AutoCAD или облегченной версией AutoCAD LT, поскольку первое поддерживает полную настройку с использованиемAPI AutoLISP, .NET или ObjectARX (и, следовательно, эта задача проста), тогда как последний не поддерживает настройку, то есть должны использоваться сторонние инструменты (такие как AutoHotKey ).


Если у вас есть доступ к полной версии AutoCAD , тогда задача печати в PDF может быть выполнена с помощью программы AutoLISP, например:

(defun c:pdfall ( / *error* cmd ctb )

    (defun *error* ( msg )
        (if ctb (setvar 'ctab ctb))
        (if cmd (setvar 'cmdecho cmd))
        (if (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*"))
            (princ (strcat "\nError: " msg))
        )
        (princ)
    )

    (setq ctb (getvar 'ctab)
          cmd (getvar 'cmdecho)
    )
    (setvar 'cmdecho 0)
    (foreach lay (layoutlist)
        (setvar 'ctab lay)
        (command
            "_.-plot"
            "_Y" ;; Detailed plot configuration? [Yes/No]:
            ""   ;; Enter a layout name <Current-Layout>:
            "DWG To PDF.pc3" ;; Enter an output device name:
            "ISO full bleed A4 (297.00 x 210.00 MM)" ;; Enter paper size:
            "_M" ;; Enter paper units [Inches/Millimeters]:
            "_L" ;; Enter drawing orientation [Portrait/Landscape]:
            "_N" ;; Plot upside down? [Yes/No]:
            "_E" ;; Enter plot area [Display/Extents/Limits/View/Window]:
            "_F" ;; Enter plot scale (Plotted Inches=Drawing Units) or [Fit] <1=1>:
            "_C" ;; Enter plot offset (x,y) or [Center]:
            "_Y" ;; Plot with plot styles? [Yes/No]:
            "monochrome.ctb" ;; Enter plot style table name (enter . for none):
            "_Y" ;; Plot with lineweights? [Yes/No]:
            "_N" ;; Scale lineweights with plot scale? [Yes/No]:
            "_N" ;; Plot paper space first? [Yes/No]:
            "_N" ;; Hide paperspace objects? [Yes/No]:
            (LM:uniquefilename (strcat (getvar 'dwgprefix) lay ".pdf"))
            "_N" ;; Save changes to page setup [Yes/No]:
            "_Y" ;; Proceed with plot [Yes/No]:
        )
    )
    (setvar 'ctab ctb)
    (setvar 'cmdecho cmd)
    (princ)
)

;; Unique Filename  -  Lee Mac
;; Returns a filename suffixed with the smallest integer required for uniqueness

(defun LM:uniquefilename ( fnm )
    (if (findfile fnm)
        (apply
           '(lambda ( pth bse ext / tmp )
                (setq tmp 1)
                (while (findfile (setq fnm (strcat pth bse "(" (itoa (setq tmp (1+ tmp))) ")" ext))))
            )
            (fnsplitl fnm)
        )
    )
    fnm
)

(princ)

Однако, если у вас есть доступ только к базовой платформе AutoCAD LT , я бы предложил использовать версию командной строки PLOT для командной строки: -PLOT, чтобывам нужно только вводить ввод с клавиатуры для предсказуемой последовательности подсказок, а не взаимодействовать с диалоговым интерфейсом, который отличается в зависимости от последних использованных настроек.

При использовании команды -PLOT последовательность подсказок для макета Paperspace будет такой, как показано в вышеприведенной программе AutoLISP, а именно:

"_.-plot"
"_Y" ;; Detailed plot configuration? [Yes/No]:
""   ;; Enter a layout name <Current-Layout>:
"DWG To PDF.pc3" ;; Enter an output device name:
"ISO full bleed A4 (297.00 x 210.00 MM)" ;; Enter paper size:
"_M" ;; Enter paper units [Inches/Millimeters]:
"_L" ;; Enter drawing orientation [Portrait/Landscape]:
"_N" ;; Plot upside down? [Yes/No]:
"_E" ;; Enter plot area [Display/Extents/Limits/View/Window]:
"_F" ;; Enter plot scale (Plotted Inches=Drawing Units) or [Fit] <1=1>:
"_C" ;; Enter plot offset (x,y) or [Center]:
"_Y" ;; Plot with plot styles? [Yes/No]:
"monochrome.ctb" ;; Enter plot style table name (enter . for none):
"_Y" ;; Plot with lineweights? [Yes/No]:
"_N" ;; Scale lineweights with plot scale? [Yes/No]:
"_N" ;; Plot paper space first? [Yes/No]:
"_N" ;; Hide paperspace objects? [Yes/No]:
<Your PDF Filename Here>
"_N" ;; Save changes to page setup [Yes/No]:
"_Y" ;; Proceed with plot [Yes/No]:
...