如。
(defun c:TEst (/ lst choice)
(setq lst '("PDF - 11 x 17" "PDF - 11 x 17 - ByLayer" "PDF - 17 x 22" "PDF - 17 x 22 - ByLayer"
"PDF - 18 x 24" "PDF - 18 x 24 - ByLayer" "PDF - 22 x 34" "PDF - 22 x 34 - ByLayer"
"PDF - 24 x 36" "PDF - 24 x 36 - ByLayer" "PDF - 30 x 42" "PDF - 30 x 42 - ByLayer"
"PDF - 34 x 44" "PDF - 34 x 44 - ByLayer" "PDF - 36 x 48" "PDF - 36 x 48 - ByLayer"
"Xerox 6204 - 17 x 22 - STF" "Xerox 6204 - 17 x 22 - STF - ByLayer"
"Xerox 6204 - 18 x 24 - STF" "Xerox 6204 - 18 x 24 - STF - ByLayer"
"Xerox 6204 - 22 x 34" "Xerox 6204 - 22 x 34 - ByLayer" "Xerox 6204 - 22 x 34 - STF"
"Xerox 6204 - 22 x 34 - STF - ByLayer" "Xerox 6204 - 24 x 36"
"Xerox 6204 - 24 x 36 - ByLayer" "Xerox 6204 - 24 x 36 - STF"
"Xerox 6204 - 24 x 36 - STF - ByLayer" "Xerox 6204 - 30 x 42"
"Xerox 6204 - 30 x 42 - ByLayer" "Xerox 6204 - 30 x 42 to 18 x 24"
"Xerox 6204 - 30 x 42 to 24 x 36" "Xerox 6204 - 34 x 44"
"Xerox 6204 - 34 x 44 - ByLayer" "Xerox 6204 - 36 x 48"
"Xerox 6204 - 36 x 48 - ByLayer" "Sharp Color - 8.5 x 11"
"Sharp Color - 8.5 x 11 - ByLayer" "Sharp Color - 11 x 17"
"Sharp Color - 11 x 17 - ByLayer" "Sharp Color - 11 x 17 - STF"
"Sharp Color - 11 x 17 - STF - ByLayer" "HP LaserJet 8150N - 8.5 x 11"
"HP LaserJet 8150N - 8.5 x 11 - ByLayer" "HP LaserJet 8150N - 11 x 17"
"HP LaserJet 8150N - 11 x 17 - ByLayer" "HP LaserJet 8150N - 11 x 17 - STF"
"HP LaserJet 8150N - 11 x 17 - STF - ByLayer"
)
)
(if (setq choice (dos_popupmenu lst))
(progn
(command
"._-PSetupIN"
"C:/Users/TAbel/AppData/Roaming/PortableApps/Dropbox/Dropbox/AutoCAD/Templates/Page Setups - 64bit.dwt"
"*"
)
(command "-Plot" "No" "" (nth choice lst) "" "No" "Yes" "No")
)
)
(princ)
)
我真的很感谢你的帮助。不幸的是,我的lisp知识扩展到。。。Lisp程序。
还有一件事要学。 DosLib只是一个免费的LISP插件包。你真的看过我发布的代码了吗,除了Lisp程序什么都没有。 啊,我明白你的意思了。只是额外的功能。不幸的是,我们公司没有给我们任何管理权限。因此,必须在70台电脑上安装这一功能,这意味着我的IT管理员会告诉我去捣乱。英雄联盟 那太糟糕了。我为那些公司工作过。
尝试此选项以选择列表。。。
(defun AT:ListSelect (title label height width multi lst / fn fo d item f)
;; List Select Dialog (Temp DCL list box selection, based on provided list)
;; title - list box title
;; label - label for list box
;; height - height of box
;; width - width of box
;; multi - selection method ["true": multiple, "false": single]
;; lst - list of strings to place in list box
;; Alan J. Thompson, 09.23.08 / 05.17.10 (rewrite)
(setq fo (open (setq fn (vl-filename-mktemp "" "" ".dcl")) "w"))
(foreach x (list (strcat "list_select : dialog { label = \"" title "\"; spacer;")
(strcat ": list_box { label = \"" label "\";" "key = \"lst\";")
(strcat "allow_accept = true; height = " (vl-princ-to-string height) ";")
(strcat "width = " (vl-princ-to-string width) ";")
(strcat "multiple_select = " multi "; } spacer; ok_cancel; }")
)
(write-line x fo)
)
(close fo)
(new_dialog "list_select" (setq d (load_dialog fn)))
(start_list "lst")
(mapcar (function add_list) lst)
(end_list)
(setq item (set_tile "lst" "0"))
(action_tile "lst" "(setq item $value)")
(setq f (start_dialog))
(unload_dialog d)
(vl-file-delete fn)
(if (= f 1)
((lambda (s / i s l)
(while (setq i (vl-string-search " " s))
(setq l (cons (nth (atoi (substr s 1 i)) lst) l))
(setq s (substr s (+ 2 i)))
)
(reverse (cons (nth (atoi s) lst) l))
)
item
)
)
)
该回家了,否则我会帮你做一个小演示。 到目前为止,我刚刚将lisp例程转换为使用两个功能区面板。一个用于32位,一个用于64位。明天我会尝试修补你的代码,看看它是如何工作的。总是很乐意对别人的代码进行反向工程,使自己成为一个更好的程序员。我可能会在未来的命令中使用它。不管怎样,我非常感谢你给我的帮助。 让我们看看你有什么。如果你感兴趣的话,我可能会帮你。
以下是我迄今为止完成的所有工作。再次对中的格式表示歉意。lsp文件本身,因为我使用记事本++编程。
https://www.dropbox.com/s/up6g04jekn53hrx/Lisp.zip
抱歉,有大小限制,因此上面的链接将带您找到您需要的内容。
页:
1
[2]