C++ ARX二次开发视图、视口、UCS

本节C++ ARX二次开发课程主要讲解了视图、视口和UCS的相关知识。内容包括如何获取和设置视图,理解视图的系统变量,如VIEWMODE、VIEWCTR等,以及如何使用acedSetCurrentView函数更新视图。此外,还介绍了UCS的概念,获取和修改方法。通过CViewUtil类提供了获取和设置视图的函数,以及应用视图知识实现的各种缩放功能。
摘要由CSDN通过智能技术生成

视频课程由yunyou.ke.qq.com提供

一、本节课程
C++ ARX二次开发视图、视口、UCS

二、本节要讲解的知识点

1C++ ARX开发中视图的获取、设置等知识

2C++ARX开发中视口的相关概念及设置

3UCS相关概念、获取和修改

三、具体内容

1、开发视图的思路:

AcDbViewTableRecord 来表示AUTOCAD中的视图。

 

如何调整视图:先获取当前视图,设置一些特性,然后acedSetCurrentView函数来更新视图。

2、与视图相关的系统变量,来获取当前视图的一些参数。

VIEWMODEVIEWCTRLENSLENGTHTARGETVIEWDIRVIEWSIZESCREENSIZE

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值