/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #include "StdAfx.h" #include "OCKernelImport.h" #include "DbEntity.h" #include "DbBody.h" #include "DbBlockTableRecord.h" void COCKernelImport::execute(OdEdCommandContext* pCmdCtx) { OdDbCommandContextPtr pDbCmdCtx(pCmdCtx); // downcast for database access if(pDbCmdCtx.isNull()) { MessageBox(AfxGetMainWnd()->m_hWnd, _T("This command needs an active drawing"), _T("Command unavailable"), MB_ICONWARNING); return; } OdDbDatabasePtr pDatabase = pDbCmdCtx->database(); // Current database OdDbUserIOPtr pUserIO = pDbCmdCtx->userIO(); CFileDialog Dlg( TRUE, _T("sat"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("ACIS SAT Files (*.sat)|*.sat||")); if(Dlg.DoModal() == IDCANCEL) return; OdString strFileName(Dlg.GetPathName()); OdDbEntityPtrArray Entities; if(OdDbBody::acisIn(strFileName, Entities) != eOk) { pUserIO->putString(_T("Error importing '") + strFileName + "'"); return; } // Get the model space OdDbBlockTableRecordPtr pBlockTableRecord = pDatabase->getModelSpaceId().safeOpenObject(OdDb::kForWrite); for(unsigned int i = 0; i < Entities.length(); i++) pBlockTableRecord->appendOdDbEntity(Entities[i]); // Add entities to model space pUserIO->putString(_T("Successfully imported '") + strFileName + "'"); }