回复
E版主? 只有11楼和16楼是成功的代码. 但是我仔细对比过你2楼和11楼的代码,发现基本上没有差别呀???就几个判断返回值的地方有变化,能说明你2楼的错误在那里么??
回复
在这里:else<BR> {<BR> acdbPointSet(pick, lastpt);<BR> nRet = acedGetPoint(pick, "\nPick next point - for exit: ", pick);<BR> acedGrDraw(lastpt, pick, 1, 0);
newRb = acutNewRb(RTPOINT);<BR> newRb->resval.rpoint = pick;<BR> newRb->resval.rpoint = pick;<BR> newRb->resval.rpoint = pick;<BR> rbTrav->rbnext = newRb;<BR> rbTrav = rbTrav->rbnext;<BR> //if (newRb)<BR> // acutRelRb(newRb);<BR> }<BR> if (nRet != RTNORM)<BR> {<BR> keepPicking = Adesk::kFalse;<BR> break;<BR> }
这里的代码,是这样考虑的,如果if (nRet == RTNORM) 时,才
newRb = acutNewRb(RTPOINT);<BR> newRb->resval.rpoint = pick;<BR> newRb->resval.rpoint = pick;<BR> newRb->resval.rpoint = pick;<BR> rbTrav->rbnext = newRb;<BR> rbTrav = rbTrav->rbnext;
把建立链表结点的代码写在acedGetPoint(pick, "\nPick next point - for exit: ", pick) == RTNORM的判断为T之中, 否则就也错了 呵呵,我知道了,哎!!!
最后一个ENTER加入了一个错误的点!
晕死!!! 如果选择了几个点,然后改变视图显示的区域,使所选择的实体不在视图中,会选择到0个实体,怎么办呢? 受益匪浅,谢谢几位 谢谢了学习了