明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2447|回复: 10

[源码] 删除块内指定图元

  [复制链接]
发表于 2018-9-29 08:23:08 | 显示全部楼层 |阅读模式
本帖最后由 fangmin723 于 2021-12-3 08:03 编辑

  1. ;;忘霄(702099480)-2018.9.28
  2. ;;说明:删除块内指定图元
  3. ;;参数:ent:块的图元名
  4. ;;参数:ObjectName:图元objectname;
  5. ;(del-ent-in-blk ent "AcDbAttribute")
  6. ;;常用的有:
  7. ;;;直线.AcDbLine
  8. ;;;构造线.AcDbXline
  9. ;;;多段线(多边形/矩形).AcDbPolyline
  10. ;;;圆.AcDbCircle
  11. ;;;圆弧.AcDbArc
  12. ;;;样条曲线.AcDbSpline
  13. ;;;椭圆(弧).AcDbEllipse
  14. ;;;点.AcDbPoint
  15. ;;;文字.AcDbText
  16. ;;;多行文字.AcDbMText
  17. ;;;块属性.AcDbAttribute
  18. ;;;转角标注.AcDbRotatedDimension
  19. ;;;对齐标注.AcDbAlignedDimension

  20. ;;;获取图元ObjectName:(Vlax-Get (Vlax-Ename->Vla-Object (car (entsel))) 'ObjectName)
  21. (defun del-ent-in-blk(ent objname / blk_name blkobj lst)
  22.   (if (and ent (= (cdr (assoc 0 (entget ent))) "INSERT"))
  23.     (if (and
  24.           (= objname "AcDbAttribute")
  25.           (setq lst (vlax-safearray->list
  26.                       (vlax-variant-value
  27.                         (vla-GetAttributes (vlax-ename->vla-object ent))
  28.                       )
  29.                     )
  30.           )
  31.         )
  32.       (foreach x lst (vla-Delete x));删除块内所有定义属性
  33.       (progn
  34.         (setq blk_name (cdr (assoc 2 (entget ent))))
  35.         (vlax-for item (setq blkobj (vlax-invoke-method (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object))) 'Item blk_name))
  36.           (if (= (vla-get-ObjectName item) objname) (vla-Delete item))
  37.         )
  38.         (entupd ent)
  39.       );删除块内除定义属性外指定图元名的图元
  40.     )
  41.     (princ "图元不是块或没有选择图块!")
  42.   )
  43.   (prin1)
  44. )








评分

参与人数 1明经币 +1 收起 理由
革天明 + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-9-30 15:58:49 | 显示全部楼层
谢谢楼主分享
发表于 2018-11-8 01:52:36 来自手机 | 显示全部楼层
可以删除参照里的吗
 楼主| 发表于 2018-11-8 07:48:13 | 显示全部楼层

没有研究过,不过你可以试试
发表于 2021-11-24 19:53:11 | 显示全部楼层
可以多选吗
 楼主| 发表于 2021-11-25 07:43:31 | 显示全部楼层

稍作修改就可以
发表于 2021-12-2 21:12:43 | 显示全部楼层
本帖最后由 alexmai 于 2021-12-2 21:14 编辑

希望能添加上,删除块内 所有尺寸 的功能 AcDbRotatedDimension
 楼主| 发表于 2021-12-3 08:04:00 | 显示全部楼层
alexmai 发表于 2021-12-2 21:12
希望能添加上,删除块内 所有尺寸 的功能 AcDbRotatedDimension

谢谢建议,已添加转角标注和对齐标注
发表于 2021-12-4 19:00:27 | 显示全部楼层
我还看不到版主的帖子,发帖数不够,要加油啊
发表于 2024-9-9 19:44:02 来自手机 | 显示全部楼层
谢谢分享,很实用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-3-12 10:24 , Processed in 0.270976 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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