王咣生 发表于 2004-10-29 23:18:00

401925308


不过我很少用QQ聊.

kellyyang1 发表于 2004-10-30 14:08:00

我把第一个函数变成了如下,想把图形中所有直线的端点存入到一个点数组中去。数组中的点值两两不同// This is command 'JD'<BR>void vcstp2jd()<BR>{<BR>        // TODO: Implement the command<BR>int sizeofpoint=len1*2;<BR>ads_name pipe;////////管段的数组<BR>ads_point as_point,ae_point;///////管段起始节点的数组<BR>ads_point *totalpoint;<BR>if((totalpoint=new ads_point)==NULL)///////分配堆内存<BR>{ads_alert("没有分配成功!");<BR>}<BR>int n=-1;<BR>for(int i=0;i&lt;len1;i++)<BR>{acedSSName(sspipe,i,pipe);<BR>line_data(pipe,as_point,ae_point);<BR>for(int j=0;j&lt;sizeofpoint;j++)<BR>{if(as_point!=totalpoint&amp;&amp;as_point!=totalpoint)<BR>{n=n+1;<BR>ads_point_set(as_point,totalpoint);<BR>}<BR>}<BR>for(j=0;j&lt;sizeofpoint;j++)<BR>{if(ae_point!=totalpoint&amp;&amp;ae_point!=totalpoint)<BR>{n=n+1;<BR>ads_point_set(ae_point,totalpoint);<BR>}<BR>}<BR>}


}可是一在CAD下运行就发生异常错误,CAD自动关闭,能告诉原因吗??不省感谢

kellyyang1 发表于 2004-10-30 14:28:00

我把第二个函数改成了如下,是想把图形中每个直线的端点都存入一个点数组中去,数组中的每个点两两不相同:void vcstp2jd()<BR>{<BR>        // TODO: Implement the command<BR>int sizeofpoint=len1*2;<BR>ads_name pipe;////////管段的数组<BR>ads_point as_point,ae_point;///////管段起始节点的数组<BR>ads_point *totalpoint;<BR>if((totalpoint=new ads_point)==NULL)///////分配堆内存<BR>{ads_alert("没有分配成功!");<BR>}<BR>int n=-1;<BR>for(int i=0;i&lt;len1;i++)<BR>{acedSSName(sspipe,i,pipe);<BR>line_data(pipe,as_point,ae_point);<BR>for(int j=0;j&lt;sizeofpoint;j++)<BR>{if(as_point!=totalpoint&amp;&amp;as_point!=totalpoint)<BR>{n=n+1;<BR>ads_point_set(as_point,totalpoint);<BR>}<BR>}<BR>for(j=0;j&lt;sizeofpoint;j++)<BR>{if(ae_point!=totalpoint&amp;&amp;ae_point!=totalpoint)<BR>{n=n+1;<BR>ads_point_set(ae_point,totalpoint);<BR>}<BR>}<BR>}


if (sspipe)<BR>               acedSSFree(sspipe);<BR>delete[]totalpoint;<BR>}


编译同样可以通过,可是在CAD下运行的时候却总是提示发生异常,然后CAD自动关闭,为什么!!!急,谢谢了

easypower 发表于 2004-10-30 16:55:00

点你可以用AcGePoint3d


点数组你可以用AcArray &lt;AcGePoint3d&gt;

kellyyang1 发表于 2004-10-30 19:23:00

你这样定义怎么确定数组的维数呢??

kellyyang1 发表于 2004-10-30 19:33:00

我看了书上好象也可以这样定义点数组的啊!

王咣生 发表于 2004-10-30 21:07:00

回复

为什么不用        AcGePoint3dArray存储点呢?

kellyyang1 发表于 2004-10-31 19:13:00

能告诉AcArray &lt;AcGePoint3d&gt;和        AcGePoint3dArray具体怎么用吗??能随便提供关于他们的代码吗??

kellyyang1 发表于 2004-10-31 20:01:00

我写了如下几行代码,想看看AcArray 的用法,可是在编译通过的情况下,在CAD下运行,又使得CAD发生错误,自动关闭,能帮忙分析一下吗??感谢哦

王咣生 发表于 2004-10-31 21:28:00

回复

比如:



存储AcDbPolyline所有结点坐标:


AcDbPolyline *pLineSource = (AcDbPolyline*)pEntity;                //定义AcDbPolyline


AcGePoint3dArray sVertArray;<BR>AcGePoint3d pt;<BR>for (int vernum = 0; vernum &lt; pLineSource-&gt;numVerts(); vernum++) {<BR>        pLineSource-&gt;getPointAt(vernum, pt);<BR>        sVertArray.append(pt);<BR>}


在ObjectARX SDK中应用AcGePoint3dArray或AcGePoint2dArray的例子很多.
页: 1 [2] 3
查看完整版本: 请大家指点一下!急