Lee Mac 的代码真的是。。。难
对照代码都没法消化,比如随便摘一段Lee Mac的函数中的代码。
 - (setq
- ent (entget ent)
- lst (_vertices ent)
- lst (apply 'mapcar
- (cons
- (function
- (lambda ( a b )
- (
- (lambda ( c )
- (mapcar
- (function
- (lambda ( d )
- (mapcar
- (function
- (lambda ( e f )
- (mapcar 'd (car e)
- (mapcar
- (function
- (lambda ( g ) (* g (/ f 2.0)))
- )
- c
- )
- )
- )
- )
- (list a b) (cdr a)
- )
- )
- )
- (list + -)
- )
- )
- (
- (lambda ( v / n )
- (setq v (list (- (cadr v)) (car v) 0.0)
- n (distance '(0. 0.) v)
- )
- (if (equal 0.0 n 1e-14)
- (list 0.0 0.0 0.0)
- (mapcar '/ v (list n n n))
- )
- )
- (mapcar '- (car a) (car b))
- )
- )
- )
- )
- (if (= 1 (logand 1 (cdr (assoc 70 ent))))
- (list
- (cons (last lst) lst)
- (append lst (list (car lst)))
- )
- (list lst (cdr lst))
- )
- )
- )
- lst (
- (lambda ( a )
- (if (zerop (logand 1 (cdr (assoc 70 ent))))
- (append
- (list (mapcar 'car (car lst)))
- a
- (list (mapcar 'cadr (last lst)))
- )
- a
- )
- )
- (apply 'append
- (mapcar
- (function
- (lambda ( a b / c )
- (if
- (setq c
- (apply 'append
- (mapcar
- (function
- (lambda ( d e / f )
- (if (setq f (inters (car d) (cadr d) (car e) (cadr e) nil))
- (list f)
- )
- )
- )
- a b
- )
- )
- )
- (list c)
- )
- )
- )
- lst (cdr lst)
- )
- )
- )
- )
|