![]() |
【转帖】can i use oddbpolygonmesh to create an solid 3d from a conve
can i use oddbpolygonmesh to create an solid 3d from a conve
can i use oddbpolygonmesh to create an solid 3d from a convex polygon such as lshape? i just wonder if i can use oddbpolygonmesh to create a solid 3d lshape. in odwriteex sample, oddbpolygonmesh is used for a none-convex polygon. thanks. oddbpolygonmesh is a 3d surface. it's specified by array of vertices (mxn) sergey slezkin i try to create a solid 3d polyhedron lshape with this code code: void dbfiller::addlshape(const oddbobjectid& btrid) { oddbblocktablerecordptr bbtr = btrid.safeopenobject(oddb::kforwrite); oddbpolygonmeshptr pmesh = oddbpolygonmesh::createobject(); pmesh->setdatabasedefaults(bbtr->database()); bbtr->appendoddbentity(pmesh); int msize = 2, nsize = 6; pmesh->setmsize(msize); pmesh->setnsize(nsize); // start profile (6 vertices) odgepoint3d point1 = odgepoint3d(0.0, 0.0, 0.0); odgepoint3d point2 = odgepoint3d(0.0, 10.0, 0.0); odgepoint3d point3 = odgepoint3d(4.0, 10.0, 0.0); odgepoint3d point4 = odgepoint3d(4.0, 4.0, 0.0); odgepoint3d point5 = odgepoint3d(10.0, 4.0, 0.0); odgepoint3d point6 = odgepoint3d(10.0, 0.0, 0.0); // end profile (6 vertices) odgepoint3d point7 = odgepoint3d(0.0, 0.0, 10.0); odgepoint3d point8 = odgepoint3d(0.0, 10.0, 10.0); odgepoint3d point9 = odgepoint3d(4.0, 10.0, 10.0); odgepoint3d point10 = odgepoint3d(4.0, 4.0, 10.0); odgepoint3d point11 = odgepoint3d(10.0, 4.0, 10.0); odgepoint3d point12 = odgepoint3d(10.0, 0.0, 10.0); appendpgmeshvertex(pmesh, point1); appendpgmeshvertex(pmesh, point2); appendpgmeshvertex(pmesh, point3); appendpgmeshvertex(pmesh, point4); appendpgmeshvertex(pmesh, point5); appendpgmeshvertex(pmesh, point6); appendpgmeshvertex(pmesh, point7); appendpgmeshvertex(pmesh, point8); appendpgmeshvertex(pmesh, point9); appendpgmeshvertex(pmesh, point10); appendpgmeshvertex(pmesh, point11); appendpgmeshvertex(pmesh, point12); pmesh->makenclosed(); } when i view it in autocad with gouround shaded, it is not a solid 3d because it misses 2 polygons (the start polygon with 6 vertices and the end polygon with 6 vertices). any idea, to fix the problem? thank very much. last edited by hnguyen; 14th august 2007 at 01:43 pmfff">. each face of polygon mesh has 4 vertices (if 2 of them coincide it's a triangle). number of faces is (m-1)x(n-1) if mesh is not closed or mxn if it's closed in both directions. vertices is array mxn. the 4 corners of the face are defined by the vertices with indices: m,n m+1, n m+1, n+1 m, n+1 in your example (m=2, not closed; n=6, closed) you defined 6 faces. sergey slezkin |
所有的时间均为北京时间。 现在的时间是 05:47 AM. |