refedit传参
(defun REF (E /)(if
(= (cdr (assoc 0 (entget e))) "INSERT")
(progn
(setvar "PICKFIRST" 1)
(sssetfirst NIL (ssadd E))
(command-s "-refedit" "o" "A" "y")
)
)
)
;;
这个不太好吧,你这样就少了点击块中块编辑的能力了.
;;;name:
;;;desc:在位编辑块,或保存图块
;;;arg:
;;;return:
;;;example:
(defun c:BF-Edit()
(princ "\n****{惊惊连盒}-BF-Refedit-在位编辑块/在位保存块")
(if (= (getvar 'blockeditor) 1);打开了块编辑器
(*cmdf* "_.bclose")
(if (= (getvar "refeditname") "");显示正在编辑的参照名称
(*cmdf* "_.refedit");直接点选可以有嵌套层次
(*cmdf* "_.refclose" "s")
)
)
(princ)
)
没有看懂 但是打卡 你有种再说一遍 发表于 2025-9-1 11:04
这个不太好吧,你这样就少了点击块中块编辑的能力了.
真不错,我想了半年了也没有实现,得来还是费工夫 chenlianghuai 发表于 2025-9-1 12:14
真不错,我想了半年了也没有实现,得来还是费工夫
劝大家学C#多了,大家就忘记我的Lisp经验也是十分老练.
压缩命令的参照面板更好玩,需要上C#和用spy++找面板.
https://www.cnblogs.com/JJBox/p/10367110.html (defun c:red ( / blockedit reft)
(setq blockedit (getvar 'blockeditor)); 检查块编辑器状态 (0=关闭, 1=打开)
(setq reft (getvar 'refeditname)) ; 检查参照编辑状态 (空字符串=未编辑)
(cond
((= blockedit 1) ; 条件1: 块编辑器打开
(command "bclose" "s") ; 保存并关闭块编辑器
(command "refedit") ; 启动参照编辑
)
((/= reft "") ; 条件2: 参照编辑已打开
(command "refclose" "s") ; 保存并关闭参照编辑
(command "refedit") ; 重新启动参照编辑
)
(T ; 默认条件: 无编辑状态
(command "refedit") ; 直接启动参照编辑
)
)
(prin1)
) 你有种再说一遍 发表于 2025-9-1 11:04
这个不太好吧,你这样就少了点击块中块编辑的能力了.
命令: BF-Edit
****{惊惊连盒}-BF-Refedit-在位编辑块/在位保存块参数类型错误: lentityp nil
你有种再说一遍 发表于 2025-9-1 11:04
这个不太好吧,你这样就少了点击块中块编辑的能力了.
传参数为块,那就没有必要块中块,因为块已经指明了。
除非传参为点,可以nentselp判断是否有块中块并提示用户选择要编辑的层级。
不过不确定块中块是否能直接在位编辑,毕竟nentselp点到的图元在块定义中并不在当前空间,要在位编辑恐怕还得临时创建副本来编辑。 kozmosovia 发表于 2025-10-31 16:09
传参数为块,那就没有必要块中块,因为块已经指明了。
除非传参为点,可以nentselp判断是否有块中块并提 ...
可以直接点击块中块的,当时我就是传了ssget然后发现不能块中块,和我过往的习惯不一样,然后改回来直接调用命令了.
然后那时候我甚至还不懂"在位编辑"原理. 好代码:lol
页:
[1]