CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

dwgInFields() 的示例代码

2022-12-31 22:27| 发布者: admin| 查看: 388| 评论: 0|来自: AutoCAD

以下是以下示例代码:AsdkPoly::dwgInFields()

Acad::ErrorStatus
AsdkPoly::dwgInFields(AcDbDwgFiler* filer)
{
    assertWriteEnabled();
    Acad::ErrorStatus es;
    if ((es = AcDbCurve::dwgInFields(filer)) != Acad::eOk) 
    {
        return es;
    }
    // Object Version - must always be the first item.
    //
    Adesk::Int16 version;
    filer->readItem(&version);
    if (version > VERSION)
        return Acad::eMakeMeProxy;
    switch (version)
    {
    case 1:
    {
        AcGePoint3d center;
        filer->readPoint3d(&center);
        AcGePoint3d startPoint;
        filer->readPoint3d(&startPoint);
        filer->readInt32(&mNumSides);
        filer->readVector3d(&mPlaneNormal);
        acutDelString(mpName);
        filer->readString(&mpName);
        filer->readHardPointerId(&mTextStyle);
        //convert data from old format
        acdbWcs2Ecs(asDblArray(center),asDblArray(center),
            asDblArray(mPlaneNormal),Adesk::kFalse);
        mCenter.set(center.x,center.y);
        mElevation = center.z;
        acdbWcs2Ecs(asDblArray(startPoint),asDblArray(startPoint),
            asDblArray(mPlaneNormal),Adesk::kFalse);
        mStartPoint.set(startPoint.x,startPoint.y);
        assert(mElevation == startPoint.z);
        break;
    }
    case 2:
        filer->readPoint2d(&mCenter);
        filer->readPoint2d(&mStartPoint);
        filer->readInt32(&mNumSides);
        filer->readVector3d(&mPlaneNormal);
        acutDelString(mpName);
        filer->readString(&mpName);
        filer->readHardPointerId(&mTextStyle);
        filer->readDouble(&mElevation);
        break;
    default:
        assert(false);
    }
    return filer->filerStatus();
}

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部