新闻中心

EEPW首页>嵌入式系统>设计应用> 三维CAD与BOM管理系统的接口研究

三维CAD与BOM管理系统的接口研究

作者: 时间: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 对象执行SQL 命令,或利用Recordset对象取得结果记录集进行查询、处理。
(4) 使用完毕后关闭连接释放对象。

在SolidWorks环境下对数据库操作的部分代码如下:

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”) ;ööö创建Connect ion 对象
⋯⋯
}


评论


相关推荐

技术专区

关闭