当前位置:网站首页>CAD ARX 获取当前的视口设置
CAD ARX 获取当前的视口设置
2022-07-06 07:51:00 【zxt_net】
AcDbViewTableRecord 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(“VIEWMODE”, &rb);
view.setPerspectiveEnabled(rb.resval.rint & 1);
view.setFrontClipEnabled(rb.resval.rint & 2);
view.setBackClipEnabled(rb.resval.rint & 4);
view.setFrontClipAtEye(!(rb.resval.rint & 16));
// 当前视口中视图的中心点(UCS坐标)
acedGetVar(“VIEWCTR”, &rb);
acedTrans(rb.resval.rpoint, &ucs, &dcs, 0, rb.resval.rpoint);
view.setCenterPoint(AcGePoint2d(rb.resval.rpoint[X],
rb.resval.rpoint[Y]));
// 当前视口透视图中的镜头焦距长度(单位为毫米)
acedGetVar(“LENSLENGTH”, &rb);
view.setLensLength(rb.resval.rreal);
// 当前视口中目标点的位置(以 UCS 坐标表示)
acedGetVar(“TARGET”, &rb);
acedTrans(rb.resval.rpoint, &ucs, &wcs, 0, rb.resval.rpoint);
view.setTarget(AcGePoint3d(rb.resval.rpoint[X],
rb.resval.rpoint[Y], rb.resval.rpoint[Z]));
// 当前视口的观察方向(UCS)
acedGetVar(“VIEWDIR”, &rb);
acedTrans(rb.resval.rpoint, &ucs, &wcs, 1, rb.resval.rpoint);
view.setViewDirection(AcGeVector3d(rb.resval.rpoint[X],
rb.resval.rpoint[Y], rb.resval.rpoint[Z]));
// 当前视口的视图高度(图形单位)
acedGetVar(“VIEWSIZE”, &rb);
view.setHeight(rb.resval.rreal);
double height = rb.resval.rreal;
// 以像素为单位的当前视口的大小(X 和 Y 值)
acedGetVar(“SCREENSIZE”, &rb);
view.setWidth(rb.resval.rpoint[X] / rb.resval.rpoint[Y] * height);
// 当前视口的视图扭转角
acedGetVar(“VIEWTWIST”, &rb);
view.setViewTwist(rb.resval.rreal);
// 将模型选项卡或最后一个布局选项卡置为当前
acedGetVar(“TILEMODE”, &rb);
int tileMode = rb.resval.rint;
// 设置当前视口的标识码
acedGetVar(“CVPORT”, &rb);
int cvport = rb.resval.rint;
// 是否是模型空间的视图
bool paperspace = ((tileMode == 0) && (cvport == 1)) ? true : false;
view.setIsPaperspaceView(paperspace);
if (!paperspace)
{
// 当前视口中前向剪裁平面到目标平面的偏移量
acedGetVar(“FRONTZ”, &rb);
view.setFrontClipDistance(rb.resval.rreal);
// 获得当前视口后向剪裁平面到目标平面的偏移值
acedGetVar(“BACKZ”, &rb);
view.setBackClipDistance(rb.resval.rreal);
}
else
{
view.setFrontClipDistance(0.0);
view.setBackClipDistance(0.0);
}
return view;
}
边栏推荐
- Interview Reply of Zhuhai Jinshan
- 上线APS系统,破除物料采购计划与生产实际脱钩的难题
- ROS learning (IX): referencing custom message types in header files
- CF1036C Classy Numbers 题解
- 数据治理:误区梳理篇
- [Yugong series] February 2022 U3D full stack class 011 unity section 1 mind map
- The State Economic Information Center "APEC industry +" Western Silicon Valley will invest 2trillion yuan in Chengdu Chongqing economic circle, which will surpass the observation of Shanghai | stable
- 好用的TCP-UDP_debug工具下载和使用
- Significance and measures of encryption protection for intelligent terminal equipment
- TS 类型体操 之 循环中的键值判断,as 关键字使用
猜你喜欢
Google may return to the Chinese market after the Spring Festival.
JMeter performance test steps practical tutorial
21. Delete data
珠海金山面试复盘
A Closer Look at How Fine-tuning Changes BERT
Qualitative risk analysis of Oracle project management system
Linked list interview questions (Graphic explanation)
"Friendship and righteousness" of the center for national economy and information technology: China's friendship wine - the "unparalleled loyalty and righteousness" of the solidarity group released th
Sharing of source code anti disclosure scheme under burning scenario
Codeforces Global Round 19(A~D)
随机推荐
Redis list detailed explanation of character types yyds dry goods inventory
Parameter self-tuning of relay feedback PID controller
Full Score composition generator: living on code
Games101 Lesson 7 shading 1 Notes
[cf gym101196-i] waif until dark network maximum flow
edge浏览器 路径获得
Mise en œuvre du langage leecode - C - 15. Somme des trois chiffres - - - - - idées à améliorer
[untitled]
Compliance and efficiency, accelerate the digital transformation of pharmaceutical enterprises, and create a new document resource center for pharmaceutical enterprises
C # connect to SQLite database to read content
Google may return to the Chinese market after the Spring Festival.
Codeforces Global Round 19(A~D)
软件开发的一点随记
. Net 6 learning notes: what is NET Core
Wireshark grabs packets to understand its word TCP segment
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
649. Dota2 Senate
Database addition, deletion, modification and query
Data governance: Data Governance under microservice architecture
21. Delete data