13763815647 发表于 2025-10-30 17:02:42

有办法判断块是否被xclip裁切过吗?

有办法判断块是否被xclip裁切过吗?

chen3732088 发表于 2025-10-30 18:03:32

判断块是否存在102组码
(defun c:tt2 ()
(setq ss (ssget '((0 . "INSERT"))))
    (progn
      (setq i -1
            ss1(ssadd)
      )
      (while (setq e (ssname ss (setq i (1+ i))))
      (if (assoc 102 (entget e))
          (setq ss1 (ssadd e ss1))
      )
      )
      (sssetfirst nil ss1)
    )
(princ)
)

d1742647821 发表于 2025-10-30 20:33:01

有         

13763815647 发表于 2025-10-30 22:11:25

chen3732088 发表于 2025-10-30 18:03
判断块是否存在102组码
(defun c:tt2 ()
(setq ss (ssget '((0 . "INSERT"))))


感谢,这个最早也是这样用的,后来发现,动态块也有102的组码。单独判断102组码没办法区分,裁切块和动态块的区别。会把动态块也当裁切块。我这边已经找到解决办法了。稍后整理下发出来,大家参考下。

guosheyang 发表于 2025-10-31 08:53:27

G版曾经写过这个代码   自己搜下

Bao_lai 发表于 2025-10-31 09:05:44

;;判断图元是否为剪裁块
(defun IsXClip (en2 / xdict)
(if (setq xdict (cdr (assoc 360 (entget en2))))
    (IsXClip xdict)
    (if
      (and (eq "SPATIAL_FILTER" (cdr (assoc 0 (setq en2 (entget en2)))))
         (eq 1 (cdr (assoc 71 en2)))
      )
      en2
    )
)
)

战神凯哥 发表于 2025-10-31 12:56:03

少了,挨个点一下,看有没有裁剪框,多了就得代码了。

13763815647 发表于 2025-10-31 12:56:16

Bao_lai 发表于 2025-10-31 09:05


这个方法可以识别,提取扩展名,数据在扩展立面。

forestgxc 发表于 2025-10-31 16:45:58

(command-s "._XCLIP" blkref "" "_N" "Y" "_S" boundary_obj "")
页: [1]
查看完整版本: 有办法判断块是否被xclip裁切过吗?