Тема: Изменение базы данных текущего рисунка на базу данных другого рисунка
Здравствуйте,
Уважаемые помогите пожалуйста - есть проблема.
У меня есть файл с рисунком в котором к примеру нарисован круг и квадрат( файл сохранен на диске). Я запускаю Автокад и мне надо из Автокада прочитать рисунок, хранящийся на диске, причем мне надо выбрать сущности только ф-ей acedSSGet, но она не хочет работать. Делаю так:
AcDbObjectId id; AcDbObjectIdArray list; AcDbDatabase extDatabase(Adesk::kFalse); pCur = acdbHostApplicationServices()->workingDatabase(); if (Acad::eOk != extDatabase.readDwgFile("C:\\ArxProgram\\1.dwg",_SH_DENYRW)) { return FALSE; } if (Acad::eOk != extDatabase.getSymbolTable(m_pBlockTable, AcDb::kForRead)) { return FALSE; } acdbHostApplicationServices()->setWorkingDatabase(&extDatabase); ads_point pt1, pt2,pt3, pt4; pt1[X] = 0; pt1[Y] = 0; pt1[Z] = 0; pt2[X] = 100000; pt2[Y] = 100000; pt2[Z] = 0.0; pt3[X] = 50; pt3[Y] = 50; pt3[Z] = 0; pt4[X] = 0; pt4[Y] = 50; pt4[Z] = 0; ads_name ssname; long len; acedSSGet("X", NULL, NULL, NULL, ssname); acedSSLength(ssname, &len); for(int i = 0; i < len; i++) { ads_name ent; acedSSName(ssname, i,ent); AcDbObjectId id; AcDbLine *pEnt; acdbGetObjectId(id, ent); list.append(id); } acdbHostApplicationServices()->setWorkingDatabase(pCur); if (list.isEmpty()) { return FALSE; } if (Acad::eOk != extDatabase.wblock(pTempDb, list, AcGePoint3d(0,0,0))) { return FALSE; } if (Acad::eOk != acdbHostApplicationServices()->workingDatabase() ->insert(AcGeMatrix3d::kIdentity, pTempDb)) { return FALSE; }
В итоге ничено не получается.
Спасибо.