明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3177|回复: 5

LWPOLYLINE交点问题

[复制链接]
发表于 2012-5-8 22:52:21 | 显示全部楼层 |阅读模式
请问大大们,用最基础的LISP函数能不能实现:图层A与图层B都有多条LWPOLYLINE,求两个图层的LWPOLYLINE线的交点,同层交点不算。。。迷茫中。。有木有,若有,大概的思路??万分感谢。。
发表于 2012-5-8 22:55:47 | 显示全部楼层
本帖最后由 wowan1314 于 2012-5-8 22:56 编辑

按层建两个选择集,循环取出第一个选择集内一条线求与第二个选择集的交点。

这样是否就可以呢?
 楼主| 发表于 2012-5-8 23:07:25 | 显示全部楼层
wowan1314 发表于 2012-5-8 22:55
按层建两个选择集,循环取出第一个选择集内一条线求与第二个选择集的交点。

这样是否就可以呢?

我想法也是这样,在储存数据表时出错,不知道怎么操作。。感谢你

点评

论坛找找,求交点程序蛮多,看看他们的思路。  发表于 2012-5-8 23:10
 楼主| 发表于 2012-5-9 19:36:35 | 显示全部楼层
(defun c:pp()
(setq ss (ssget '((0 . "LWPolyLine"))))
(setq pt_list nil)
(setq i 0)
(repeat (sslength ss)
(sub_test1 (ssname ss i))
(setq i (1+ i))
)
(foreach pt pt_list(command "circle" pt 10))
(alert (strcat "共有<" (itoa (length pt_list)) " >交点在界面上!"))
(prin1)
)
;--------------? 求取交点子程序
(defun sub_test1(#en)
(setq endata (entget #en))            ;获得群码列表
(setq pt10 (cdr (assoc 10 endata)))       ;起点
(setq pt11 (cdr (assoc 10 (reverse endata))))         ;终点
(setq ssint (ssget "f" (list pt10 pt11)))   ;组成点列表赋F,做选集
(setq ssint (ssdel #en ssint))   
(if (> (sslength ssint) 0)
(progn
(setq j 0)
(repeat (sslength ssint)       ;重复ssint次
(setq ena (ssname ssint j))    ;取出选集的第j个对象
(if (ssmemb ena ss)       ;如何ena是选集ss中的一个,返回对象名称
(progn
(setq pta (cdr (assoc 10 (entget ena))))
(setq ptb (cdr (assoc 10 (reverse endata))))
(setq intpt(inters pt10 pt11 pta ptb))   ;返回点pt10 pt11组成的线与pta ptb组成的线的交点
(setq intpt1(osnap intpt "int"))      ;返回交点的字符串
(if (not (member intpt1 pt_list)) (setq pt_list(cons intpt1 pt_list)))   ;若intpt1不在pt_list列表中,则将其加入pt_list
)
)
(setq j (1+ j))
)
)
)
)
附上源码,请问哪里出错了???无法循环。
发表于 2012-5-9 20:33:51 | 显示全部楼层
用两条有相交点的 LwPolyLine 调试
(acet-geom-intersectwith (car (entsel)) (car (entsel)) 0)
 楼主| 发表于 2012-5-10 20:38:42 | 显示全部楼层
Andyhon 发表于 2012-5-9 20:33
用两条有相交点的 LwPolyLine 调试
(acet-geom-intersectwith (car (entsel)) (car (entsel)) 0)

老师,你用到的语言没有学到,谢谢你的回答、

点评

他的貌似是ET工具提供的函数。可在论坛找ET函数说明看看。  发表于 2012-5-10 20:44
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-26 09:02 , Processed in 0.248838 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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