![]() |
【转帖】viewport Doesnt Show
viewport doesn't show
viewport doesn't show i'm new to dd and want to export a simple drawing from my app. i tried set up a viewport, but it doesn't show in acad code: oddbblocktablerecordptr pps = pdb->getpaperspaceid().safeopenobject(oddb::kforwrite); oddbviewportptr pvp = oddbviewport::createobject(); pvp->setviewtarget( odgepoint3d(0,0,0) ); pvp->setviewcenter( odgepoint2d(10,10) ); pvp->setwidth( 10 ); pvp->setheight( 10 ); pps->appendoddbentity(pvp); what could be wrong? look at the code creating viewport in odwriteex sample. sergey slezkin if it wasn't for odwriteex, i wouldn't have been able to write this code. is there anything obviously wrong? using the odwriteex example i output to acad12 format, but on "layout1" tab i don't see the viewport on the plot - where is it? i want to setup two viewports on the drawing, one to the left and one to the right. how to do this? i tried looking at the odwriteex example, but it isn't much help, i don't even see the generated viewport on the layout.. recently, i've added next code to odwriteex project: code: // create a new layout oddbobjectid newlayoutid = pdb->createlayout("ddt layout"); oddblayoutptr playout = newlayoutid.safeopenobject(); pdb->setcurrentlayout(newlayoutid); // also creates overall (paperspase) viewport oddbviewportptr poverallvp = playout->overallvportid().safeopenobject(); // create active viewport oddbviewportptr pnewvp = oddbviewport::createobject(); oddbblocktablerecordptr pnewps = playout->getblocktablerecordid().safeopenobject(oddb::kforwrite); pnewps->appendoddbentity(pnewvp); // set active viewport properties pnewvp->setwidth(poverallvp->width()); pnewvp->setheight(poverallvp->height()); pnewvp->setcenterpoint(poverallvp->centerpoint()); pnewvp->setviewcenter(poverallvp->viewcenter()); pnewvp->zoomextents(); note that paperspace has one overall viewport and viewports for modelspace entities. if oddblayout::overallvportid() returns null id, then this oddblayout has never been switched to (activated). oddbdatabase::setcurrentlayout() method creates overall viewport if paperspace has no any viewports. you can use the next methods to set location and size of viewport on paper (paperunits): oddbviewport::setwidth() oddbviewport::setheight() oddbviewport::setcenterpoint() and the next methods to set view of viewport (wcs): oddbviewport::setviewtarget() oddbviewport::setviewdirection() oddbviewport::setviewheight() oddbviewport::setviewcenter() regards, sergey vishnevetsky ahhh, so you add the viewport to the paperspace of the newly created layout.. going to try this at work tomorrow..! what is the default size of the new layout ? the default paper size is 8.50x11.00 inches. regards, sergey vishnevetsky |
所有的时间均为北京时间。 现在的时间是 11:15 AM. |