这很快就写好了,毫无疑问有更好的方法添加分隔符:
- (defun c:fixdim ( / e i s x ) (vl-load-com)
- (if (setq s (ssget "_:L" '((0 . "DIMENSION"))))
- (repeat (setq i (sslength s))
- (setq e (entget (ssname s (setq i (1- i)))) x 0)
- (entmod
- (list (assoc -1 e)
- (cons 1
- (vl-string-left-trim " "
- (vl-list->string
- (reverse
- (apply 'append
- (mapcar
- (function
- (lambda ( c )
- (if (zerop (rem (setq x (1+ x)) 3))
- (list c 32)
- (list c)
- )
- )
- )
- (reverse (vl-string->list (rtos (cdr (assoc 42 e)) 2 0)))
- )
- )
- )
- )
- )
- )
- )
- )
- )
- )
- (princ)
- )
请注意,到目前为止,所有解决方案都使用标注文字替代,因此修改标注时不会更新标注值。
理想情况下,标注样式需要允许数千分隔符选项。 |