新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 三維CAD與BOM管理系統(tǒng)的接口研究

三維CAD與BOM管理系統(tǒng)的接口研究

作者: 時間:2013-05-03 來源:網絡 收藏
以SolidWorks為例,遍歷過程的部分代碼如下:

(1) 得到裝配圖中裝配樹的根:

HRESULTres=S_OK;
LPCONFIGURATION pConfiguration= NULL;
LPMODELDOC pModelDoc= NULL;
LPCOMPONENT pRootComponent= NULL;
long RecurseLevel= 0;
LPSLDWORKS
pTemp= TheApplication- > GetSWApp () ;
respTemp- > get_IActiveDoc (pModelDoc) ;
if (S_OK! = res? ?pModelDoc== NULL)
return;
if (pModelDoc-> IGetActiveConfiguration
(pConfiguration) = = S_OK )
{pConfiguration- > IGetRootComponent
(pRootComponent) ;}??

(2) 從裝配樹根開始,對裝配樹進行遍歷,部分代碼如下:

int TraverseChildren ( long RecurseLevel,
LPCOMPONENT pComponent)
{
LPCOMPONENT3 pCh ildren = NULL;
int nChildren= 0;
HRESULT hres= S_ O K;
BSTR Name;
hres = pComponent- > get_Name (Name) ;
g_JianHaoArray1Add (Name) ;
??
if (S_OK = = hres? ?nChildren> 0)
{
pCh ildren =
new L PCOM PON EN T [nCh ildren ];
h res=
pComponent- > IGetCh ildren ( (L PCOM PON EN T3
3 ) pCh ildren) ;
pComponent- > get_Name (parent) ;
if (S_ O K = = h res) {
??Recursively t raverse the ch ildren
fo r ( i= 0;i nCh ildren;i+ + )
{
T raverseCh ildren (RecurseL evel,,pCh ildren[ i]) ;
pCh ildren [ i]- > Release () ;
}}
delete[ ]pCh ildren;}
RecurseL evel- - ;
??
return nChildren;
}

2-1-2 接口對數據庫的操作

圖3 為接口主界面,本文使用ADO(ActiveX Data Object) 實現對數據庫的操作。下面介紹在VC++中使用ADO的方法:

(1) 初始化COM庫,引入ADO庫定義文件。
(2) 用Connection 對象連接數據庫。
(3) 利用建立好的連接,通過Connection、Command 對象執(zhí)行SQL 命令,或利用Recordset對象取得結果記錄集進行查詢、處理。
(4) 使用完畢后關閉連接釋放對象。

在SolidWorks環(huán)境下對數據庫操作的部分代碼如下:

StsAfx1h
# impo rt“C:?P rogramF iles?CommonF iles?System?
ado?m sado151dll”no_ namespace rename (“EO F”,
“adoEO F”) ??引入ADO 庫定義
1cpp
long InitU serDLL 3 (L PSLDWORKS pSldWo rk s)
{??
A fxO le Init () ;??初始化COM 庫
??
}

ReadWriteClass1cpp
BOOL ReadW riteClass::L inkDatabase (?)
{ ??
h r= m_ Connect ion1Create Instance
(“ADODB1Connect ion”) ;???創(chuàng)建Connect ion 對象
??
}


評論


相關推薦

技術專區(qū)

關閉