本帖最后由 llsheng_73 于 2015-2-3 16:40 编辑
 - (defun c:tt(/ ss e p p1 p2)
- (while(setq ss(ssget":S"'((0 . "line,*polyline"))))
- (sssetfirst nil ss)
- (princ"\n点选与已选线段求交点的直线或者多线段")
- (while(<(sslength ss)2)
- (if(member(cdr(assoc 0(entget(setq e(car(entsel))))))'("LINE""LWPOLYLINE""POLYLINE"))
- (setq ss(ssadd e ss))))
- (sssetfirst nil ss)
- (setq p(vlax-safearray->list(vlax-variant-value(vla-IntersectWith(vlax-ename->vla-object(ssname ss 0))(vlax-ename->vla-object(ssname ss 1))3)))
- p1(cdar(vl-sort(mapcar'(lambda(x)(cons(distance x p)x))(list(vlax-curve-getstartpoint(ssname ss 0))(vlax-curve-getendpoint(ssname ss 0))))
- '(lambda(x y)(>(car x)(car y)))))
- p2(cdar(vl-sort(mapcar'(lambda(x)(cons(distance x p)x))(list(vlax-curve-getstartpoint(ssname ss 1))(vlax-curve-getendpoint(ssname ss 1))))
- '(lambda(x y)(>(car x)(car y))))))
- (entdel(ssname ss 0))
- (entdel(ssname ss 1))
- (entmakex(list'(0 . "line")(cons 10 p1)(cons 11 p)))
- (entmakex(list'(0 . "line")(cons 10 p2)(cons 11 p)))
- )
- (princ))
|