几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】[原创]高手帮帮忙 如何在图纸空间创建新视口并实现缩放!!! (http://www.dimcax.com/hust/showthread.php?t=6575)

yang686526 2009-04-16 01:30 PM

【转帖】[原创]高手帮帮忙 如何在图纸空间创建新视口并实现缩放!!!
 
[原创]高手帮帮忙 如何在图纸空间创建新视口并实现缩放!!!
[原创]高手帮帮忙 如何在图纸空间创建新视口并实现缩放!!!
void cdrawtu::createsk()
{
// 指定当前布局
acad::errorstatus es =
acdbhostapplicationservices()->layoutmanager()
->setcurrentlayout(_t("布局1"));
if (es != acad::eok)
{
return;
}
// 获得块表
acdbblocktable *pblktbl;
acdbhostapplicationservices()->workingdatabase()
->getblocktable(pblktbl, acdb::kforread);
// 获得图纸空间的块表记录
acdbblocktablerecord *pblktblrcd;
pblktbl->getat(acdb_paper_space, pblktblrcd,
acdb::kforwrite);
pblktbl->close();
// 创建新的布局对象
acdbviewport *pviewport = new acdbviewport();
pviewport->setcenterpoint(acgepoint3d(50, 50, 0));
pviewport->setheight(80);
pviewport->setwidth(120);
// 将新的布局对象添加到图纸空间块表记录中
acdbobjectid viewportid;
pblktblrcd->appendacdbentity(viewportid, pviewport);
pviewport->close();
pblktblrcd->close();
// 将新建的视口作为当前视口
acdbviewport *pvp;
acdbopenobject(pvp, viewportid, acdb::kforwrite);
pviewport->seton();
int vpnum = pviewport->number();
pvp->close();
acedcommand(rtstr, _t("_pspace"), 0);
es = acedsetcurrentvport(pvp);
acedcommand(rtstr, _t("_zoom"), rtstr, _t("_extents"), 0);
}
以上代码实现了创建新视口 但是没能实现缩放 而且原有视口如何删除 请各位高手指点一下


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