各位大神帮忙看一下程序哪不对。
(defun c:tt5 (/ pt1 pt2 ss i db1 db2 )(vl-load-com)
(setqpt1 (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顶点,去掉完全重合点
(setqa (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))
(setqn (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
)
(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"))))
(setq db1 (ssname ss 0))
(if (= "LINE" (cdr(assoc(entget db1))))
(setq db1 (z:lwithpl pt1 pt2 db1))
)
(setq db2 (ssname ss 1))
(if (= "LINE" (cdr(assoc(entget db2))))
(setq db2 (z:lwithpl pt1 pt2 db2))
)
(command "_.fillet" db1 db2)
(princ)
)
页:
[1]