pengl86 发表于 2021-8-12 13:18:14

工具箱?

本帖最后由 pengl86 于 2021-8-30 13:31 编辑

大家有木有工具箱的壳,可以很方便加载自己日常搜集的小插件。

k1nger 发表于 2021-8-27 15:26:09

(defun c:yw ()
(setq ln (list ;;这里是你要加载的程序
"G:\\面板\\程序1.lsp"
"G:\\面板\\程序2.lsp"
"G:\\面板\\程序3.lsp"
))
(mapcar '(lambda(x) (vl-catch-all-apply 'vl-load-all (list x))) ln)
(make_panel
    (list
   (list "第一列" ;;第一列
            (list "程序1" "cx1") ;(list按钮标签运行的命令)
            (list "程序2" "cx2")
            (list "程序3" "cx3")
      );;第一列
      (list "第二列";第二列
            (list "功能名称" "命令快捷键") ;(list按钮标签运行的命令)
            (list "直线" "line")
      ) ;;第二列 复制时注意起止括号,LISP括号必须成对..
      (list "第三列";都可以自己修改
            (list "圆" "CIRCLE")
      )
    )
)
(princ)
)
(defun make_panel ( menulist / n num_nobut num_button nn nnn menuname val_lst add_dclrow tt order_lst in num_image)
(defun add_dclrow ( dstr / ) (if dstr (setq val_lst (cons dstr val_lst))))
(setq menuname (strcat (vl-filename-mktemp) "temp_pannel.dcl"));
(setq rq (menucmd "M=$(edtime,$(getvar,date),YYYY年MO月DD日)"))
(add_dclrow "curbutton:button{width=10;vertical_margin=none;vertical_margin=none;}")
(add_dclrow "curimage:image{width=10;height=0.2;vertical_margin=none;vertical_margin=none;}")
(add_dclrow "curpanel:dialog{label=\"回归-雁工具箱\";alignment=centered;vertical_margin=none;horizontal_margin=none;")
(add_dclrow "spacer;")
(add_dclrow ":column{")
(add_dclrow ":row{")
(setq len (apply 'max (mapcar 'length menulist))
      order_lst (apply 'append (mapcar 'cdr menulist))
      num_button 0
      num_nobut 0
      in 0
      num_image 0
)
(foreach nn menulist
      (setq in 0)
      (add_dclrow (strcat " : boxed_column{label=\"" (car nn) "\";vertical_margin=none; horizontal_margin=none;"))
      (foreach nnn (cdr nn)
         (setq num_button (1+ num_button)
               in (1+ in)
               num_image (1+ num_image)
               tt (car nnn)
               tt (if tt tt "")
         )
         (add_dclrow (strcat ":curbutton{label=\"" tt "\";key=\"but" (itoa num_button) "\";}"))
         (if (= 4 in)
               (progn (add_dclrow (strcat ":curimage{key=\"ima" (itoa num_image) "\";}"))
                      (setq in 0)
               )
         )
      )
      (repeat (- len (length nn))
         (setq num_nobut (1+ num_nobut)
               in (1+ in)
               num_image (1+ num_image)
         )
         (add_dclrow (strcat " : curbutton{key=\"butno" (itoa num_nobut) "\";}"))
         (if (= 4 in)
               (progn (add_dclrow (strcat ":curimage{key=\"ima" (itoa num_image) "\";}"))
                      (setq in 0)
               )
         )
      )
      (add_dclrow "spacer;}")
)
   (add_dclrow "}:button{label=\"关闭\";key=\"cancel\";is_cancel=true;width=10;fixed_width=true;alignment=centered;}}")
   (add_dclrow (strcat ":concatenation {:text_part {label=\"作者:QQ276863649 今日日期:\";}:text {width=12;label=\"" rq "\";}:text_part{label=\" \";}}}"))
   (vl-file-delete menuname)
   (setq nn (open menuname "w"))
   (foreach n (reverse val_lst) (write-line n nn))
   (close nn)
   (setq nnn (load_dialog menuname))
   (if (not (new_dialog "curpanel" nnn)) (exit))
   (setq n 0)
   (repeat num_nobut (mode_tile (strcat "butno" (itoa num_nobut)) 1) (setq num_nobut (1- num_nobut)))
