;;不好意思,没看你的代码.就是我的简单思路.... - (defun dpl (e)
- (mapcar 'cdr(vl-remove-if-not '(lambda (x) (= (car x) 10))(entget e)))
- )
- (defun mid (p1 p2)
- (mapcar '* '(0.5 0.5 0.5) (mapcar '+ p1 p2))
- )
- (defun pt2per (pt e)
- (if (and pt e)
- (vlax-curve-getclosestpointto (vlax-ename->vla-object e) pt t)
- )
- )
- (defun c:tt ( / a al b bl cl dl x y)
- (while (setq a (car (entsel))
- b (car (entsel))
- al (dpl a)
- bl (dpl b)
- )
- (if (> (length al) (length bl))
- (setq cl (mapcar '(lambda(x) (pt2per x b)) al)
- dl (mapcar '(lambda(x y) (mid x y)) al cl)
- )
- (setq cl (mapcar '(lambda(x) (pt2per x a)) bl)
- dl (mapcar '(lambda(x y) (mid x y)) bl cl)
- )
- )
- (xyp-pline dl nil)
- )
- )
|