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