几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】adjustviewport method (http://www.dimcax.com/hust/showthread.php?t=15060)

yang686526 2009-05-04 03:47 PM

【转帖】adjustviewport method
 
adjustviewport method
adjustviewport method
hi,
we have 1.12.01 code that uses the adjustviewport method of oddbabstractviewportdata. how should this be modified in 1.14?
thanks.
hi,
please, use
void odabstractviewpe::setview(odrxobject* pdestinationview, const odrxobject* psourceview) const
instead. odabstractviewpe is a base class for the oddbabstractviewportdata.
thanks for your reply! can i use the same setview method to replace adjustviewportrec?
hi,
yes, you can use it like that:
code:
oddbviewporttablerecordptr pvp = ...; // obtain db view
odgsviewptr pview = ...; // obtain corresponding gs view
odabstractviewpeptr pabstrviewpe;
pabstrviewpe = pview; // get pe from gs view
pabstrviewpe->setview(pview, pvp); // to gs view
pabstrviewpe = pvp; // get pe from db view
pabstrviewpe->setview(pvp, pview); // from gs view
hi,
thanks for your reply but i am still a bit confused as to how to use it. i am kind of new to this and i am maintaining existing code. the existing code is as below:
oddbdatabaseptr m_cadptr = oddbhostappservices->readfile();
oddbobjectid viewtableid = m_cadptr->getviewtableid();
oddbviewtableptr pviewtable = viewtableid.safeopenobject();
oddbsymboltableiteratorptr viewiter = pviewtable->newiterator();
oddbobjectid viewrecordid = viewiter->getrecordid();
oddbviewtablerecordptr pviewrecord = viewrecordid.openobject();
oddbviewporttableptr vptabl = m_cadptr->getviewporttableid().safeopenobject();
oddbviewporttablerecordptr vp = vptabl->getactiveviewportid().safeopenobject(oddb::kforwr ite);
oddbabstractviewportdataptr pdbviewport = oddbabstractviewportdata::cast(pviewrecord);
pdbviewport->adjustviewportrec(pviewrecord,vp);
how do i rewrite the usage of "adjustviewportrec"? thank you for your help.
hi,
just replace last 2 lines with new ones to get equivalent new code:
oddbabstractviewportdataptr pdbviewport(vp);
pdbviewport->setview(vp, pviewrecord); // restores view settings <=> pdbviewport->adjustviewportrec(pviewrecord,vp);
but if this code is an analog of restoring named view in autocad you also need to add this:
pdbviewport->setucs(vp, pviewrecord); // restores ucs settings
pdbviewport->setprops(vp, pviewrecord); // restores other setting (e.g. grid settings)
// restore layer states (ac2005 feature):
odstring slsname = pviewrecord->getlayerstate();
if(!slsname.isempty())
{
oddblayerstate::restore(pdb, slsname,
oddblayerstate::kundefdonothing, oddblayerstate::kon|oddblayerstate::kfrozen);
}
see cnamedviewsdlg::onsetcurrentbutton() in namedviewsdlg.cpp in odamfcapp example for details.
last edited by dmitry a. novikov; 6th february 2006 at 01:15 amfff">.


所有的时间均为北京时间。 现在的时间是 03:27 PM.