 - (defun c:tt5 (/ pt1 pt2 ss i db1 db2 )
- (vl-load-com)
- (setq pt1 (getpoint)
- pt2 (getpoint pt1)
- )
- (setq ss (ssget "f" (list pt1 pt2) '((0 . "lwpolyline,line"))))
- (if (= "line" (cdr (assoc (entget (ssname ss 0)))))
- (setq db1 (ssname ss 0))
- (setq db1 (z:lwithpl pt1 pt2 (ssname ss 0)))
- )
- (if (= "line" (cdr (assoc (entget (ssname ss 1)))))
- (setq db2 (ssname ss 1))
- (setq db2 (z:lwithpl pt1 pt2 (ssname ss 1)))
- )
- (command "fillet" db1 db2)
- (princ)
- )
- ;===================================================================
- (defun z:plinexy (e / a q m p)
- ;;;LWPolyline,POLYLINE顶点,去掉完全重合点
- (setq a (vlax-ename->vla-object e)
- q (vlax-safearray->list
- (vlax-variant-value (vla-get-Coordinates a))
- )
- m (vla-get-objectname a)
- a 0
- m (if (= m "AcDb3dPolyline")
- 3
- 2
- )
- )
- (repeat (/ (length q) m)
- (cond ((= m 2) (setq p1 (list (nth a q) (nth (+ a 1) q))))
- ((= m 3)
- (setq p1 (list (nth a q) (nth (+ a 1) q) (nth (+ a 2) q)))
- )
- )
- (setq p (if (member p1 p)
- p
- (append p (list p1))
- )
- a (+ a m)
- )
- )
- p
- )
- ;;;;;;获取多段线与直线的交点,返回双元素表(图元名 交点)
- (defun z:lwithpl (pt1 pt2 en / ptlst jd n result)
- (setq ptlst (z:plinexy en))
- (setq n (length ptlst)
- i 0
- )
- (repeat (1- n)
- (if (setq jd (inters pt1 pt2 (nth i ptlst) (nth (1+ i) ptlst) t))
- (progn
- (setq result (list en jd))
- )
- )
- (setq i (1+ i))
- )
- result
- )
|