nameld001 发表于 2007-3-26 22:58:00

初级练习!!!

<p>1.提取实体的扩展数据,本代码在VC++6.0,2002通过</p><p>//<br/>// ObjectARX defined commands</p><p>#include "StdAfx.h"<br/>#include "StdArx.h"</p><p>// This is command 'TEST'<br/>int printdxf(struct resbuf *eb);<br/>void test()<br/>{<br/>&nbsp;// TODO: Implement the command</p><p>&nbsp;&nbsp;&nbsp; struct resbuf *ebuf, *eb; <br/>&nbsp;&nbsp;&nbsp; ads_name ent1;<br/>&nbsp;ads_point pt;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; acedEntSel("\n请选择对像",ent1,pt);<br/>&nbsp;&nbsp;&nbsp; ebuf = acdbEntGet(ent1); <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; eb = ebuf; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; acutPrintf("\nResults of entgetting last entity\n"); <br/>&nbsp;<br/>// Print items in the list.<br/>&nbsp;&nbsp;&nbsp; for (eb = ebuf; eb != NULL; eb = eb-&gt;rbnext) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printdxf(eb); <br/>&nbsp;<br/>// Release the acdbEntGet() list.<br/>&nbsp;&nbsp;&nbsp; acutRelRb(ebuf); <br/>} <br/>&nbsp;<br/>int printdxf(struct resbuf *eb) <br/>{ <br/>&nbsp;&nbsp;&nbsp; int rt; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; if (eb == NULL) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return RTNONE; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; if ((eb-&gt;restype &gt;= 0) &amp;&amp; (eb-&gt;restype &lt;= 9)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt = RTSTR ; <br/>&nbsp;&nbsp;&nbsp; else if ((eb-&gt;restype &gt;= 10) &amp;&amp; (eb-&gt;restype &lt;= 19)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt = RT3DPOINT; <br/>&nbsp;&nbsp;&nbsp; else if ((eb-&gt;restype &gt;= 38) &amp;&amp; (eb-&gt;restype &lt;= 59)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt = RTREAL ; <br/>&nbsp;&nbsp;&nbsp; else if ((eb-&gt;restype &gt;= 60) &amp;&amp; (eb-&gt;restype &lt;= 79)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt = RTSHORT ; <br/>&nbsp;&nbsp;&nbsp; else if ((eb-&gt;restype &gt;= 210) &amp;&amp; (eb-&gt;restype &lt;= 239)) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt = RT3DPOINT ; <br/>&nbsp;&nbsp;&nbsp; else if (eb-&gt;restype &lt; 0) <br/>// Entity name (or other sentinel)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt = eb-&gt;restype; <br/>&nbsp;&nbsp;&nbsp; else <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rt = RTNONE; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; switch (rt) { <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; case RTSHORT: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("(%d . %d)\n", eb-&gt;restype, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eb-&gt;resval.rint); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; case RTREAL: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("(%d . %0.3f)\n", eb-&gt;restype, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eb-&gt;resval.rreal); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; case RTSTR: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("(%d . \"%s\")\n", eb-&gt;restype, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eb-&gt;resval.rstring); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; case RT3DPOINT: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("(%d . %0.3f %0.3f %0.3f)\n", <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eb-&gt;restype, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eb-&gt;resval.rpoint, eb-&gt;resval.rpoint, <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eb-&gt;resval.rpoint); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; case RTNONE: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("(%d . Unknown type)\n", eb-&gt;restype); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; case -1: <br/>&nbsp;&nbsp;&nbsp; case -2:&nbsp; <br/>// First block entity<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("(%d . &lt;Entity name: %8lx&gt;)\n", <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eb-&gt;restype, eb-&gt;resval.rlname); <br/>&nbsp;&nbsp;&nbsp; } <br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; return eb-&gt;restype; <br/>} </p><p></p><p></p>
页: [1]
查看完整版本: 初级练习!!!