jsjwql 发表于 2006-3-1 19:20:00

<P><FONT face=宋体 size=2>void dumpCustomEntity(AcDbEntity *pEnt)<BR>{<BR>AcDbProxyEntity *pProxyEntity = AcDbProxyEntity::cast(pEnt);<BR>if(pProxyEntity )<BR>{<BR>AcDbVoidPtrArray pArray;<BR>pProxyEntity-&gt;explode(pArray);<BR>for(int i = 0;i&lt;pArray.length();i++) </FONT></P>
<P><FONT face=宋体 size=2>dumpEntity((AcDbEntity *)pArray.at(i)); //dumpEntity() //是一个分析Entity的函数<BR><BR>}<BR>}<BR><BR>我可以通过上面的代码 把proxy entity 炸开,也可以访问炸开后的<BR>数据成员,但是在退出这个函数的时候提示<BR>" _BLOCK_TYPE_IS_VALID(pHead-&gt;nBlockUse)".<BR>我发现是pArray的内存释放不掉<BR>这是什么问题?<BR>请指教,谢谢!</FONT> </P>

王咣生 发表于 2006-3-1 21:29:00

reply

<P>看是否是<FONT size=2>dumpEntity函数中的问题</FONT></P>
<P><FONT size=2>如有必要请发你的工程文件上来。</FONT></P>

baohui668 发表于 2006-3-25 10:33:00

<P><FONT color=#990000><B>请 <A name=85791><FONT color=#990000><B>王咣生</B></FONT></A>斑竹 解惑!</B></FONT></P>
<P><FONT face=宋体 size=2>void Myfa()<BR>{<BR>ads_name ents,ent;<BR>AcDbObjectId objId;<BR>AcDbEntity* pEnt=NULL;<BR>AcDbObjectIdArray dbObjIds;<BR>acedSSGet(NULL,NULL,NULL,NULL,ents);<BR>long len;<BR>acedSSLength(ents,&amp;len);<BR><BR>AcDbHatch* pHatch = new AcDbHatch();<BR>for(long i=0;i&lt;len;i++){ <LEN;I++){<BR />acedSSName(ents,i,ent);<BR>acdbGetObjectId(objId, ent);<BR>dbObjIds.append(objId);<BR>}<BR>acedSSFree(ent);<BR>acedSSFree(ents);<BR><BR>AcGeVector3d normal(0.0, 0.0, 1.0);<BR>pHatch-&gt;setNormal(normal);<BR>pHatch-&gt;setElevation(0.0);<BR>pHatch-&gt;setColorIndex(3);<BR>pHatch-&gt;setPatternScale(2);<BR>pHatch-&gt;setPatternAngle(0.0);<BR>pHatch-&gt;setPattern(AcDbHatch::kPreDefined, "ANSI31");<BR>pHatch-&gt;setHatchStyle(AcDbHatch::kNormal);<BR>pHatch-&gt;appendLoop(AcDbHatch::kExternal, dbObjIds);<BR>pHatch-&gt;draw(); //更新实体<BR>pHatch-&gt;recordGraphicsModified(Adesk::kTrue);<BR>// Set Associativity<BR>//<BR>pHatch-&gt;setAssociative(Adesk::kFalse);<BR>pHatch-&gt;evaluateHatch();<BR>acedUpdateDisplay();<BR><BR><BR>AcDbBlockTable *pBlockTable=NULL;<BR>AcDbBlockTableRecord *pBlockTableRecord;<BR>acdbHostApplicationServices()-&gt;workingDatabase()<BR>-&gt;getSymbolTable(pBlockTable, AcDb::kForRead);<BR><BR>pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord,<BR>AcDb::kForWrite);<BR>pBlockTable-&gt;close();<BR><BR>AcDbObjectId HatchId;<BR>pBlockTableRecord-&gt;appendAcDbEntity(HatchId, pHatch);<BR>pBlockTableRecord-&gt;close();<BR>pHatch-&gt;close();<BR>} <BR><BR>在选择多个实体填充的时候还有问题,百思不得其解:(</FONT> </P>

rologer 发表于 2006-3-27 17:09:00

<P>楼主真是太好了</P>
<P>支持啊</P>
<P>太谢谢了!</P>

dry 发表于 2006-4-3 14:48:00

王大侠太厉害了,谢谢你的无私奉献呀,强烈支持你!!!

knowyou 发表于 2006-4-4 10:29:00

<P>王老师:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 您好!我是一名ARX初学者!用的是VC。NET2002+ARX2004 。可是在安装ARX2004时会出现要求升级的信息,升级之后又查询是否要安装ARX2005。并且奇怪的是ARX2004的工具条里第3、4两项不起作用!不知道这些会不会影响程序的编写和运行工作!谢谢赐教!<BR></P>

szlmh 发表于 2006-4-7 18:19:00

<P>斑竹你真牛,没有设计项目后,我要请教请教你</P>
<P>&nbsp;</P>

NetBee 发表于 2006-4-28 19:42:00

好帖

mfd 发表于 2006-6-5 16:09:00

<P>斑竹:能提供联系方式吗?想找机会和您切磋切磋!</P>

adminblue 发表于 2006-8-4 20:37:00

<P>thank you very much</P>
页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17
查看完整版本: ObjectARX工作日志