asdhaklwih 发表于 2015-1-9 16:34:39

各位大神帮忙看一下程序哪不对。

(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
)

ZZXXQQ 发表于 2015-1-9 20:22:40

(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]
查看完整版本: 各位大神帮忙看一下程序哪不对。