ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

AutoCAD模型空间多视口之叠加视口应用

2021-11-02 21:04:30  阅读:179  来源: 互联网

标签:acutPrintf Acad return 错误码 视口 多视口 AutoCAD es


模型空间的视口和图纸空间的视口一样可以叠加

叠加玩法ARX代码

		//复制重叠模型空间当前视口
		AcDbDatabase *pDb=curDoc()->database();
		if (NULL == pDb)
		{
			acutPrintf(_T("\n获取数据库指针失败!"));
			return;
		}
		AcDbViewportTablePointer pTbl(pDb,AcDb::kForWrite);
		Acad::ErrorStatus es= pTbl.openStatus();
		if (Acad::eOk != es)
		{
			acutPrintf(_T("\n错误码= %s"),acadErrorStatusText(es));
			return;
		}
		AcDbObjectId recordId;
		//获取激活视口记录Id
		es = pTbl->getAt(_T("*Active"),recordId);
		if (Acad::eOk != es)
		{
			acutPrintf(_T("\n错误码= %s"),acadErrorStatusText(es));
			return;
		}
		//智能指针打开
		AcDbViewportTableRecordPointer pRcd(recordId,AcDb::kForRead);
		es = pRcd.openStatus();
		if (Acad::eOk != es)
		{
			acutPrintf(_T("\n错误码= %s"),acadErrorStatusText(es));
			return;
		}
		//克隆激活视口记录
		AcDbViewportTableRecord *pNewRcd=AcDbViewportTableRecord::cast(pRcd->clone());
		if (NULL == pNewRcd)
		{
			acutPrintf(_T("\n克隆激活视口记录失败!"));
			return;
		}
		//添加到视口表
		es = pTbl->add(pNewRcd);
		if (Acad::eOk != es)
		{
			delete pNewRcd;
			acutPrintf(_T("\n错误码= %s"),acadErrorStatusText(es));
			return;
		}
		pRcd->close();
		//必须,clone的实体是写状态,需要close,便于acedVportTableRecords2Vports更新访问
		pNewRcd->close();
		//必须,AcDbViewportTable的实体是写状态,需要close,便于acedVportTableRecords2Vports更新访问
		pTbl->close();
		//更新视口表记录到视口
		es =acedVportTableRecords2Vports();
		if (Acad::eOk != es)
		{
			acutPrintf(_T("\n错误码= %s"),acadErrorStatusText(es));
			return;
		}

实际效果

这样的方式是相当于模型空间的显示区域都有一个视口同时在显示。可以通过cvport命令来切换当前激活的视口。

标签:acutPrintf,Acad,return,错误码,视口,多视口,AutoCAD,es
来源: https://www.cnblogs.com/edata/p/15501017.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有