Message 1 of 3
nested X-Ref
Not applicable
09-28-2004
03:35 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
hi,
I ahve to traverse nested x ref drawing databases without opening x-ref drawings.
i am using following code to do so
AcDbDatabase *pCurDwg = new AcDbDatabase(Adesk::kFalse,Adesk::kTrue);
es = pCurDwg->readDwgFile(av_DwgName,_SH_DENYNO);
if(es == Acad::eOk)
{
AcDbBlockTablePointer bt(pCurDwg, AcDb::kForRead);
AcDbBlockTableIterator *it;
es =bt->newIterator(it);
if ( es== Acad::eOk )
{
for ( ; !it->done(); it->step() )
{ AcDbObjectId btrId;
it->getRecordId(btrId);
AcDbBlockTableRecordPointer btr(btrId, AcDb::kForRead);
bool data=false;
data=btr->isFromExternalReference();
if ( data==true )
{ pCurDwg = btr->xrefDatabase();
//Check for valid pointer // if(NULL != pCurDwg) {
//here i am not getting the x-ref drawing pointer i am getting NULL.
the method isFromExternalReference() returns TRUE but i am not getting pointer to that database.
can any one help me to solve this
thanks in advance.
santosh
I ahve to traverse nested x ref drawing databases without opening x-ref drawings.
i am using following code to do so
AcDbDatabase *pCurDwg = new AcDbDatabase(Adesk::kFalse,Adesk::kTrue);
es = pCurDwg->readDwgFile(av_DwgName,_SH_DENYNO);
if(es == Acad::eOk)
{
AcDbBlockTablePointer bt(pCurDwg, AcDb::kForRead);
AcDbBlockTableIterator *it;
es =bt->newIterator(it);
if ( es== Acad::eOk )
{
for ( ; !it->done(); it->step() )
{ AcDbObjectId btrId;
it->getRecordId(btrId);
AcDbBlockTableRecordPointer btr(btrId, AcDb::kForRead);
bool data=false;
data=btr->isFromExternalReference();
if ( data==true )
{ pCurDwg = btr->xrefDatabase();
//Check for valid pointer // if(NULL != pCurDwg) {
//here i am not getting the x-ref drawing pointer i am getting NULL.
the method isFromExternalReference() returns TRUE but i am not getting pointer to that database.
can any one help me to solve this
thanks in advance.
santosh