yaojing38 发表于 2025-9-1 10:59:14

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")
      )
    )
)
;;

你有种再说一遍 发表于 2025-9-1 11:04:43

这个不太好吧,你这样就少了点击块中块编辑的能力了.
;;;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)
)

qifeifei 发表于 2025-9-1 11:15:28

没有看懂 但是打卡

chenlianghuai 发表于 2025-9-1 12:14:13

你有种再说一遍 发表于 2025-9-1 11:04
这个不太好吧,你这样就少了点击块中块编辑的能力了.

真不错,我想了半年了也没有实现,得来还是费工夫

你有种再说一遍 发表于 2025-9-1 13:13:09

chenlianghuai 发表于 2025-9-1 12:14
真不错,我想了半年了也没有实现,得来还是费工夫

劝大家学C#多了,大家就忘记我的Lisp经验也是十分老练.
压缩命令的参照面板更好玩,需要上C#和用spy++找面板.
https://www.cnblogs.com/JJBox/p/10367110.html

q469541866 发表于 2025-9-1 17:46:37

(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)
)

xotoo 发表于 2025-10-31 15:54:45

你有种再说一遍 发表于 2025-9-1 11:04
这个不太好吧,你这样就少了点击块中块编辑的能力了.
命令: BF-Edit
****{惊惊连盒}-BF-Refedit-在位编辑块/在位保存块参数类型错误: lentityp nil

kozmosovia 发表于 2025-10-31 16:09:16

你有种再说一遍 发表于 2025-9-1 11:04
这个不太好吧,你这样就少了点击块中块编辑的能力了.

传参数为块,那就没有必要块中块,因为块已经指明了。
除非传参为点,可以nentselp判断是否有块中块并提示用户选择要编辑的层级。
不过不确定块中块是否能直接在位编辑,毕竟nentselp点到的图元在块定义中并不在当前空间,要在位编辑恐怕还得临时创建副本来编辑。

你有种再说一遍 发表于 2025-11-1 17:43:29

kozmosovia 发表于 2025-10-31 16:09
传参数为块,那就没有必要块中块,因为块已经指明了。
除非传参为点,可以nentselp判断是否有块中块并提 ...

可以直接点击块中块的,当时我就是传了ssget然后发现不能块中块,和我过往的习惯不一样,然后改回来直接调用命令了.
然后那时候我甚至还不懂"在位编辑"原理.

迷失1786 发表于 2025-11-21 16:03:50

好代码:lol
页: [1]
查看完整版本: refedit传参