zhangwei23 发表于 2006-7-28 10:20:00

蔡鸟求助!!!!

在cad上画条直线,利用arx输入一个命令,提取这条支线的坐标生成一个新文件,那位大哥能给个思路啊

wzz1968 发表于 2006-7-31 09:58:00

<P>这个问题比较麻烦,问题的关键是如何检索连表.</P>
<P>&nbsp;</P>

shinjikun 发表于 2006-8-1 03:07:00

回复

<P>简单来说就是:<BR>1.让用户选取一条直线或者PICKFIRST<BR>2.获取直线的信息<BR>3.保存到文件</P>
<P>下面是简单的代码,在autoCAD 2004平台下通过,你可以加入自己的部分:</P>
<P>&nbsp;static void Line2File(void)<BR>&nbsp;{<BR>&nbsp;&nbsp;ads_name ssname,en;<BR>&nbsp;&nbsp;char name="LINE";<BR>&nbsp;&nbsp;resbuf rb;<BR>&nbsp;&nbsp;rb.restype=0;<BR>&nbsp;&nbsp;rb.resval.rstring=name;<BR>&nbsp;&nbsp;rb.rbnext=NULL;//只选择直线,即dxf0="LINE"<BR>&nbsp;&nbsp;acedSSGet("I",NULL,NULL,&amp;rb,ssname);//寻找PICKFIRST集,关于acedSSGet的用法,请查SDK,如果你有一些LISP的基础会很简单的!<BR>&nbsp;&nbsp;long len;<BR>&nbsp;&nbsp;acedSSLength(ssname,&amp;len);//得到选集大小<BR>&nbsp;&nbsp;while(len==0)//如果为0<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;acedSSFree(ssname);//取消选集<BR>&nbsp;&nbsp;&nbsp;acedSSGet(NULL,NULL,NULL,&amp;rb,ssname);//让用户选择<BR>&nbsp;&nbsp;&nbsp;acedSSLength(ssname,&amp;len);<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;acedSSName(ssname,0,en);//得到选集的第一个ads_name<BR>&nbsp;&nbsp;acedSSFree(ssname);//取消选集!注意,不要忘了取消选集!<BR>&nbsp;&nbsp;AcDbObjectId id;<BR>&nbsp;&nbsp;acdbGetObjectId(id,en);//从ads_name转为AcDbObjectId<BR>&nbsp;&nbsp;AcDbLine *ln;<BR>&nbsp;&nbsp;acdbOpenObject&lt;AcDbLine&gt;(ln,id,AcDb::kForRead);//打开这条直线,记住一定是没分配过内存的指针!<BR>&nbsp;&nbsp;FILE* f=fopen("C:\\1.txt","a");//打开文件,你要自己更改文件名和打开方式,C基础编程。。<BR>&nbsp;&nbsp;if(f)//打开成功<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;AcGePoint3d a=ln-&gt;startPoint(),b=ln-&gt;endPoint();<BR>&nbsp;&nbsp;&nbsp;fprintf(f,"(%lf,%lf,%lf)-(%lf,%lf,%lf)\n",a.x,a.y,a.z,b.x,b.y,b.z);//写入文件;<BR>&nbsp;&nbsp;&nbsp;fclose(f);//关文件<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else//打开失败<BR>&nbsp;&nbsp;&nbsp;acutPrintf("Failed!");<BR>&nbsp;&nbsp;ln-&gt;close();//关直线!一定不要忘!<BR>&nbsp;}</P>
<P>另外我建议你使用SDK自带的工具ObjectArx Wizards,既好用,也易于命令的管理,尤其在做reactor和jig的时候很神速!</P>

merak 发表于 2006-8-1 11:55:00

<P>注册扩展图元数据</P>

shinjikun 发表于 2006-8-2 00:32:00

merak发表于2006-8-1 11:55:00static/image/common/back.gif
注册扩展图元数据

<BR>没有意义呀!直线而已

zhangwei23 发表于 2006-8-2 20:26:00

<P>to shinjikun:</P>
<P>你是用的arx2004+vs.2003么?</P>

shinjikun 发表于 2006-8-3 01:01:00

arx2004+vs.2002

shinjikun 发表于 2006-8-3 01:01:00

<P>2003的话会有问题</P>
页: [1]
查看完整版本: 蔡鸟求助!!!!