能不能将这个改成亮显,读代码能力实在太差了。只能看懂小部分。真抱歉又要麻烦您了。- (defun c:tt ( / dis l len mnd mxd t0 tol un x)
- (setq tol 0.000001) ; 精度
- (setq dis 100) ; 长度
- (setq mxd (+ dis tol)) ; 最大长度
- (setq mnd (- dis tol)) ; 最小长度
- (and
- (setq un (vl-catch-all-apply 'ssget '(((0 . "LINE")))))
- (vl-catch-all-error-p un)
- (setq un nil)
- ) ; 获取选择集
- ;(setq t0 (* 86400 (getvar "TDUSRTIMER"))) ; 选择完成进入耗时
- (and un
- (repeat (setq len (sslength un))
- (setq l (cons (ssname un (setq len (1- len))) l))
- )
- ) ; 获取图元表
- (setq un nil) ; 清空选择集
- (setq l (vl-remove-if-not '(lambda (x) (setq x (entget x)) (setq x (distance (cdr (assoc 10 x)) (cdr (assoc 11 x))))
- (and (< x mxd) (> x mnd) ) ) l ) )
- ;(setq t0 (- (* 86400 (getvar "TDUSRTIMER")) t0))
- ;(prompt (strcat "\n过滤耗时 " (rtos t0 2 3) " 秒"))
- (foreach x l
- (redraw x 3)
- )
- (princ)
- )
|