下面是代码的更统一版本。你有没有想过用字段来表示这个(%)?
- (defun c:foo (/ i n s)
- (cond
- ((null (setq s (ssget "_X" '((0 . "insert") (2 . "dca_stmp") (66 . 1)))))
- (print "Block 'dca_stmp' not found...")
- )
- ((null (setq i (vl-string-position (ascii "-") (setq n (getvar 'dwgname)) 0 t)))
- (print "'-' not found in drawing name...")
- )
- ((foreach b (mapcar 'cadr (ssnamex s))
- (vl-some '(lambda (x)
- (and (= "DCA_NO." (vla-get-tagstring x)) (vla-put-textstring x (substr n 1 i)))
- )
- (vlax-invoke (vlax-ename->vla-object b) 'getattributes)
- )
- )
- )
- )
- (princ)
- )
- (vl-load-com)
附着的是默认设置为“图形名称”的块。
DCA-ABC-123456789-EXXX R0(图纸编号)。图纸 |