TheSwamp

Code Red => .NET => Topic started by: ahlzl on September 21, 2008, 04:21:40 AM

Title: how ObjectId change to AcDbObjectId
Post by: ahlzl on September 21, 2008, 04:21:40 AM
Entity -> AcDbEntity:
AcDbEntity *pEnt = (AcDbEntity*)ent.UnmanagedObject.ToPointer();  // ent is Entity

but how ObjectId change to AcDbObjectId? thanks for your help.
Title: Re: how ObjectId change to AcDbObjectId
Post by: It's Alive! on September 21, 2008, 04:45:42 AM
you can try something like

Code: [Select]
    ObjectId idb;
    AcDbObjectId ida;

    ida.setFromOldId(idb.OldId);
    idb = ObjectId(ida.asOldId());

//or

    ObjectId idc((long)(AcDbStub*)ida);
    AcDbObjectId idd(reinterpret_cast<AcDbStub*>(idc.OldId));

Title: Re: how ObjectId change to AcDbObjectId
Post by: It's Alive! on September 21, 2008, 02:46:10 PM
another way

Code: [Select]
    Editor^ ed = Application::DocumentManager->MdiActiveDocument->Editor;
    Database ^pDb = Application::DocumentManager->MdiActiveDocument->Database;
    AcDbObjectId ide = *reinterpret_cast<AcDbObjectId*>(&(pDb->CurrentSpaceId));

    ed->WriteMessage(pDb->CurrentSpaceId.ToString());
    acutPrintf(_T("\n%ld"), ide.asOldId());
Title: Re: how ObjectId change to AcDbObjectId
Post by: ahlzl on October 09, 2008, 09:38:59 AM
you can try something like

Code: [Select]
    ObjectId idb;
    AcDbObjectId ida;

    ida.setFromOldId(idb.OldId);
    idb = ObjectId(ida.asOldId());

//or

    ObjectId idc((long)(AcDbStub*)ida);
    AcDbObjectId idd(reinterpret_cast<AcDbStub*>(idc.OldId));


Daniel is god !

Code: [Select]
    ObjectId idb;
    AcDbObjectId ida;

    ida.setFromOldId(idb->OldId);
    idb = ObjectId(ida.asOldId());
Title: Re: how ObjectId change to AcDbObjectId
Post by: TonyT on October 09, 2008, 03:13:45 PM
Entity -> AcDbEntity:
AcDbEntity *pEnt = (AcDbEntity*)ent.UnmanagedObject.ToPointer();  // ent is Entity

but how ObjectId change to AcDbObjectId? thanks for your help.

from mgdinterop.h:

Code: [Select]

#define GETOBJECTID(id)     (*reinterpret_cast<AcDbObjectId*>(&(id)))

inline Autodesk::AutoCAD::DatabaseServices::ObjectId ToObjectId(const AcDbObjectId& pt)
{
    Autodesk::AutoCAD::DatabaseServices::ObjectId ret;
    GETOBJECTID(ret) = pt;
    return ret;
}