本帖最后由 Gu_xl 于 2012-4-19 09:06 编辑
shi 发表于 2012-4-18 21:59 
版主能给个代码吗?本来是用vba写的,只差最后一步move不知道如何做,网上找了一天也没找到答案!lisp还是一 ...  - ;;返回嵌套块选择集
- (defun getnestblock (/ BLOCKS LOOP FILTER SS)
- (setq blocks (vla-get-blocks
- (vla-get-ActiveDocument (vlax-get-acad-object))
- )
- )
- (vlax-for blkdef blocks
- (if (not
- (or (= "*Model_Space" (vla-get-name blkdef))
- (WCMATCH (vla-get-name blkdef) "`*Paper_Space*")
- )
- )
- (progn
- (setq Loop t)
- (vlax-for obj blkdef
- (if (and loop
- (or
- (= "AcDbBlockReference" (vla-get-ObjectName obj))
- (= "AcDbMInsertBlock" (vla-get-ObjectName obj))
- )
- )
- (if filter
- (setq filter (strcat filter "," (vla-get-name blkdef))
- loop nil
- )
- (setq filter (vla-get-name blkdef)
- loop nil
- )
- )
- )
- )
- )
- )
- )
- (if filter
- (setq ss (ssget "x" (list '(0 . "insert") (cons 2 filter))))
- )
- )
|