比较两个多义线是否“相同”,包括旋转或者镜像后的- (defun sampl (e1 e2 / getinfo getdis)
- (defun getinfo (lst)
- (vl-remove-if-not
- (function
- (lambda (x) (vl-position (car x) '(39 40 41 42 43)))
- )
- lst
- )
- )
- (defun getdis (e / n m dl)
- (setq n (fix (vlax-curve-getendparam e))
- m 0.
- )
- (repeat n
- (setq dl (cons (vlax-curve-getdistatparam e m) dl)
- m (1+ m)
- )
- )
- dl
- )
- (if (and (= (vlax-curve-getendparam e1) (vlax-curve-getendparam e2))
- (= (vlax-curve-isclosed e1) (vlax-curve-isclosed e2))
- )
- (and (equal (getinfo (entget e1)) (getinfo (entget e2)) 1e-10)
- (equal (getdis e1) (getdis e2) 1e-7)
- )
- )
- )
|