BDYCAD 发表于 2003-11-23 21:23:00

好 !

sieben 发表于 2003-12-21 20:13:00

1,当LWPOLYLINE很复杂如由几百段线组成时vla-intersectwith 方法会很慢,请问有没有特别的方法提高速度?
2,上面那个程序当两个LWPOLYLINE不相交时应该会出错吧??

meflying 发表于 2003-12-21 21:30:00

1、这是一个程序设计方法的问题,这里提供的函数是针对两个对象的,如果对象很多,必须自己另外用循环获得需要求交点的对象两两相交求交点,这个循环过程是需要好的方法来提高速度,但已与本帖的程序无关了。。。
2、不会。(为什么不试一下呢,奇怪中。。。)

sieben 发表于 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又是哪儿来的呢? 天上掉下来的?

sieben 发表于 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

如果只是写两个实体的交点表


代码何需这么多?

kaixin119 发表于 2004-1-26 10:09:00

大哥 vl-load-com       在哪啊

meflying 发表于 2004-1-26 10:44:00

在程序的最前面加上(vl-load-com)


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


(注意括号不能漏掉)
页: 1 2 [3] 4 5 6 7 8
查看完整版本: [求助]请问如何求出两条多义线的交点?