马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×

- ;; a-->(1 2 3 4 5 6 7 8)
- ;; (split 2 a)-->((1 2) (3 4) (5 6) (7 8))
- ;; (split 3 a)-->((1 2 3) (4 5 6) (7 8))
- ;;By Aeo From [url]www.xdcad.net[/url]
- (defun lst-split (n li / return a len)
- (while li
- (setq a nil
- len (length li)
- )
- (repeat (if (<= n len)
- n
- len
- )
- (setq a (cons (car li) a)
- li (cdr li)
- )
- )
- (setq return (cons (reverse a) return))
- )
- (reverse return)
- )
- ;; Form [url]www.xdcad.net[/url] eachy 2005.9.21
- ;;获取LightweightPolyline Polyline顶点
- ;;返回值: 顶点列表
- (defun xd-getplvertex (e / n i ptl)
- (setq n (1+ (fix (vlax-curve-getendparam e)))
- i -1
- )
- (repeat n
- (setq ptl (cons (vlax-curve-getpointatparam e (setq i (1+ i))) ptl))
- )
- (reverse ptl)
- )
- (defun c:tt (/ e obj ints n m pts pls)
- (if (setq e (car (entsel)))
- (progn
- (setq obj (vlax-ename->vla-object e))
- (if (setq ints (vla-intersectwith obj obj acextendnone))
- (progn
- (setq n (/
- (1+ (vlax-safearray-get-u-bound
- (setq var (variant-value ints))
- 1
- )
- )
- 3
- )
- m (fix (vlax-curve-getendparam e))
- )
- (if (> n m)
- (progn
- (setq pts (lst-split 3 (safearray-value var))
- pls (xd-getplvertex e)
- )
- (mapcar '(lambda (x) (setq pts (vl-remove x pts))) pls)
- (mapcar '(lambda (x) (command ".point" x)) pts)
- )
- )
- )
- )
- )
- )
- (princ)
- )
|