lostbalance
发表于 2022-12-23 11:26:50
注册 发表于 2022-12-18 08:26
试过了,貌似没用
之前第二句少了个右括号,补上再试试。
(setq title0 (strcat "阳羡刚刚好CAD工具箱 V20221212 " datestr))
ps,把四行代码都复制,直接个括号,论坛认为是重复发帖,发不了:L
注册
发表于 2022-12-23 13:02:33
lostbalance 发表于 2022-12-23 11:26
之前第二句少了个右括号,补上再试试。
(setq title0 (strcat "阳羡刚刚好CAD工具箱 V20221212 " date ...
;通用定义
(setq datestr (menucmd "m=$(edtime,$(getvar,date),YYYY年M月D日 HH:MM:SS DDD)"))
(setq title0 (strcat "阳羡刚刚好CAD工具箱 V20221212 " datestr))
(setq msg
(strcat
"\n EDIT BY 阳羡刚刚好" datestr
)
)
(setq switch "main 主板(&Z)")
貌似还是不行,还是谢谢你了
注册
发表于 2022-12-23 13:04:59
lostbalance 发表于 2022-12-23 11:26
之前第二句少了个右括号,补上再试试。
(setq title0 (strcat "阳羡刚刚好CAD工具箱 V20221212 " date ...
可以了,第2句那里有个错字,修改一下就可以了
注册
发表于 2022-12-23 13:35:13
lostbalance 发表于 2022-12-23 11:26
之前第二句少了个右括号,补上再试试。
(setq title0 (strcat "阳羡刚刚好CAD工具箱 V20221212 " date ...
再请教一下,如何实现空格键执行上一个命令,而不是重复打开工具面板?劳烦您了
注册
发表于 2022-12-23 13:43:25
nochao 发表于 2021-5-18 10:02
我找到解决办法了:(vla-sendcommand (vla-get-ActiveDocument (vlax-get-acad-object)) "**\n")
请问具体如何表达在源码中啊,后面的两个星号对吗?
lostbalance
发表于 2022-12-30 22:32:52
注册 发表于 2022-12-23 13:35
再请教一下,如何实现空格键执行上一个命令,而不是重复打开工具面板?劳烦您了
论坛逛的不勤快。以下是我目前自用的调整后的代码,就是最后面的cond判断执行,由原来的read改成了Vlax-Invoke-Method,我也是抄别人的,感觉后者是模拟了键盘输入命令名的操作,CAD记录下的上一步操作是你后来选中的命令,而不是面板命令,所以可以右键重复执行。
(setq *DOC* (vla-get-ActiveDocument (vlax-get-acad-object)));;这个可以放在通用库里,或者放在函数前面,比较常用和通用
(cond ;;新的命令判断方式,代码更短
((boundp (read (strcat "c:" cmd)))
;(princ "\n")
;;使用以下这句,右键重复的命令为面板
;(eval (read (strcat "(c:" cmd ")")))
;;使用以下这句,右键重复的命令为面板启动的程序
(Vlax-Invoke-Method *DOC* 'SendCommand (strcat cmd " "))
;;以下是上一句的两种实现方式
;(Vlax-Invoke-Method (Vlax-Get (Vlax-Get-Acad-Object) 'ActiveDocument) 'SendCommand (strcat tt " "))
;(Vlax-Invoke-Method (Vlax-Get-Or-Create-Object "WScript.Shell" ) 'Sendkeys (strcat tt "{Enter}"))
)
((boundp (read cmd))
;(princ "\n")
;(eval (read (strcat "(" cmd ")")))
(Vlax-Invoke-Method *DOC* 'SendCommand (strcat "(" cmd ")" " "))
)
(t
;(princ "\n")
;(vl-cmdf cmd)
(Vlax-Invoke-Method *DOC* 'SendCommand (strcat cmd " "))
)
)
atone
发表于 2024-2-15 10:18:36
好贴必回,加油
muai2010
发表于 2024-7-18 00:47:15
lostbalance 发表于 2022-12-30 22:32
论坛逛的不勤快。以下是我目前自用的调整后的代码,就是最后面的cond判断执行,由原来的read改成了Vlax-I ...
挺好,就是不能再主页、帮助这些按钮前,添加文字,请赐教啊
muai2010
发表于 2024-7-18 13:13:21
注册 发表于 2022-12-10 07:33
如出一辙,异曲同工----
这个不错,可以分享么?:loveliness:
lostbalance
发表于 2024-7-22 13:27:49
muai2010 发表于 2024-7-18 00:47
挺好,就是不能再主页、帮助这些按钮前,添加文字,请赐教啊
可以的,你找到对应的按钮,然后再前面添加文字元件就行。
比如以下就是帮助的按钮
(setq dcl-str (strcat dcl-str "\n:button{ fixed_width = true; width = 4; key = "help"; label = " 帮助 ";}"))
在前面加上
(setq dcl-str (strcat dcl-str "\n:text{ label = "xxxx";}"))
不过要注意类似上面提到的帮助按钮,是嵌套在if里的,你要根据需求考虑怎么添加。