这是我写的代码~~关键地方不知道怎么处理了
 - (defun START();块处理后
- (setq ss (ssget "x"))
- (setq maxidx (sslength ss) idx 1)
- (while
- (<= idx maxidx)
- (setq ename (ssname ss (- idx 1)))
- (setq obj (vlax-ename->vla-object ename))
- (if (= (vlax-get-property obj "ObjectName") "AcDbBlockReference") (搞块 obj))
- (setq idx (1+ idx))
- )
- (princ)
- )
- (defun 搞块(insertobj);//对不同的块,需做不同的修改
- (princ "B---->")(princ insertobj)
- (setq blockname (vlax-get-property insertobj "Name"))
- (setq blocks (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
- (setq blockobj (vlax-ename->vla-object (tblobjname "BLOCK" blockname)))
- ;;;;;;;;;;;;;;;;;;;;;;
- (vlax-for x (vla-item blocks blockname)
- (if (= (vlax-get-property obj "ObjectName") "CIRCLE") (vla-delete obj));删除圆
- (if (= (vlax-get-property obj "ObjectName") "HATCH") (vla-delete obj));删除圆的填充
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;删完了,这里怎么添加矩形或者直线……?用Vla函数的
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- )
|