明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7809|回复: 27

关于vla-intersectwith求交点的一点疑惑

  [复制链接]
发表于 2012-6-6 16:02 | 显示全部楼层 |阅读模式
用vla-intersectwith求交点,在不延伸情况下,无论有没有交点都返回#<variant 8197 ..,那该怎么判断到底有没有交点呢?
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-6-6 16:40 | 显示全部楼层
changyiran 发表于 2012-6-6 16:18
非常感谢,刚才我用VLAX-SAFEARRAY-GET-l-BOUND 试的,但没加后面的维数1,结果返回了错误信息,原来1是必 ...

用如下方法就无需转换数据
(vlax-invoke (vlax-ename->vla-object (car(entsel))) 'IntersectWith (vlax-ename->vla-object (car(entsel))) acExtendNone)

点评

很好用。  发表于 2016-11-27 20:25
回复 支持 2 反对 0

使用道具 举报

发表于 2012-6-6 16:11 | 显示全部楼层
本帖最后由 caddog 于 2012-6-6 16:14 编辑

用VLAX-VARIANT-VALUE函数返回变体的值(设为ver-interse),再用(VLAX-SAFEARRAY-GET-U-BOUND ver-interse 1)返回变体数组的上界,若没有交点,应为-1
若有的话,用(VLAX-SAFEARRAY->LIST ver-interse)将之转换为表就好操作了。
关键的语句如下:

  1. (setq obj1 (vlax-ename->vla-object (car(entsel)))
  2.       obj2(vlax-ename->vla-object (car(entsel))))
  3. (setq ver-interse
  4.        (VLAX-VARIANT-VALUE
  5.          (VLA-INTERSECTWITH obj1 obj2 2)
  6.          )
  7.       )
  8. (VLAX-SAFEARRAY-GET-U-BOUND ver-interse 1)
  9. (VLAX-SAFEARRAY->LIST ver-interse)

回复 支持 1 反对 0

使用道具 举报

发表于 2024-3-16 21:07 | 显示全部楼层
Gu_xl 发表于 2012-6-6 16:40
用如下方法就无需转换数据
(vlax-invoke (vlax-ename->vla-object (car(entsel))) 'IntersectWith (vlax ...

这个方法的确好。
 楼主| 发表于 2012-6-6 16:18 | 显示全部楼层
caddog 发表于 2012-6-6 16:11
用VLAX-VARIANT-VALUE函数返回变体的值(设为ver-interse),再用(VLAX-SAFEARRAY-GET-U-BOUND ver-interse ...

非常感谢,刚才我用VLAX-SAFEARRAY-GET-l-BOUND 试的,但没加后面的维数1,结果返回了错误信息,原来1是必须的啊,求下标为0.
发表于 2012-6-6 16:42 | 显示全部楼层
acet-geom-intersectwith
(acet-geom-intersectwith (car (entsel)) (car (entsel)) 3)
 楼主| 发表于 2012-6-6 17:27 | 显示全部楼层
Gu_xl 发表于 2012-6-6 16:40
用如下方法就无需转换数据
(vlax-invoke (vlax-ename->vla-object (car(entsel))) 'IntersectWith (vlax ...

版主这个牛逼,佩服!
 楼主| 发表于 2012-6-6 17:39 | 显示全部楼层
Andyhon 发表于 2012-6-6 16:42
acet-geom-intersectwith
(acet-geom-intersectwith (car (entsel)) (car (entsel)) 3)

运行时提示没有acet-geom-intersectwith这个函数,不知为何。

点评

G版的方法是最简洁的,也不需要额外的库支持。  发表于 2012-10-15 22:07
发表于 2012-6-6 18:08 | 显示全部楼层
Acet-* 需要 Express Tools 支持
发表于 2012-6-6 18:15 来自手机 | 显示全部楼层
好好学习。
 楼主| 发表于 2012-6-6 18:54 | 显示全部楼层
Andyhon 发表于 2012-6-6 18:08
Acet-* 需要 Express Tools 支持

哦,谢谢,学习了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-26 18:35 , Processed in 0.148203 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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