(foreach nn menulist
      (foreach nnn (cdr nn)
         (setq n (1+ n)
               tt (car nnn)
               tt (if tt tt "")
         )
         (if (= tt "")
               (mode_tile (strcat "but" (itoa n)) 1)
               (action_tile (strcat "but" (itoa n)) (strcat "\(done_dialog " (itoa n) "\)"))
         )
      )
)
   (setq nn (start_dialog))
   (unload_dialog nnn)
   (vl-file-delete menuname)
(if (> nn 0)
       (progn (setq tt (cadr (nth (1- nn) order_lst)))
            (princ "\n")
            (if (= (eval (read (strcat "(type c:" tt ")"))) 'SUBR)
                  (eval (read (strcat "(c:" tt ")")))
                  (vl-cmdf tt)
            )
       )
   )
)

vitalgg 发表于 2021-8-13 06:44:53

本帖最后由 vitalgg 于 2021-8-13 06:48 编辑

你说的不就是@lisp
主页: http://atlisp.cn


加菜单加面板一个函数搞定

;; 添加单个菜单项
(@:add-menu "类别" "功能" "执行命令")
;; 添加多个菜单项
(@:add-menus
'(("类别" ("功能1" "执行命令1")
             ("功能2" "执行命令2")
             ("功能3" "执行命令3"))))


http://atlisp.cn/stable/install.gif
http://atlisp.cn/stable/install.mp4


尘缘一生 发表于 2021-8-12 14:04:18

本帖最后由 尘缘一生 于 2021-8-12 17:29 编辑

工具箱的壳?意思是什么?
工具箱很多,恕我直言,大多数都不行,机械堆砌吗?看什么好,弄一起,也美其名曰:插件。。。。

1:贱人DCL界面,一大片,好吗?
2:天正屏幕菜单,好吗?画图效率是最快的?
3:CAD之ribbon菜单?好吗?
4:速腾菜单可好?有版本限制,你愿意用,一直用,CAD版本升级到2030,你还能用吗?



如果有兴趣,去看看燕秀怎么作的吧,这才是内行插件;大家看上面截图,用了这么多COMMAND也好意思?
如果自己使用,有个程序能自动加载,本坛有代码,方法也很多种。





pengl86 发表于 2021-8-13 07:56:02

vitalgg 发表于 2021-8-13 06:44
你说的不就是@lisp
主页: http://atlisp.cn



可以加载日常自己搜集的插件,是吗。

vitalgg 发表于 2021-8-13 08:30:53

pengl86 发表于 2021-8-13 07:56
可以加载日常自己搜集的插件,是吗。

可以加载那个网站上收集的插件。自己本地的插件需要处理一下,也可以。

pengl86 发表于 2021-8-13 09:06:17

尘缘一生 发表于 2021-8-12 14:04
工具箱的壳?意思是什么?
工具箱很多,恕我直言,大多数都不行,机械堆砌吗?看什么好,弄一起,也美其名 ...

这个很强大,搜索一下,可以定做吗,

pengl86 发表于 2021-8-13 09:06:59

尘缘一生 发表于 2021-8-12 14:04
工具箱的壳?意思是什么?
工具箱很多,恕我直言,大多数都不行,机械堆砌吗?看什么好,弄一起,也美其名 ...

工具箱壳,就是可以加载自己搜集的插件,然后可以生成目录或者菜单,

尘缘一生 发表于 2021-8-13 16:44:48

pengl86 发表于 2021-8-13 09:06
工具箱壳,就是可以加载自己搜集的插件,然后可以生成目录或者菜单,

自动加载,实际就是个程序罢了,大凡插件,都开发一个用户自由扩展的文件夹,留给用户自由添加的。

yoyoho 发表于 2021-8-30 12:37:17

k1nger 发表于 2021-8-27 15:26


指令: AP
APPLOAD YW.LSP成功载入。


指令:
指令:
指令: YW
渣昫 : 引数太多
页: [1] 2
查看完整版本: 工具箱?