alanjt 发表于 2022-7-6 10:25:15

现在,您可以模拟动态属性菜单并使用DosLib(必须下载)弹出菜单。
 
如。
(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)
)
 

ordengate 发表于 2022-7-6 10:30:22

我真的很感谢你的帮助。不幸的是,我的lisp知识扩展到。。。Lisp程序。
 
还有一件事要学。

alanjt 发表于 2022-7-6 10:31:46

DosLib只是一个免费的LISP插件包。你真的看过我发布的代码了吗,除了Lisp程序什么都没有。

ordengate 发表于 2022-7-6 10:36:21

啊,我明白你的意思了。只是额外的功能。不幸的是,我们公司没有给我们任何管理权限。因此,必须在70台电脑上安装这一功能,这意味着我的IT管理员会告诉我去捣乱。英雄联盟

alanjt 发表于 2022-7-6 10:41:42

那太糟糕了。我为那些公司工作过。
尝试此选项以选择列表。。。
 
(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
   )
)
)
 
该回家了,否则我会帮你做一个小演示。

ordengate 发表于 2022-7-6 10:44:13

到目前为止,我刚刚将lisp例程转换为使用两个功能区面板。一个用于32位,一个用于64位。明天我会尝试修补你的代码,看看它是如何工作的。总是很乐意对别人的代码进行反向工程,使自己成为一个更好的程序员。我可能会在未来的命令中使用它。不管怎样,我非常感谢你给我的帮助。

alanjt 发表于 2022-7-6 10:48:46

让我们看看你有什么。如果你感兴趣的话,我可能会帮你。

ordengate 发表于 2022-7-6 10:52:24

 
以下是我迄今为止完成的所有工作。再次对中的格式表示歉意。lsp文件本身,因为我使用记事本++编程。
 
https://www.dropbox.com/s/up6g04jekn53hrx/Lisp.zip
 
抱歉,有大小限制,因此上面的链接将带您找到您需要的内容。
页: 1 [2]
查看完整版本: getstring问题