找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6931|回复: 13

[求助] 关于vla-intersectwith函数求助

[复制链接]

已领礼包: 924个

财富等级: 财运亨通

发表于 2015-1-17 15:33:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 txc6853234 于 2015-1-18 12:30 编辑

请教各位高人!
(setq aaa(vla-intersectwith en en2 acextendnone))
(setq abd(vlax-safearray->list (vlax-variant-value aaa)))用vla-intersectwith得到一个交点,这个交点会是一个数值为nil的双精度数组(其数值是通过autolisp编辑器查看得到的),然而这个变量用vlax-safearray->list产生“; 错误: ActiveX 服务器返回错误: 无效索引。”
本人搞不懂,请教高人这是为什么呢?



论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2015-1-17 16:38:32 | 显示全部楼层
你变量 ABC 是什么?

点评

不是变量abc是上面的aaa!用vla-intersetwith时会出现一个数值是nil的双精度数组!用vlax-safearray-list就会出现这样的问题!这是什么呢?  详情 回复 发表于 2015-1-17 22:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2015-1-17 17:35:59 来自手机 | 显示全部楼层
先判断有没有交点再safearray->list

点评

那请问怎么样判断有没有交点呢?  详情 回复 发表于 2015-1-17 22:33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 924个

财富等级: 财运亨通

 楼主| 发表于 2015-1-17 22:30:36 | 显示全部楼层
newer 发表于 2015-1-17 16:38
你变量 ABC 是什么?

不是变量abc是上面的aaa!用vla-intersetwith时会出现一个数值是nil的双精度数组!用vlax-safearray-list就会出现这样的问题!这是什么呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 924个

财富等级: 财运亨通

 楼主| 发表于 2015-1-17 22:33:35 | 显示全部楼层
iLisp 发表于 2015-1-17 17:35
先判断有没有交点再safearray->list

那请问怎么样判断有没有交点呢?

点评

(if (setq list (safearray-value (variant-value aaa))) ...  详情 回复 发表于 2015-1-18 16:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2015-1-18 16:19:43 | 显示全部楼层
txc6853234 发表于 2015-1-17 22:33
那请问怎么样判断有没有交点呢?

(if (setq list (safearray-value (variant-value aaa))) ...
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2015-1-18 19:34:38 | 显示全部楼层
把acextendnone换成0看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2015-1-18 21:28:13 | 显示全部楼层
这样用

_$ (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'IntersectWith (vlax-ename->vla-object (car (entsel))) 0)
nil
_$
_$ (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'IntersectWith (vlax-ename->vla-object (car (entsel))) 0)
(3607.02 1107.36 0.0)
_$

点评

谢谢,高手就是高手,能再请教老师一个问题不?vlax-invoke-method和valx-invoke这两个函数的区别。safearray-value函数是那边的哦?明经通道给的那个函数参考没有!  详情 回复 发表于 2015-1-19 09:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 924个

财富等级: 财运亨通

 楼主| 发表于 2015-1-19 09:24:53 | 显示全部楼层
csharp 发表于 2015-1-18 21:28
这样用

_$ (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'IntersectWith (vlax-ename->vla-ob ...

谢谢,高手就是高手,能再请教老师一个问题不?vlax-invoke-method和valx-invoke这两个函数的区别。safearray-value函数是那边的哦?明经通道给的那个函数参考没有!

点评

按autodesk解释, vlax-invoke-method使用安全数组,vlax-invoke可以接受lisp数据,返回值一般是lisp数据无需转换,同时带来不安全的可能,官方推荐用前者,后者只能自己试验总结 safearray-value 和vla-safearray->  详情 回复 发表于 2015-1-19 09:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2015-1-19 09:37:42 来自手机 | 显示全部楼层
txc6853234 发表于 2015-1-19 09:24
谢谢,高手就是高手,能再请教老师一个问题不?vlax-invoke-method和valx-invoke这两个函数的区别。safea ...

按autodesk解释, vlax-invoke-method使用安全数组,vlax-invoke可以接受lisp数据,返回值一般是lisp数据无需转换,同时带来不安全的可能,官方推荐用前者,后者只能自己试验总结
safearray-value 和vla-safearray->list的最大区别就是前者不支持多维数组

点评

再麻烦老师一下。请问还有哪些带VLAX前缀函数的函数可以不加这个前缀哦?  详情 回复 发表于 2015-1-19 09:49
再次由衷的感谢  详情 回复 发表于 2015-1-19 09:43
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 924个

财富等级: 财运亨通

 楼主| 发表于 2015-1-19 09:43:44 | 显示全部楼层
iLisp 发表于 2015-1-19 09:37
按autodesk解释, vlax-invoke-method使用安全数组,vlax-invoke可以接受lisp数据,返回值一般是lisp数据 ...

再次由衷的感谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 924个

财富等级: 财运亨通

 楼主| 发表于 2015-1-19 09:49:11 | 显示全部楼层
iLisp 发表于 2015-1-19 09:37
按autodesk解释, vlax-invoke-method使用安全数组,vlax-invoke可以接受lisp数据,返回值一般是lisp数据 ...

再麻烦老师一下。请问还有哪些带VLAX前缀函数的函数可以不加这个前缀哦?

点评

另外一个是variant-value  详情 回复 发表于 2015-1-19 10:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2015-1-19 10:02:28 来自手机 | 显示全部楼层
txc6853234 发表于 2015-1-19 09:49
再麻烦老师一下。请问还有哪些带VLAX前缀函数的函数可以不加这个前缀哦?

另外一个是variant-value
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2020-4-4 23:13:36 | 显示全部楼层
学习了,谢谢楼主.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-14 19:43 , Processed in 0.230807 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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