86023383 发表于 2013-7-26 13:06:13

那个高手朋友能帮我看看吗?块的问题(高手在民间)

哪个高手帮忙看看,谢谢高手了。
例如:我想在进入图纸的时候 自动搜索 哪个块里面包含有文字 Tekla structures,搜索到后删除这个块.
请问问 有办法可以实现吗????急 谢谢高手了!跪求!

86023383 发表于 2013-7-26 14:11:08

(defun c:scc ()
(setvar "CMDECHO" 0)
(setq ss (ssget '((0 . "INSERT"))))
(foreach x (sstolst ss)
    (progn
      (setq ename-lst (blk-name-lst x))
      (if (vl-remove-if-not
          '(lambda (y) (= (dxf 1 (cadr y)) "Tekla structures"))
          ename-lst
          )
        (vla-delete (vlax-ename->vla-object x))
      )
    )
)
(prin1)
)
;;;选择集转图元名列表
(defun sstolst (ss)
(vl-remove-if-not
    '(lambda (x) (equal (type x) 'ename))
    (mapcar 'cadr (ssnamex ss))
)
)
;;; 取dxf组码
(defun dxf (g e)
(cond
    ((= (type e) 'ename) (cdr (assoc g (entget e))))
    ((= (type e) 'list) (cdr (assoc g e)))
)
)
;;;取无名快中对象名称图元名列表
(defun blk-name-lst (blk / enext entNames)
(setq        enext
       (cdr
           (assoc
             -2
             (tblSearch
             "block"
             (dxf 2 (entget blk))
             )
           )
       )
)
(while enext
    (setq entNames
           (cons (list (dxf 0 (entget enext)) enext)
               entNames
           )
    )
    (setq enext (entnext enext))
)
(reverse entNames)
)

あゆみ 发表于 2013-7-26 14:18:39

好厉害,虽然看不太懂。学习下。
页: [1]
查看完整版本: 那个高手朋友能帮我看看吗?块的问题(高手在民间)