咖迷社区(CAXA数码大方)

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1272|回复: 0

缩放问题

[复制链接]

2

主题

2

帖子

76

积分

新手上路

Rank: 1

积分
76
发表于 2025-4-18 11:20:01 | 显示全部楼层 |阅读模式
在CAD电子图版的插件开发中,如何获取整个图纸对象并对其缩放?我按照文档的说明写了如下代码,但运行报错:
    CRxDbDatabase *pDb = crxdbHostApplicationServices()->workingDatabase();

    // 打开当前图形模型空间块表记录
    CDraft::ErrorStatus es = CDraft::eOk;
    //
    CRxDbPaperTable* pTable;

    es = pDb->getPaperTable(pTable, CRxDb::kForRead);
    if (es != CDraft::eOk)
        return es;

        CRxDbObjectId entId;
    CRxDbPaperTableRecord* pRecord;
        pTable->getAt(_T("Model"), pRecord, CRxDb::kForRead);
//        pTable->getAt(_T("Model"), entId);
    //如果记录不为空,则读取明细表内容
       
//    if (pRecord != NULL)
        {
//                entId = pRecord->objectId();
                entId = pTable->objectId();
        }

        CRxGeMatrix3d mat;
    mat.setToScaling(scaleRatio, CCalculation::Pt2dTo3d(CRxGePoint2d::kOrigin));

    // 对实体进行变换
        CRxDbEntity *pEnt = NULL;
        es = acdbOpenObject(pEnt, entId, CRxDb::kForWrite, false);
    if (es != CDraft::eOk)
                return es;

//        pRecord->close();
        pTable->close();
    es = pEnt->transformBy(mat);    //  运行至此报错(内存方面的错误)
        pEnt->close();

        return es;


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|咖迷社区(CAXA数码大方) ( 京ICP备05001831号-1 )

GMT+8, 2025-6-20 17:19 , Processed in 0.140490 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表