明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1167|回复: 2

删除层内对象

[复制链接]
发表于 2022-11-12 13:38:51 | 显示全部楼层 |阅读模式
本帖最后由 kucha007 于 2023-12-19 12:13 编辑

最近接触到的几种删除对象的方法,这里以删除层内对象为例,分享给大家,也欢迎大佬补充完善。


01-首先,我们得有一个选择集:
  1. (setq ss (ssget "_x" (list '(8 . "0"))));选中0图层的所有对象
02-解锁图层,避免对象锁定无法删除
  1.     (setq LayObj (vlax-ename->vla-object (tblobjname "LAYER" "0")))  
  2.     ;(vla-put-layeron  LayObj :vlax-true);打开
  3.     (vla-put-lock  LayObj :vlax-false);解锁
  4.     ;(vla-put-freeze  LayObj :vlax-false);解冻

注意:注释掉的部分可以相互替换

方法一:command / vl-cmdf
  1. (command "_ERASE" ss "")
  2. ;(vl-cmdf "_ERASE" ss "")
方法二:entdel / Vla
  1. (repeat (setq i (sslength ss))
  2.   (entdel (ssname ss (setq i (1- i))))
  3.   ;(vla-erase (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
  4.   ;(vla-delete (vlax-ename->vla-object (ssname ss (setq i (1- i)))))
  5. )
方法二扩展:repeat也可以用while代替
  1. (setq i (sslength ss))
  2. (while (setq en (ssname ss (setq i (1- i))))
  3.   (entdel en )
  4.   ;(vla-erase (vlax-ename->vla-object en))
  5.   ;(vla-delete (vlax-ename->vla-object en))
  6. )


发表于 2022-11-13 01:29:15 | 显示全部楼层
感谢大佬分享,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 06:27 , Processed in 0.146452 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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