【AutoCAD Mechanical】部品表にデータを読み込む
部品表にデータを読み込むには
部品表 ダイアログボックス から部品表にデータを読み込ませることができますが、前回の記事と同じように API を使用して部品表にデータを読み込ませることが可能です。
【AutoCAD Mechanical】部品表のデータを書き出す - development of
部品表の読み込みには、AcmBOMManager::importBOM
メソッドを使用します。
サンプルコード
#define IMPORT_EXT _T("Microsoft Access(*.mdb)|*.mdb|Microsoft Excel 97(*.xls)|*.xls|Microsoft Excel 95(*.xls)|*.xls|dBase 5(*.dbf)|*.dbf|dBase IV(*.dbf)| *.dbf|dBase III(*.dbf)|*.dbf|タブ区切りのテキスト形式(*.txt)|*.txt|セミコロン区切りのテキスト形式(*.csv)|*.csv|HTML書き出し(*.html)|*.html||") void ImportBOM() { // ファイルダイアログを表示 CFileDialog dlg( TRUE, _T("mdb"), NULL, OFN_CREATEPROMPT, IMPORT_EXT); if (dlg.DoModal() != IDOK) return; AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase(); AcDbObjectId bomId; CString bomTableName; // 部品表[MAIN]を取得 acmBomMgr->getBomTable(bomId, bomTableName, pDb->currentSpaceId()); // 部品表に選択したデータを読み込む if (acmBomMgr->importBOM( (AcmBOMManager::ImportBOMType)(dlg.m_ofn.nFilterIndex > 6 ? dlg.m_ofn.nFilterIndex + 3 : dlg.m_ofn.nFilterIndex), bomId, dlg.GetPathName(), bomTableName, true) == Acad::eOk) { acutPrintf(_T("\n部品表[%s]の内容を[%s]に基づいて更新しました。"), bomTableName, dlg.GetFileName()); } else { acutPrintf(_T("\n部品表[%s]の内容のロードに失敗しました。"), bomTableName); } }