437271963 发表于 2016-3-8 19:20:59

本帖最后由 437271963 于 2016-3-8 19:31 编辑

(defun c:tes ( / #os1 &k1 &kw1 &ob1 &p1 @p1 @p2)
(if (null vlax-dump-object) (vl-load-com) )
(setq #os1 (getvar "osmode"))
(if (setq &kw1 (ssget '((0 . "LWPOLYLINE"))))
(progn
   (setvar "osmode" 0)
   (while (setq &k1 (ssname &kw1 0))
    (setq &kw1 (ssdel &k1 &kw1) &ob1 (vlax-ename->vla-object &k1))
    (foreach &p1 (list (vlax-curve-getStartPoint &ob1);起点
                     (vlax-curve-getEndPoint &ob1);端点
               )
   (setq @p1 (polar &p1 (* 1.25 pi) (* (expt 2 0.5) 0.5))
         @p2 (polar &p1 (* 0.25 pi) (* (expt 2 0.5) 0.5)))
   (if (< (sslength (ssget "c" @p1 @p2 '((0 . "LINE,LWPOLYLINE")))) 2);如果少于2线
      (entmake (list '(0 . "CIRCLE") '(62 . 1) (cons 10 &p1) '(40 . 50)));绘制红色,半径50的圆
   );if
    );foreach
   );while
   (setvar "osmode" #os1)
)
)
(princ)
)

kozmosovia 发表于 2016-3-8 19:40:18

远方小山 发表于 2016-3-8 18:34 static/image/common/back.gif
我试了下,这个代码有出现错误,我查了用法,没有错啊,求大神指点
(if (and (setq xx (ssget "_cp"
   ...

_cp用错了,直接改成_c即可
页: 1 [2]
查看完整版本: 检测多段线的起点和终点是否在其个直线上