代码更新[12014年6月]
- (defun c:sns ( / _sortto ss i e dz)
- ;;; pBe Jun2014 ;;;
- [color="blue"](setq dz (getvar 'Dimzin))(setvar 'Dimzin [/color]
- (defun _sortto (str / _roi nstr a b)
- [color="blue"](setq _roi (lambda (v)
- ((if (Eq (type v) 'INT)
- itoa rtos) v)))[/color]
-
- (setq nstr ""
- [color="blue"]str (vl-string-translate "-" "." str)[/color]
- a (vl-sort
- (read
- (strcat
- "("
- (vl-string-translate
- [color="blue"] "ABCDEFGHIJKLMNOPQRSTUVWXYZ,&!@#$%^*()_+=/\\<>{}[]|:;'""
- " "[/color] (Strcase str)
- )
- ")"
- )
- )
- '<
- )
- )
- (while (and (setq b (Car a))
- (> (length a) 2)
- )
- (setq nstr (strcat nstr (_roi b) ", ")
- a (cdr a)
- )
- )
- (if (>= (length a) 2)
- [color="blue"](vl-string-translate "." "-"[/color] (strcat nstr (_roi (car a)) " & " (_roi (cadr a))))
- str)
- )
- (princ "\nSelect TEXT/MTEXT/ATTRIBUTE")
- (if (setq ss (ssget "_:L"
- '((-4 . "<OR") (-4 . "<AND")
- (0 . "INSERT")(2 . "Block Number")
- (-4 . "AND>") (-4 . "<AND")
- (0 . "TEXT,MTEXT") (1 . "#*#")
- (-4 . "AND>")(-4 . "OR>")
- )
- )
- )
- (repeat (setq i (sslength ss))
- (if (eq "AcDbBlockReference"
- (vla-get-ObjectName
- (setq
- e (vlax-ename->vla-object (ssname ss (setq i (1- i))))
- )
- )
- )
- (foreach att (vlax-invoke e 'GetAttributes)
- (if (wcmatch (setq str (vla-get-textstring att))
- [color="blue"] "#*#"[/color]
- )
- (Vla-put-textstring att (_sortto str))
- )
- )
- (vla-put-textstring e (_sortto (vla-get-textstring e)))
- )
- )
- )[color="blue"](setvar 'Dimzin dz)[/color]
- (princ)
- )
|