本帖最后由 vectra 于 2014-10-23 20:02 编辑
 - (defun get-block-names (/ blocks doc dxf rt)
- (setq doc (vla-get-activedocument (vlax-get-acad-object))
- blocks (vla-get-blocks doc)
- )
- (vlax-for block blocks
- (if (= :vlax-false (vla-get-islayout block))
- (vlax-for ent block
- (setq dxf (entget (vlax-vla-object->ename ent) '("YOUSETSU_KAKOU"))
- dxf (cdr (assoc -3 dxf))
- )
- (if (and dxf
- (vl-string-search "K" (cdr (cadar dxf)))
- (not (member (vla-get-name block) rt))
- )
- (setq rt (cons (vla-get-name block) rt))
- )
- )
- )
- )
- rt
- )
- (defun concrete (lst / rt)
- (setq rt (car lst)
- lst (cdr lst)
- )
- (while lst
- (setq rt (strcat rt "," (car lst))
- lst (cdr lst)
- )
- )
- rt
- )
- ;;;_$ (concrete '("2" "1" "1"))
- ;;;"2,1,1"
- (defun c:k3 (/ names ss)
- (setq names (get-block-names))
- (if names
- (progn
- (setq names (concrete names)
- ss (ssget "X" (list '(0 . "INSERT") (cons 2 names)))
- )
- (sssetfirst nil ss)
- )
- )
- )
|