明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 614|回复: 8

[提问] 有办法判断块是否被xclip裁切过吗?

[复制链接]
发表于 2025-10-30 17:02:42 | 显示全部楼层 |阅读模式
有办法判断块是否被xclip裁切过吗?
回复

使用道具 举报

发表于 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)
)
回复 支持 反对

使用道具 举报

发表于 2025-10-30 20:33:01 | 显示全部楼层
有         
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-10-30 22:11:25 | 显示全部楼层
chen3732088 发表于 2025-10-30 18:03
判断块是否存在102组码
(defun c:tt2 ()
  (setq ss (ssget '((0 . "INSERT"))))

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

使用道具 举报

发表于 2025-10-31 08:53:27 | 显示全部楼层
G版  曾经写过这个代码   自己搜下
回复 支持 反对

使用道具 举报

发表于 2025-10-31 09:05:44 | 显示全部楼层
  1. ;;判断图元是否为剪裁块
  2. (defun IsXClip (en2 / xdict)
  3.   (if (setq xdict (cdr (assoc 360 (entget en2))))
  4.     (IsXClip xdict)
  5.     (if
  6.       (and (eq "SPATIAL_FILTER" (cdr (assoc 0 (setq en2 (entget en2)))))
  7.          (eq 1 (cdr (assoc 71 en2)))
  8.       )
  9.       en2
  10.     )
  11.   )
  12. )

回复 支持 反对

使用道具 举报

发表于 2025-10-31 12:56:03 | 显示全部楼层
少了,挨个点一下,看有没有裁剪框,多了就得代码了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-10-31 12:56:16 | 显示全部楼层

这个方法可以识别,提取扩展名,数据在扩展立面。
回复 支持 反对

使用道具 举报

发表于 2025-10-31 16:45:58 | 显示全部楼层
(command-s "._XCLIP" blkref "" "_N" "Y" "_S" boundary_obj "")
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-11-29 12:55 , Processed in 0.248229 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表