zoukankan      html  css  js  c++  java
  • 设置视口中心点setViewCenter

    ads_point pt;
            ads_name ent,ss;
            //切换到模型空间
            acedMspace();
            if (RTNORM != acedGetPoint(NULL,_T("
    选择新的视口中心点:"),pt))
            {
                return;
            }
            acutPrintf(_T("
    拾取视口中心点(%0.4lf,%0.4lf)"),pt[X],pt[Y]);
            // 转换坐标系的标记
            struct resbuf ucs, dcs;
            ucs.restype = RTSHORT;
            ucs.resval.rint = 1;
            dcs.restype = RTSHORT;
            dcs.resval.rint = 2;        
            acedTrans(pt,&ucs,&dcs,NULL,pt);
            AcGePoint2d ptCenter=asPnt2d(pt);
            //切换到图纸空间
            acedPspace();
            if (RTNORM != acedSSGet(NULL,NULL,NULL,NULL,ss))
            {
                return;
            }
            Adesk::Int32 nLength;
            acedSSLength(ss,&nLength);
            for (Adesk::Int32 i=0;i<nLength;i++)
            {
                AcDbObjectId objId=AcDbObjectId::kNull;
                acedSSName(ss,i,ent);
                acdbGetObjectId(objId,ent);
                AcDbObjectPointer<AcDbViewport> pVp(objId,AcDb::kForWrite);
                if (Acad::eOk != pVp.openStatus() || pVp == NULL)
                {
                    continue;
                }
                //pVp->setViewCenter()
                AcGePoint2d ptOld= pVp->viewCenter();
                acutPrintf(_T("
    原有视口中心点(%0.4lf,%0.4lf)"),ptOld.x,ptOld.y);
                acutPrintf(_T("
    设置视口中心点(%0.4lf,%0.4lf)"),ptCenter.x,ptCenter.y);
                pVp->setViewCenter(ptCenter);
                ptOld= pVp->viewCenter();
                acutPrintf(_T("
    结果视口中心点(%0.4lf,%0.4lf)"),ptOld.x,ptOld.y);
            }
            acedSSFree(ss);
  • 相关阅读:
    VB6SP6极度精简兼容绿色版
    Upnp资料整理
    RevMan简单入门指南
    小程序 --flex
    IV
    2017-10-27错误日志
    170616_2
    170616
    2017-06-07
    111111112222
  • 原文地址:https://www.cnblogs.com/edata/p/10777244.html
Copyright © 2011-2022 走看看