视频课程由yunyou.ke.qq.com提供
一、本节课程
C++ ARX二次开发视图、视口、UCS
二、本节要讲解的知识点
1、C++ ARX开发中视图的获取、设置等知识
2、C++ARX开发中视口的相关概念及设置
3、UCS相关概念、获取和修改
三、具体内容
1、开发视图的思路:
AcDbViewTableRecord 来表示AUTOCAD中的视图。
如何调整视图:先获取当前视图,设置一些特性,然后acedSetCurrentView函数来更新视图。
2、与视图相关的系统变量,来获取当前视图的一些参数。
VIEWMODE、VIEWCTR、LENSLENGTH、TARGET、VIEWDIR、VIEWSIZE、SCREENSIZE
void CViewUtil::GetCurrentView(AcDbViewTableRecord &view) { struct resbuf rb; struct resbuf wcs,ucs,dcs; wcs.restype=RTSHORT; wcs.resval.rint=0; ucs.restype=RTSHORT; ucs.resval.rint=1; dcs.restype=RTSHORT; dcs.resval.rint=2;
//获得当前视口的查看模式 acedGetVar(TEXT("VIEWMODE"),&rb); view.setPerspectiveEnabled((rb.resval.rint&1)!=0); view.setFrontClipEnabled((rb.resval.rint&2)!=0); view.setBackClipEnabled((rb.resval.rint&4)!=0); view.setFrontClipAtEye((rb.resval.rint&16)==0);
//当前视口中视图的中心点(UCS坐标) acedGetVar(TEXT("VIEWCTR"),&rb); acedTrans(rb.resval.rpoint,&ucs,&dcs,0,rb.resval.rpoint); view.setCenterPoint(AcGePoint2d(rb.resval.rpoint[X],rb.res |