明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2482|回复: 10

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

[复制链接]
发表于 2021-1-5 14:45:34 | 显示全部楼层 |阅读模式
各位大神,靖问如何创建一个菜单下拉工具并执行已加载的LSP文件里的各个命令?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-1-8 20:19:11 | 显示全部楼层
好东西,mark
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2021-1-6 17:28:38 | 显示全部楼层
vitalgg 发表于 2021-1-6 15:47
不知道你说的是不是做一个菜单,菜单的命令可以是lisp命令,加上括号就行了。如下:

[->工程管理]

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

使用道具 举报

发表于 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;
回复 支持 0 反对 1

使用道具 举报

发表于 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就是每一个选项的名称  aaaa  bbbb  cccc就是对应功能的lsp命令。
3、将CF.mnl、CF.mnu、CF.vlx放在C盘CF文件夹内
4、CAD内输入menuload加载CF.mnu
5、试试看
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-6 21:18:58 | 显示全部楼层
牢固版主写过一个,可以找一下
回复 支持 0 反对 1

使用道具 举报

发表于 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 来自手机 | 显示全部楼层
做个记号!好好学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 01:53 , Processed in 0.184106 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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