明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1809|回复: 3

getsplitcurves返回集合索引超界?

[复制链接]
发表于 2011-4-18 23:40:40 | 显示全部楼层 |阅读模式
用getsplitcurves从曲线上两点打断,返回的集合明明就有3条曲线为什么我用curve.getsplitcurves()(1)会索引超界呢?
程序的片段
            Dim splitPnt As New Point3dCollection
            splitPnt.Add(curFroPnt)
            splitPnt.Add(curToPnt)
            Dim splitCurCol As DBObjectCollection
            splitCurCol = appendEnt.GetSplitCurves(splitPnt)
            Dim splitCurNum As Integer = splitCurCol.Count
            appendEnt = splitCurCol(splitCurCol.Count - 2)
调试的时候追踪变量已经明确显示splitCurCol.count=3,
我了个晕哦!
发表于 2011-4-19 20:41:39 | 显示全部楼层
本帖最后由 sieben 于 2011-4-19 20:42 编辑

AutoCAD 哪个版本?
我以前在AutoCAD 2006碰到这种情况,DBObjectCollection dbClt 里面有多个成员,dbClt是由类似GetSplitCurves这类Autodesk提供的函数返回的,这时若直接访问第一成员以外的成员会出异常(即序号大于0),但若对dbClt 遍历一次后则正常了,使用foreach遍历肯定,使用for从0开始遍历好象也行,不记得了.直接访问0序号成员是否出异常也忘了,印象是不会.

评分

参与人数 1金钱 +20 收起 理由
chmenf087 + 20 我很赞同

查看全部评分

 楼主| 发表于 2011-4-19 21:27:57 | 显示全部楼层
回复 sieben 的帖子

症状正如兄台所述,不过我的是08版的,还是有这种情况,3Q!
发表于 2011-4-19 22:24:29 | 显示全部楼层
我感觉像是只返回了个数,而对于其中具体的对象都没有初始化,遍历一次之后才初始化的。这个和数据集中的GetCount很像
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 13:21 , Processed in 0.203098 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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