明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 远方小山

[提问] 检测多段线的起点和终点是否在其个直线上

[复制链接]
发表于 2016-3-8 19:20:59 | 显示全部楼层
本帖最后由 437271963 于 2016-3-8 19:31 编辑
  1. (defun c:tes ( / #os1 &k1 &kw1 &ob1 &p1 @p1 @p2)
  2. (if (null vlax-dump-object) (vl-load-com) )
  3. (setq #os1 (getvar "osmode"))
  4. (if (setq &kw1 (ssget '((0 . "LWPOLYLINE"))))
  5.   (progn
  6.    (setvar "osmode" 0)
  7.    (while (setq &k1 (ssname &kw1 0))
  8.     (setq &kw1 (ssdel &k1 &kw1) &ob1 (vlax-ename->vla-object &k1))
  9.     (foreach &p1 (list (vlax-curve-getStartPoint &ob1);起点
  10.                        (vlax-curve-getEndPoint &ob1);端点
  11.                  )
  12.      (setq @p1 (polar &p1 (* 1.25 pi) (* (expt 2 0.5) 0.5))
  13.            @p2 (polar &p1 (* 0.25 pi) (* (expt 2 0.5) 0.5)))
  14.      (if (< (sslength (ssget "c" @p1 @p2 '((0 . "LINE,LWPOLYLINE")))) 2);如果少于2线
  15.       (entmake (list '(0 . "CIRCLE") '(62 . 1) (cons 10 &p1) '(40 . 50)));绘制红色,半径50的圆
  16.      );if
  17.     );foreach
  18.    );while
  19.    (setvar "osmode" #os1)
  20.   )
  21. )
  22. (princ)
  23. )
发表于 2016-3-8 19:40:18 | 显示全部楼层
远方小山 发表于 2016-3-8 18:34
我试了下,这个代码有出现错误,我查了用法,没有错啊,求大神指点
(if (and (setq xx (ssget "_cp"
   ...

_cp用错了,直接改成_c即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 19:51 , Processed in 0.163455 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表