找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 23|回复: 0

arx 布局中添加视口:布局名称、视口中心、视口宽、视口高

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-9-25 23:29:56 | 显示全部楼层 |阅读模式
  1. // 布局中添加视口:布局名称、视口中心、视口宽、视口高
  2. void Vport::InSpace(const CString &space,
  3.                                         const AcGePoint3d &pc,
  4.                                         double width,
  5.                                         double height)
  6. {        // 布局管理器中切换当前视口为布局1
  7.         Acad::ErrorStatus es = acdbHostApplicationServices()->
  8.                 layoutManager()->setCurrentLayout(space);
  9.         // 如果失败,直接返回主程序
  10.         if (es != Acad::eOk)
  11.                 return;
  12.         // 块表->布局空间块表记录->关闭块表
  13.         AcDbBlockTable *pBlkTbl = NULL;
  14.         acdbHostApplicationServices()->workingDatabase()->
  15.                 getBlockTable(pBlkTbl, AcDb::kForRead);
  16.         AcDbBlockTableRecord *pBlkTblRcd = NULL;
  17.         pBlkTbl->getAt(ACDB_PAPER_SPACE, pBlkTblRcd, AcDb::kForWrite);
  18.         pBlkTbl->close();
  19.         // 新建视口:设置中心点,宽,高
  20.         AcDbViewport *pViewport = new AcDbViewport();
  21.         pViewport->setCenterPoint(pc);
  22.         pViewport->setHeight(height);
  23.         pViewport->setWidth(width);
  24.         // 添加进视口记录中:返回记录id  viewportId
  25.         AcDbObjectId viewportId;
  26.         pBlkTblRcd->appendAcDbEntity(viewportId, pViewport);
  27.         pViewport->close();
  28.         pBlkTblRcd->close();
  29.         // 创建布局视口表对象,区别于AcDbViewportTable(模型视口表对象)
  30.         AcDbViewport *pVP = NULL;
  31.         if (acdbOpenObject(pVP, viewportId, AcDb::kForWrite) == Acad::eOk)
  32.         {        // 添加后要显示视口必须打开
  33.                 pVP->setOn();
  34.                 // 把新建的视口设成当前活动视口
  35.                 acedSetCurrentVPort(pVP);
  36.                 pVP->close();
  37.         }
  38. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-27 22:02 , Processed in 0.128895 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表