明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 18178|回复: 55

[源码] lisp 创建自定义菜单

    [复制链接]
发表于 2014-6-15 01:42 | 显示全部楼层 |阅读模式
本帖最后由 langjs 于 2014-6-15 01:57 编辑

以前发过一个lisp创建自定义工具栏 ,http://bbs.mjtd.com/thread-92860-1-1.html
现在补一个创建自定义 菜单程序。
加载这个程序就自动创建了一个新的菜单在CAD上了

刚才看到G版发了一个VisualLisp自动添加菜单项源码,等有空再研究研究。

先来张图:


;; ==============================================================
;;; 说明:用lisp创建菜单
;;; 作者:langjs     qq:59509100                 日期:2014年6月
;;; ==============================================================
(defun create_klscl (/ f i)
  (if (not (menugroup "KLSCL"))               ; 如果cad没有加载klscl菜单则,得干啥呢....
    (progn
      (alert "\n程序自动创建\"KLSCL\"菜单,请稍后")
      (setq f (open "KLSCL.mnu" "W"))  ; 建立klscl.mnu菜单文件,得写点东西在里边
      (write-line "***MENUGROUP=KLSCL" f) ; 菜单名称就叫klscl吧
      (write-line "" f)                       ; 不用管它,这行就这个
      (write-line "***POP1" f)               ; 这行还不用管
      (write-line "" f)                       ; 接着不管。。。
      (write-line "               [KL水处理系统]" f) ; 显示的菜单头,没头可不行
      (write-line "               [--]" f) ; 一个分界符,纯粹为了好看
      (write-line "               [脱硫废水系统  TLFS]^C^CTLFS" f) ; 点击这个执行^c^c后边的tlfs主程序
      (write-line "               [--]" f) ; 再来一个分界符,帅多了
      (write-line "               [查询参数      CXCS]^C^CCXCS" f) ; 点击这个执行cxcs主程序
      (write-line "             [->设置图块          ]" f) ; 向右弹出。。。
      (write-line "               [可分解    KKFJ]^C^CKKFJ" f) ; 真弹了一个东东来
      (write-line "             [<-不可分解  KBFJ]^C^CKBFJ" f) ; 弹完得回去了
      (close f)                               ; 写完菜单关了吧
      (command "menuload" "KLSCL.mnu") ; 加载看看行不行
      (if (menugroup "KLSCL")               ; 真加载了!
        (progn                               ; 计算现有菜单数量,得把菜单安排个合适位置
          (setq i 1)
          (while (< i 24)
            (if (menucmd (strcat "p" (itoa i) ".1=?"))
              (setq i (1+ i))
              (progn
                (menucmd (strcat "p" (itoa i) "=+KLSCL.pop1")) ; 显示出klscl来鸟!那个i也可以是 (- i 2)
                (setq i 25)
        ))))))
  )
  (princ)
)
(create_klscl)  ;;; 调用上边的子程序,加载lisp程序就加载了


;;; 我的其它程序,与创建菜单程序没啥大关系
(defun c:tlfs ()  (alert "\n私人程序,真不提供。"))
(defun c:cxcs ()  (alert "\n私人程序,真不提供。"))
(defun c:kkfj ()  (alert "\n私人程序,真不提供。"))
(defun c:kbfj ()  (alert "\n私人程序,真不提供。"))


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

经测试,CAD2008版也是无法加载的。  发表于 2019-5-13 07:52
在CAD2020版本,不能加载显示出菜单,希望能修改。  发表于 2019-4-2 20:18
简单实用!超赞1  发表于 2017-9-4 11:17
"觉得好,就打赏"
还没有人打赏,支持一下

本帖被以下淘专辑推荐:

发表于 2019-6-14 15:25 | 显示全部楼层
强大,非常好用,适合初学lisp
回复 支持 0 反对 1

使用道具 举报

发表于 2023-4-1 15:03 | 显示全部楼层
还没学会,我只会加载
回复 支持 1 反对 0

使用道具 举报

发表于 2019-8-16 11:08 | 显示全部楼层
360527010 发表于 2015-4-28 22:31
请问下,这个加载程序是否有数量限制的?为什么我加到第25个lisp插件的时候就无法加载了?

解决了吗?我也遇到同样的问题
回复 支持 0 反对 1

使用道具 举报

发表于 2017-12-13 11:53 | 显示全部楼层
楼主,请问这一步(defun c:tlfs ()  (alert "\n私人程序,真不提供。"))   具体怎么操作啊,比如20+个lsp程序,需要放到一个文件夹下吗?还是?
回复 支持 0 反对 1

使用道具 举报

发表于 2014-6-15 20:11 | 显示全部楼层
真心不错
回复 支持 1 反对 0

使用道具 举报

发表于 2014-6-15 05:31 | 显示全部楼层
本帖最后由 xhq1954425 于 2014-6-15 06:30 编辑

厉害!如果同时加载几个下拉菜单怎样改写……?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2014-6-15 10:37 | 显示全部楼层
求指点,不懂如何使用
发表于 2014-6-15 10:39 来自手机 | 显示全部楼层
赞一个,不错
发表于 2014-6-15 11:40 | 显示全部楼层
很好的菜单制作实例。。。
(write-line "               [&KL水处理系统]" f) ; 显示的菜单头,没头可不行
&加热键
发表于 2014-6-15 12:08 | 显示全部楼层
狼大师帖子要看的
 楼主| 发表于 2014-6-15 16:01 | 显示全部楼层
360527010 发表于 2014-6-15 10:37
求指点,不懂如何使用

考下来存为XX.lsp文件。在CAD里边直接加在这个lisp程序
发表于 2014-6-15 17:08 | 显示全部楼层
大师们同时出手,我等有福了,支持学习
发表于 2014-6-15 20:24 | 显示全部楼层
不错,只是加载菜单的速度较慢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-20 04:51 , Processed in 0.317341 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表