嗨,李需要第二个部分,把文本复制到另一个层上,结果是
有一点时间。
- ; original code by Lee-mac Aug 2017
- ; changed to only modify 1:x below 1:69
- ; by Alan H Aug 2017
- (defun c:fixratios ( / a b e i p s x ab)
- ; new layer added
- (if (/= (tblsearch "Layer" "Xgrade") nil)
- (setvar 'clayer "Grade2")
- (command "-layer" "m" "Xgrade" "c" 10 "Xgrade" "")
- )
- (if (setq s (ssget "_:L" '((0 . "TEXT")(1 . "#*:#*")(1 . "~*[~.:0-9]*")(1 . "~**"))))
- (repeat (setq i (sslength s))
- (setq e (vlax-ename->vla-object (ssname s (setq i (1- i)))))
- (setq x (vla-get-textstring e))
- (setq p (vl-string-position 58 x))
- (if (and
- (setq a (distof (substr x 1 p) 2))
- (setq b (distof (substr x (+ 2 p)) 2))
- (not (equal 0.0 b 1e-)
- (< (setq ab (/ a b)) (/ 1.0 69.0))
- )
- (progn
- (vla-put-textstring e (rtos ab 2 3))
- (vla-put-layer e "Xgrade")
- )
- )
- )
- )
- (princ)
- )
|