C++ cad设置视角居中显示在指定坐标以及视口的宽度和高度设置

7 篇文章 0 订阅

//设置当前视图
        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);

        view.setCenterPoint(可视区域中心位置坐标);

        //当前视口透视图中的镜头焦距长度(单位为毫米)
        acedGetVar(TEXT("LENSLENGTH"), &rb);
        view.setLensLength(10000);

        //当前视口的观察方向(UCS)
        acedGetVar(TEXT("VIEWDIR"), &rb);
        acedTrans(rb.resval.rpoint, &ucs, &wcs, 1, rb.resval.rpoint);
        view.setViewDirection(AcGeVector3d(0, 0, 1));
        //当前视口的视图高度(图形单位)
        acedGetVar(TEXT("VIEWSIZE"), &rb);

        // double height = rb.resval.rreal;
        //以像素为单位的当前视口的大小(X和Y值)
        acedGetVar(TEXT("SCREENSIZE"), &rb);
        view.setHeight(高度);
        view.setWidth(宽度);

        acedSetCurrentView(&view, NULL);

//刷新

acDocManager->sendStringToExecute(curDoc(), _T("REGEN\n"), true, false, false);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值