static void RivilisDxfOutSelected() {
ads_name ss;
if (acedSSGet(NULL, NULL, NULL, NULL, ss) == RTNORM)
{
Adesk::Int32 len = 0; acedSSLength(ss, &len);
if (len > 0)
{
AcDbObjectIdArray ids; ids.setPhysicalLength(len);
for (Adesk::Int32 i = 0; i < len; i++)
{
ads_name en; AcDbObjectId id;
acedSSName(ss, i, en);
acdbGetObjectId(id, en);
ids.append(id);
}
//////////////////////////////////////////////////////////////////////////
// Создавать нужно базу совершенно пустую (без начальной структуры)
//////////////////////////////////////////////////////////////////////////
AcDbDatabase *tempDb = new AcDbDatabase(Adesk::kFalse);
Acad::ErrorStatus es;
if ((es = acdbCurDwg()->wblock(tempDb, ids, AcGePoint3d::kOrigin)) == Acad::eOk)
{
if ((es = tempDb->dxfOut(L"C:\\test.dxf", -1)) != Acad::eOk)
acutPrintf(L"\ntempDb->dxfOut(...) = %s", acadErrorStatusText(es));
}
else
{
acutPrintf(L"\nacdbCurDwg()->wblock(...) = %s", acadErrorStatusText(es));
}
delete tempDb;
}
}
}