长风(尚品) 发表于 2021-1-5 14:45:34

如何创建菜单工具并执行LSP里的命令

各位大神,靖问如何创建一个菜单下拉工具并执行已加载的LSP文件里的各个命令?

dmxcs 发表于 2021-1-8 20:19:11

好东西,mark

长风(尚品) 发表于 2021-1-6 17:28:38

vitalgg 发表于 2021-1-6 15:47
不知道你说的是不是做一个菜单,菜单的命令可以是lisp命令,加上括号就行了。如下:

[->工程管理]


就是创建一个下拉菜单项,里面可以执行各个已加载的LISP命令。你这个我没有看懂?请问如何使用?

vitalgg 发表于 2021-1-6 15:47:41

不知道你说的是不是做一个菜单,菜单的命令可以是lisp命令,加上括号就行了。如下:

[->工程管理]
[自动编图号]^c^c(@:set-tuhao (@:get-frames));
[生成目录]^c^c(@:make-mulu-csv);
[目录成图]^c^c(@:insert-mulu-to-dwg);
[附着签名]^c^c(@:attach-sign);
[*选择所有图框]^c^c(@:select-tukuang);
[--]
[插入图框]^c^c(@:insert-tukuang "vitaltools/map-sheet.dwg" (@:get-config 'vitaltools:tukuang));
[变更]^c^c(@:insert-tukuang "vitaltools/bg-tukuang.dwg" (@:get-config 'vitaltools:bg-tukuang));
[<-处理方案]^c^c(@:insert-tukuang "vitaltools/fa-tukuang.dwg" (@:get-config 'vitaltools:fa-tukuang));
[->实体]
[清理DGN]^c^c(@:remove-dgn);
[分解重块]^c^c(@:explode-minsert);
[<-淡化实体填充]^c^c(@:explode-minsert);
[->图层]
[关闭其它]^c^c(@:layer-off-other);
[冻结其它]^c^c(@:layer-frozen-other);
[锁定其它]^c^c(@:layer-lock-other);
[解锁全部]^c^c(@:layer-unlock);
[解冻全部]^c^c(@:layer-thaw);
[<-图层全开]^c^clayon;

insufficient 发表于 2021-1-20 11:23:48

假设你要创建的菜单名为“长风”:
1、编写一个mnl文件,命名为“CF.mnl”,内容如下:
(setvar "CMDECHO" 0)
(setq oldacad (getenv "ACAD"))         
(setq path "C:\\CF")         ;你的所有文件放到C盘根目录CF文件夹内
(setenv "ACAD" (strcat oldacad ";" path))      ;这两句将文件目录加入CAD支持目录中

(load "CF.VLX")    ;这一句加载你的lsp文件
(princ "长风程序已成功加载\n")

2、编写一个mnu文件,命名为CF.mnu,内容如下:
***MENUGROUP=CF

***POP1
[长风工具]
[功能1]^C^Caaaa
[功能2]^C^Cbbbb
[功能3]^C^Cdddd
[功能4]^C^Ceeee
[功能5]^C^Cffff

上面内容中,“长风工具”就是菜单名,功能1234就是每一个选项的名称aaaabbbbcccc就是对应功能的lsp命令。
3、将CF.mnl、CF.mnu、CF.vlx放在C盘CF文件夹内
4、CAD内输入menuload加载CF.mnu
5、试试看

hhh454 发表于 2021-1-6 21:18:58

牢固版主写过一个,可以找一下

1165617649 发表于 2021-1-5 23:48:51

这个简单

vitalgg 发表于 2021-1-6 19:28:04

就是创建一个 菜单文件。然后加载到CAD中。

推荐一下我的程序 访问 atlisp.cn
你写一个lisp 文件 , 文件里写几个菜单函数就可以了,不知道下面的内容,能不能看明白。

* 菜单相关函数
@lisp 可以在安装时生成相应的菜单。目前 所有的功能菜单均集中于 @lisp(A) 中。

@:add-menu 函数用于生成菜单。

格式如下:

(@:add-menu "子菜单" "功能名称" "(功能函数)")
(defun 功能函数 ()
   ...
)
示例(无参数):

(@:add-menu "大绘图" "附着签名" "(@:attach-sign)")
(defun @:attach-sign ( )
   ...
)
示例(有参数):

(@:add-menu "大绘图" "插入图框" "(@:insert-tukuang \"tukuang.dwg\" @:*tukuang*)")
(@:add-menu "变更及工程处理" "变更" "(@:insert-tukuang \"bg-tukuang.dwg\" @:*bg-tukuang*)")
(@:add-menu "变更及工程处理" "处理方案" "(@:insert-tukuang \"fa-tukuang.dwg\" @:*fa-tukuang*)")

(defun @:insert-tukuang (tk-file tk-dwg)
...)

趣意人生 发表于 2021-1-20 00:02:58

做个记号!好好学习!

注册 发表于 2021-5-22 08:06:14

页: [1] 2
查看完整版本: 如何创建菜单工具并执行LSP里的命令