试试这个:
- (defun c:Test (/ s lst b l st)
- ;;; Tharwat 30.042015 ;;;
- (princ "\nSelect Dimensions :")
- (if
- (and (setq s (ssget "_:L" '((0 . "*DIMENSION"))))
- (setq st (getstring "\n Specify a value [enter to Exit] :"))
- (princ
- "\nNow select attributed Blocks that titled < statistics >"
- )
- (setq
- b (ssget "_:L" '((0 . "INSERT") (2 . "statistics") (66 . 1)))
- )
- )
- (progn
- (if (and st (/= st ""))
- (setq l (cons st l))
- )
- ((lambda (i / sn e v)
- (while (setq e (ssname s (setq i (1+ i))))
- (if (/= (setq v (cdr (assoc 1 (entget e)))) "")
- (setq l (cons v l))
- (setq l (cons (rtos (cdr (assoc 42 (entget e))) 2) l))
- )
- )
- lst
- )
- -1
- )
- (setq
- st (vl-string-right-trim
- "*"
- (apply 'strcat (mapcar '(lambda (o) (strcat o "*")) l))
- )
- )
- ((lambda (x / sn)
- (while (setq sn (ssname b (setq x (1+ x))))
- (mapcar
- '(lambda (a)
- (if (eq (strcase (vla-get-tagstring a)) "DIMENSION")
- (vla-put-textstring a st)
- )
- )
- (vlax-invoke (vlax-ename->vla-object sn) 'getattributes)
- )
- )
- )
- -1
- )
- )
- )
- (princ)
- )(vl-load-com)
|