明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 36|回复: 0

[源码] 一个简单的lisp命令面板

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式
之前一直使用的是常青藤的命令面板,后来发现不支持cad2026只得放弃。
在坛子内找了很多面板,都有各种问题,不是很如意,主要有以下问题:
1. lisp面板大多设置不方便,分组,命名以及命令分散在文件各处。
2. c++或.net的面板,又担心将来可能因为不更新导致无法继续使用。

花了一天的时候,在ai的帮助下,参考 牛皮工具箱阳羡刚刚好工具箱 写了一个简单的工具箱。

特色如下:
1. 配置方便,正常使用的情况下,所有需要配置的内容均集中在代码前面,不需要挨个修改。
2. 循环生成按钮,牛皮工具箱我甚至没找到如何进行配置,大量的重复代码(总行数7259),让人无处下手。本程序现有代码约350行,实现了核心功能和一些必须的检测(并非拉踩)
3. 支持命令全名、命令别名(pgp文件内配置的)、以及lisp函数命令。不支持额外设置快捷键,需要自行在pgp文件内配置。
4. 最多9个tab,每个tab最多81个按钮,总计最多729的命令(不包含tab切换按钮),允许有空白按钮,方便自定义排序(甚至可以摆个字出来)

截图:


关于配置的主要内容,源码中都有注释,这里简单的说一下。
  1. (setq *wyl:TabNum* 1) ;首次加载时默认的tab
  2. (setq wyl:btn_width " width=15 ;")  ;默认按钮宽度
  3. (defun c:qw() ;命令调用名
  4.   (wyl:main_GEN_MINGLING_PANEL *wyl:TabNum* )
  5. )


  6. ;; === 数据结构示例 ===
  7. (setq wyl:mingling_sonlist1 ; 这是一个tab
  8.   (list "常用编辑" ; tab名
  9.     (list
  10.       ;分别是 行列数 命令显示名 执行内容,其中行列数最大为9,即最大为99,最小为1
  11.       ;行列数可以不连续,也可不按顺序,空出来的会灰显,但是不能重复
  12.       (list 11 "复制" "copy")    ; 用命令全名
  13.       (list 12 "移动" "m")       ; 用快捷键别名 M
  14.       (list 21 "删除" "e")       ; 用快捷键别名 E
  15.       (list 22 "测试" "(print 1)") ;直接调用函数
  16.       (list 34 "测试" "(setq a 1)(print a)")  ;多函数链式调用
  17.       (list 24 "加载并调用" "(load  "D:/_同步文件/lsp/批量图纸编号V3.lsp")(c:ttt)")  ;加载并调用,注意双引号的转义和反斜杠/的使用
  18.       (list 31 "" "1")  ; 命令显示名为空白则无效
  19.       (list 32 "空白" "")  ; 命令执行内容为空,会生成可点击的按钮,但是不会执行任何内容
  20.     )
  21.   )
  22. )

  23. (setq wyl:mingling_sonlist2
  24.   (list "不常用编辑"
  25.     (list
  26.       (list 11 "错误复制" "copy1")
  27.       (list 12 "移动" "m")
  28.       (list 21 "删除" "e")
  29.       (list 23 "错误删除" "ee")
  30.       (list 22 "测试2" "(print 2)")
  31.     )
  32.   )
  33. )

  34. (setq wyl:minglinglist
  35.   (list
  36.     (cons 1 wyl:mingling_sonlist1) ;选项卡编号及内容,同样的,只能在1到9
  37.     (cons 3 wyl:mingling_sonlist2) ;选项卡编号可以不连续,但是顺序不能错,错了以后可能会出现意料之外的错误
  38.   )
  39. )

命令名为qw,沿用了常青腾的设置,如果与常用快捷键冲突,可自行修改。
我其实更多的是使用上面tab1里24的那种调用方式,对于一些不常用的命令,用的时候再加载,也不需要特殊记忆快捷命令。这也是为什么这个面板不支持快捷命令配置的原因。

写的比较仓促,可能有各种问题和优化的空间。


本帖子中包含更多资源

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

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-12 04:19 , Processed in 0.171700 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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