明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: lusj

[求助]请问如何求出两条多义线的交点?

  [复制链接]
发表于 2003-11-23 21:23:00 | 显示全部楼层
好 !
发表于 2003-12-21 20:13:00 | 显示全部楼层
1,当LWPOLYLINE很复杂如由几百段线组成时vla-intersectwith 方法会很慢,请问有没有特别的方法提高速度?
2,上面那个程序当两个LWPOLYLINE不相交时应该会出错吧??
发表于 2003-12-21 21:30:00 | 显示全部楼层
1、这是一个程序设计方法的问题,这里提供的函数是针对两个对象的,如果对象很多,必须自己另外用循环获得需要求交点的对象两两相交求交点,这个循环过程是需要好的方法来提高速度,但已与本帖的程序无关了。。。
2、不会。(为什么不试一下呢,奇怪中。。。)
发表于 2003-12-22 21:59:00 | 显示全部楼层
1,我说的是单个Llwpolyline即有几百段line or arc ,使用循环是另外一回事,但本人使用vla-intersectwith 的确感觉比其他函数慢得多,
2,当检查两个vla object 是否相交是本人是这样:
(setq temp (vlax-catch-all-error (vlax-safearray->list (vlax-variant-value intpoints))))
(if (vlax-catch-error-p temp)
(setq intrsect nil)
(setq intrsect t))

(setq intpoints (vlax-variant-value intpoints))
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
(setq intrsect nil)
(setq intrsect t))
此种方法我曾试过,因为出错后不再用,可能出错原因不是因为不相交
3,我是在网吧上网,故不能立时测试,不过今天上班时也忘了,
4,谢谢!!!
发表于 2003-12-23 00:09:00 | 显示全部楼层
那你那个intpoints又是哪儿来的呢? 天上掉下来的?
发表于 2003-12-23 18:34:00 | 显示全部楼层
今天我试了vlax-safearray-get-u-bound ,当safearray为nil时返回值为-1,是可以用此函数检查safearray是否为nil
发表于 2003-12-30 12:31:00 | 显示全部楼层
(setq intpoints (vlax-variant-value intpoints))
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
(setq intrsect tl)
(setq intrsect nil))
发表于 2004-1-26 05:35:00 | 显示全部楼层
如果只是写两个实体的交点表


代码何需这么多?
发表于 2004-1-26 10:09:00 | 显示全部楼层
大哥 vl-load-com         在哪啊
发表于 2004-1-26 10:44:00 | 显示全部楼层
在程序的最前面加上(vl-load-com)


或者在命令行写:(vl-load-com)然后回车,再执行程序


(注意括号不能漏掉)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-23 17:45 , Processed in 0.279618 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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