muai2010
发表于 2024-7-31 12:32:48
本帖最后由 muai2010 于 2024-8-1 10:47 编辑
lostbalance 发表于 2024-7-22 13:27
可以的,你找到对应的按钮,然后再前面添加文字元件就行。
比如以下就是帮助的按钮
(setq dcl-str (str ...
1、按钮不能通过系统自带命令,比如这个按钮是画直线,不能直接(if (= ctl 120) (circle))
ps:此部分这么修改会导致上面多层按钮 如 main 失效,可以不改
((boundp (read cmd))
;(princ "\n")
;(eval (read (strcat "(" cmd ")")))
(Vlax-Invoke-Method *DOCA* 'SendCommand (strcat "(" cmd ")" " "))
)
lostbalance
发表于 2024-8-2 23:43:38
muai2010 发表于 2024-7-31 12:32
1、按钮不能通过系统自带命令,比如这个按钮是画直线,不能直接(if (= ctl 120) (circle))
手头的电脑没AutoCAD,不能验证。
系统自带的命令,不能当函数处理,所以不能直接用括号加命令名,用在cmd前加command,用command去转一手。
不过,如果是作为面板特殊按钮用的话,其实没必要定义cmd,用cond或者if (= ctl 120)判断后,直接用(command "circle")开始执行就好了,特殊按钮没几个,直接指定后面维护也方便。
muai2010
发表于 2024-8-3 22:12:35
lostbalance 发表于 2024-8-2 23:43
手头的电脑没AutoCAD,不能验证。
系统自带的命令,不能当函数处理,所以不能直接用括号加命令名,用在c ...
基本弄好,后面打算用这个面板来用,上面黄色线标注处必须要,不然不显示,但是后面的值可以乱写,哈哈哈
muai2010
发表于 2024-8-19 09:43:07
本帖最后由 muai2010 于 2024-8-19 10:03 编辑
lostbalance 发表于 2024-8-2 23:43
手头的电脑没AutoCAD,不能验证。
系统自带的命令,不能当函数处理,所以不能直接用括号加命令名,用在c ...
大佬。是不是只能单列或者单行,多列外加一个框或者多行外加一个框dcl是不是不能实现?意思如下图,这个面板能实现么
lostbalance
发表于 2024-8-23 17:11:02
muai2010 发表于 2024-8-19 09:43
大佬。是不是只能单列或者单行,多列外加一个框或者多行外加一个框dcl是不是不能实现?意思如下图,这个 ...
时间有点久了,我手头在用的这个面板函数和引用函数都修改过,不好做测试,不过从我写的修改历史来看,应该是可以实现你说的要求的。
以下是我样例中的部分代码,参照红色的代码增加新的子列表就能增加多列或者多行,可以多个子列表
("命令组1"
(
"FUNC1 命令1"
"FUNC2 命令2"
"FUNC3 命令3"
"more-1 =汇总= (&W)"
)
(
"FUNC1x 命令1x"
"FUNC2x 命令2x"
"FUNC3x 命令3x"
)
)
(其他按钮...)
)
muai2010
发表于 2024-8-23 21:11:13
本帖最后由 muai2010 于 2024-8-25 00:48 编辑
lostbalance 发表于 2024-8-23 17:11
时间有点久了,我手头在用的这个面板函数和引用函数都修改过,不好做测试,不过从我写的修改历史来看,应 ...
我试试看看,实在不行笨办法解决,间距用了这个代码,外面包围框下面的边线没有了,这个能不能消除啊
timmy521
发表于 2024-8-24 10:33:06
太多了,不好找。
lostbalance
发表于 2024-8-26 18:04:32
muai2010 发表于 2024-8-23 21:11
我试试看看,实在不行笨办法解决,间距用了这个代码,外面包围框下面的边线没有了,这个能不能消除啊
这个代码没用过,从名称看,是调节间距的,那么边线没有的话,就有可能是因为你把间距值设成了none,也就是0,你可以试试适当放大一些。
从你的面板看,有主面板,还有各个功能区块的分面板,那么,我推荐可以试试我的另一个面板代码。
http://bbs.mjtd.com/thread-177620-1-1.html