qqwwwee 发表于 2004-10-7 16:33:00

这段代码哪里有问题,为什么不能显示!!!!!!!!!!

int i;


                       AcDbObjectId lineId;<BR>        AcDbObjectId ptId;


<BR>                               AcGePoint3d Pt;


        AcDb3dPolyline *pLine = new AcDb3dPolyline();


        AcDbBlockTable *pBlockTable;<BR>                       acdbHostApplicationServices()-&gt;workingDatabase()<BR>                                                       -&gt;getSymbolTable(pBlockTable, AcDb::kForRead);


                       AcDbBlockTableRecord *pBlockTableRecord;<BR>                       pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord,<BR>                                                       AcDb::kForWrite);<BR>                       pBlockTable-&gt;close();


<BR>        for(i=1;i&lt;=10;i++)<BR>        {<BR>                       Pt.x=i;<BR>                Pt.y=i*rand();<BR>                Pt.z=0.0;<BR>                               AcDb3dPolylineVertex *pV=new AcDb3dPolylineVertex(Pt);<BR>                               pLine-&gt;appendVertex(ptId,pV);<BR>        }<BR>                       pBlockTableRecord-&gt;appendAcDbEntity(lineId, pLine); <BR>        pBlockTableRecord-&gt;close();<BR>                               pLine-&gt;close();<BR>

王咣生 发表于 2004-10-7 19:07:00

回复

参考:


        void getUcsToWcsMatrix(AcGeMatrix3d&amp; m, AcDbDatabase* db)<BR>        {<BR>                ASSERT(db != NULL);


                if (!acdbUcsMatrix(m, db)) {<BR>                        m.setToIdentity();<BR>                        ASSERT(0);<BR>                }<BR>        }


        void ucsToWcs(AcGePoint3dArray&amp; ptArray)<BR>        {<BR>                AcDbDatabase* db = acdbHostApplicationServices()-&gt;workingDatabase();<BR>                ASSERT(db != NULL);


                AcGeMatrix3d m;<BR>                getUcsToWcsMatrix(m, db);


                int len = ptArray.length();<BR>                for (int i=0; i&lt;len; i++)<BR>                        ptArray = m * ptArray;<BR>        }


        // ----- asdktest._test command (do not rename)<BR>        static void asdktest_test(void)<BR>        {<BR>                // Add your code for command asdktest._test here<BR>                int i;


                AcDbObjectId lineId;<BR>                AcDbObjectId ptId;<BR>                AcGePoint3d Pt;


                AcDb3dPolyline *pLine;


                AcDbBlockTable *pBlockTable;<BR>                acdbHostApplicationServices()-&gt;workingDatabase()-&gt;getSymbolTable(pBlockTable, AcDb::kForRead);


                AcDbBlockTableRecord *pBlockTableRecord;<BR>                pBlockTable-&gt;getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);<BR>                pBlockTable-&gt;close();


                AcGeMatrix3d ucsToWcsMat;


                acdbUcsMatrix(ucsToWcsMat);


                AcGePoint3dArray vertices;


                for(i=1;i&lt;=10;i++)<BR>                {<BR>                        Pt.x=i;<BR>                        Pt.y=i;<BR>                        Pt.z=0.0;<BR>                        vertices.append(Pt);<BR>                }


                pLine = new AcDb3dPolyline(AcDb::k3dSimplePoly, vertices);<BR>                pLine-&gt;setDatabaseDefaults();<BR>                <BR>                pBlockTableRecord-&gt;appendAcDbEntity(lineId, pLine); <BR>                pBlockTableRecord-&gt;close();<BR>                pLine-&gt;close();<BR>}

qqwwwee 发表于 2004-10-8 08:54:00

成功了,非常感谢!
页: [1]
查看完整版本: 这段代码哪里有问题,为什么不能显示!!!!!!!!!!