<?xml encoding=”UTF-8″>By Deepak Nadig
Here is a sample code to create a simple Polygon mesh using ObjectARX. When AcDbPolygonMesh() constructor is used without any parameters,vertex count in M and N directions has to be set explicitly and it needs to be specified if PolygonMesh is to be open or closed in M and N directions.
<p>void createSimplePolygonMesh() <br>{<br> // polyline creation <br> AcGePoint3dArray ptArr;<br> ptArr.setLogicalLength(4);<br> for (int i = 0; i < 4; i++) <br> {<br> ptArr[i].set((double)(i/2), (double)(i%2), 0.0);<br> }<br> AcDb2dPolyline *pNewPline = new AcDb2dPolyline( AcDb::k2dSimplePoly, ptArr, 0.0, Adesk::kTrue);<br> pNewPline->setColorIndex(3);</p>
<p>//polygon mesh constructor without any parameter<br> AcDbPolygonMesh *pMesh = new AcDbPolygonMesh(); <br> pMesh->setMSize(1);<br> pMesh->setNSize(4);<br> pMesh->makeMClosed();<br> pMesh->makeNClosed();</p>
<p>AcDbVoidPtrArray arr; <br> arr.append(pMesh);</p>
<p>AcDbBlockTable *pBlockTable;<br> acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pBlockTable, AcDb::kForRead);</p>
<p>AcDbBlockTableRecord *pBlockTableRecord;<br> pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);<br> pBlockTable->close();</p>
<p>AcDbObjectId plineObjId;<br> pBlockTableRecord->appendAcDbEntity(plineObjId,pNewPline);</p>
<p>AcDbObjectIterator *pVertIter= pNewPline->vertexIterator();<br> AcDb2dVertex *pVertex;<br> AcGePoint3d location;<br> AcDbObjectId vertexObjId; <br> for (int vertexNumber = 0; !pVertIter->done();<br> vertexNumber++, pVertIter->step())<br> {<br> vertexObjId = pVertIter->objectId();<br> acdbOpenObject(pVertex, vertexObjId,<br> AcDb::kForRead);<br> location = pVertex->position();<br> pVertex->close(); <br> AcDbPolygonMeshVertex* polyVertex = new AcDbPolygonMeshVertex(pVertex->position()); <br> pMesh->appendVertex(polyVertex);<br> polyVertex->close();<br> }<br> delete pVertIter;</p>
<p>pBlockTableRecord->appendAcDbEntity(pMesh);<br> pBlockTableRecord->close();<br> pNewPline->close();<br> pMesh->close(); <br>}</p>
<p> </p>

Leave a Reply