删除块内指定图元
本帖最后由 fangmin723 于 2021-12-3 08:03 编辑;;忘霄(702099480)-2018.9.28
;;说明:删除块内指定图元
;;参数:ent:块的图元名
;;参数:ObjectName:图元objectname;
;(del-ent-in-blk ent "AcDbAttribute")
;;常用的有:
;;;直线.AcDbLine
;;;构造线.AcDbXline
;;;多段线(多边形/矩形).AcDbPolyline
;;;圆.AcDbCircle
;;;圆弧.AcDbArc
;;;样条曲线.AcDbSpline
;;;椭圆(弧).AcDbEllipse
;;;点.AcDbPoint
;;;文字.AcDbText
;;;多行文字.AcDbMText
;;;块属性.AcDbAttribute
;;;转角标注.AcDbRotatedDimension
;;;对齐标注.AcDbAlignedDimension
;;;获取图元ObjectName:(Vlax-Get (Vlax-Ename->Vla-Object (car (entsel))) 'ObjectName)
(defun del-ent-in-blk(ent objname / blk_name blkobj lst)
(if (and ent (= (cdr (assoc 0 (entget ent))) "INSERT"))
(if (and
(= objname "AcDbAttribute")
(setq lst (vlax-safearray->list
(vlax-variant-value
(vla-GetAttributes (vlax-ename->vla-object ent))
)
)
)
)
(foreach x lst (vla-Delete x));删除块内所有定义属性
(progn
(setq blk_name (cdr (assoc 2 (entget ent))))
(vlax-for item (setq blkobj (vlax-invoke-method (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object))) 'Item blk_name))
(if (= (vla-get-ObjectName item) objname) (vla-Delete item))
)
(entupd ent)
);删除块内除定义属性外指定图元名的图元
)
(princ "图元不是块或没有选择图块!")
)
(prin1)
)
谢谢楼主分享 可以删除参照里的吗 走走逛逛瞧瞧 发表于 2018-11-8 01:52
可以删除参照里的吗
没有研究过,不过你可以试试 可以多选吗 KO你 发表于 2021-11-24 19:53
可以多选吗
稍作修改就可以 本帖最后由 alexmai 于 2021-12-2 21:14 编辑
希望能添加上,删除块内 所有尺寸 的功能 AcDbRotatedDimension alexmai 发表于 2021-12-2 21:12
希望能添加上,删除块内 所有尺寸 的功能 AcDbRotatedDimension
谢谢建议,已添加转角标注和对齐标注 我还看不到版主的帖子,发帖数不够,要加油啊 谢谢分享,很实用
页:
[1]
2