|
发表于 2004-8-24 11:23:00
|
显示全部楼层
老大,我的经验是extend不可行,fillet可行参考程序:设定距离内,线段延伸或截断[code]
(defun exztempl2 () (setq i 0)
(repeat (sslength ss)
(setq ename (ssname ss i))
(setq endata (entget ename))
(setq enlay (cdr (assoc 8 endata)))
(setq p1 (cdr (assoc 10 endata)))
(setq p2 (cdr (assoc 11 endata)))
(setq j 0)
(setq dtmin nil)
(repeat (- (sslength ss) 0)
(setq eename (ssname ss j))
(setq eedata (entget eename))
(setq eenlay (cdr (assoc 8 eedata)))
(setq p3 (cdr (assoc 10 eedata)))
(setq p4 (cdr (assoc 11 eedata)))
(if (and (/= i j) (= enlay eenlay))
(progn
(setq px (inters p1 p2 p3 p4))
(setq px2 (inters p1 p2 p3 p4 nil)) (if (/= px nil)
(progn
(setq dt1 (distance p3 px))
(setq dt2 (distance p4 px))
(setq dtmin (min dt1 dt2))
(if (and ( dt1 dt2)
(command "trim" ename "" p4 "")
(command "trim" ename "" p3 "")
)
)
)
)
) (if (and (= px nil) (/= px2 nil)) ;不平行,有延伸交点
(progn
(setq px (inters p1 p2 p3 p4 nil))
(setq pxx (inters p3 px p1 p2))
(if (/= pxx nil) ;有延伸交点在P12线上
(progn
(setq dt1 (distance p3 pxx))
(setq dt2 (distance p4 pxx))
(setq dtmin (min dt1 dt2))
(if (
v3421qhcuva.bmp
|
|