发两个面板的程序
发两个面板的程序,我是一点也不懂的,这个不是我写的,都是网上或别处找来的。一个看起来功能强大,但是复杂,改也不知道从哪里改。
一个简单,但感觉太紧密了,想调的松散一些(比如列和列的距离,按键的距离)也不知道在哪调。
有喜欢的拿去研究吧。
(defun c:tt ( )
(mainpaneldcl (list
;; 第1列
(list "功能1"
(list "这是个按键1" "tt")
(list "这是个按键2" "tt")
(list "这是个按键3" "tt")
(list "这是个按键4" "tt")
(list "这是个按键5" "tt")
(list "这是个按键6" "tt")
(list "这是个按键7" "tt")
(list "这是个按键8" "tt")
(list "这是个按键9" "tt")
)
;;第2列
(list "功能2"
(list "这是个按键a" "tt")
(list "这是个按键b" "tt")
(list "这是个按键c" "tt")
(list "这是个按键d" "tt")
(list "这是个按键e" "tt")
(list "这是个按键f" "tt")
(list "这是个按键g" "tt")
)
)
)
(princ)
)
(vl-load-com)
(defun mainpaneldcl (strklst / maxl keylst n nn lcmd ff f id cmd)
(setq ff(vl-filename-mktemp "temp_pannel.dcl") f(open ff "w"))
(write-line "MYbutton:button{width =20;vertical_margin=none;horizontal_margin=none;}" f)
(write-line "MYpanel:dialog{label=\"工具集\";:row{" f)
(setq n 0 nn(mapcar 'length (mapcar 'cdr strklst)) maxl(apply 'max nn))
(mapcar (function(lambda(x / l1)
(write-line(strcat ":column{label=" (vl-prin1-to-string(car x))";")f)
(setq x(cdr x) x(append x(repeat(- maxl(length x))(setq l1(cons '("" "")l1)))))
(mapcar (function(lambda(y / k)
(setq k(strcat "key" (itoa(setq n(1+ n)))))
(write-line(strcat
":MYbutton{label="(vl-prin1-to-string(car y))";key= "(vl-prin1-to-string k)
(if(= (setq y(cadr y)) "")";is_enabled = false;}" ";}")
)f)
(setq keylst(cons k keylst) lcmd(cons y lcmd))
))x)
(write-line "}" f)
))strklst)
(write-line "}:row{" f)
(write-line(if(> (length nn)2)":text{label=\"这是一个面板\";is_enabled = false;}" "spacer_0;")f)
(write-line":button{label=\"关闭\"; key=\"cancel\";is_cancel=true;width=6;fixed_width=true;}" f)
(write-line "spacer_0;}}" f)
(close f)
(setq id(load_dialog ff))(vl-file-delete ff)
(new_dialog "MYpanel" id "3" P_MYpaneldcl)
(mapcar (function(lambda(x)(action_tile x(strcat "(setq P_MYpaneldcl(done_dialog "(substr x 4)"))"))))keylst)
(setq n (start_dialog))(unload_dialog id)
(if(> n 0)(if(wcmatch(setq cmd(nth(1- n)(reverse lcmd))) "(*)")(eval(read cmd))
(vla-SendCommand(vla-get-ActiveDocument(vlax-get-acad-object))(strcat cmd "\n"))
)
)
)
有点喜欢这个界面功能,感觉也是和'贱人工具箱'比较相似! 列和列的距离,按键的距离,可以试试把代码给AI,让AI修改 属是牛逼;这么多功能
太厉害了,感谢分享 本帖最后由 pengbin 于 2025-12-9 14:19 编辑
http://www.mjtd.com/data/attachment/forum/202511/19/104627zfy8nzfkppxb0knr.gif
第一次进明经,也是下载了这些面板,很不错的程序
想起来是否能够支持多一个类似'iMini迷你工具'的模糊命令搜索功能就很完美了!毕竟插件多了→很多时候→会忘记快捷命令了……
页:
[1]