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:

verallvportid() 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