lilq_78 发表于 2007-5-16 14:13:00

[求助]帮我看一下块加属性代码?

<p>void insertblock()<br/>{<br/>&nbsp;AcGePoint3d pt1;<br/>&nbsp;<br/>&nbsp;CString blk_name="testblock";<br/>&nbsp;CString Fname=blk_name+".dwg";<br/>&nbsp;char sFileName;<br/>&nbsp;const char *dwgName=(LPSTR)(LPCTSTR)Fname;<br/>&nbsp;acedFindFile(dwgName,sFileName);<br/>&nbsp;AcDbDatabase *pNewDb =new AcDbDatabase(Adesk::kFalse);<br/>&nbsp;int es=pNewDb-&gt;readDwgFile(sFileName ,_SH_DENYNO,false);</p><p>&nbsp;if (es!=Acad::eOk)<br/>&nbsp;{<br/>&nbsp;acutPrintf("\nThe file %s cannot be opend",sFileName);<br/>&nbsp;return;<br/>&nbsp;}<br/>/////////////////////////////////////////////////////////////////<br/>&nbsp;AcDbDatabase *pDb;<br/>&nbsp;pDb =acdbHostApplicationServices ()-&gt;workingDatabase () ;</p><p>&nbsp;AcDbObjectId blockId;<br/>&nbsp;if((es=pDb-&gt;insert(blockId, blk_name,pNewDb, true))==Acad::eOk)<br/>&nbsp;{<br/>&nbsp;acutPrintf("\ninsert ok\n");<br/>&nbsp;}<br/>&nbsp;else<br/>&nbsp;{<br/>&nbsp;AfxMessageBox("Insert failed");<br/>&nbsp;delete pNewDb;<br/>&nbsp; return;<br/>&nbsp;}<br/>&nbsp;if(RTNORM!=acedGetPoint(NULL,"\n请输入插入点:",asDblArray(pt1)))<br/>&nbsp;{<br/>&nbsp;&nbsp;return;<br/>&nbsp;}<br/>&nbsp;AcDbBlockTable *pBlockTable;<br/>&nbsp;AcDbBlockTableRecord *pBlockTableRecord;<br/>&nbsp;acdbHostApplicationServices()-&gt;workingDatabase()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;getSymbolTable(pBlockTable, AcDb::kForRead);</p><p><br/>&nbsp;pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForWrite);<br/>&nbsp;pBlockTable-&gt;getAt(blk_name, blockId);<br/>&nbsp;pBlockTable-&gt;add(blockId,pBlockTableRecord);<br/>&nbsp;pBlockTable-&gt;close();</p><p>&nbsp;AcDbBlockReference *pBlkRef = new AcDbBlockReference;<br/>&nbsp;pBlkRef-&gt;setBlockTableRecord(blockId);//指向blockId;<br/>&nbsp;pBlkRef-&gt;setPosition(pt1);//设定位置<br/>&nbsp;pBlkRef-&gt;setRotation(0);//设定转角</p><p>&nbsp;AcDbObjectId newEntId;<br/>&nbsp;pBlockTableRecord-&gt;appendAcDbEntity(newEntId, pBlkRef);<br/>&nbsp;pBlockTableRecord-&gt;close();<br/>&nbsp;pBlkRef-&gt;close();</p><p>&nbsp;////////////////////////////////////////////////////////////////////////////<br/>&nbsp;AcDbBlockTableRecord *pblockrec;<br/>&nbsp;acdbOpenObject(pblockrec,blockId,AcDb::kForWrite);<br/>&nbsp;AcDbAttributeDefinition *pAttriDef=new AcDbAttributeDefinition;</p><p><br/>&nbsp;pAttriDef-&gt;setPrompt("aa");<br/>&nbsp;pAttriDef-&gt;setTextString("a");<br/>&nbsp;pAttriDef-&gt;setTag("Tag");<br/>&nbsp;pAttriDef-&gt;setInvisible(Adesk::kFalse);<br/>&nbsp;pAttriDef-&gt;setPreset(Adesk::kFalse);<br/>&nbsp;pAttriDef-&gt;setConstant(Adesk::kFalse);<br/>&nbsp;pblockrec-&gt;appendAcDbEntity(newEntId,pAttriDef);<br/>&nbsp;pAttriDef-&gt;close();<br/>&nbsp;pblockrec-&gt;close();</p><p>}</p><p>插入一个外部块,然后给这个块加块属性,但是属性却看不到,炸开却有块属性在。这是什么问题?</p>

yuiyui 发表于 2007-7-18 11:54:00

<p>遇到了同样的问题</p><p>块里有块,内部块的属性值修改不了。</p><p>怎么办?</p>
页: [1]
查看完整版本: [求助]帮我看一下块加属性代码?