中望机械PLM接口说明文档
概述
中望机械提供了开放的数据访问COM接口和API接口,通过这些接口,PLM或者其他软件可以对图纸文件中的标题栏、明细表和图框数据进行访问和操作。
1 COM接口
1.1 接口的关系
创建IZwmApp接口
调用IZwmApp的方法GetDb得到IZwmDb
调用IZwmDb的方法GetTitle得到ITitle接口,利于ITitle对标题栏数据进行访问和操作。
调用IZwmDb的方法调用GetBom得到IBom接口,利于IBom对明细表进行访问和操作。
从IBom得到IBomRow接口,利于IBomRow对明细表行数据进行访问和操作。
调用IZwmDb的方法GetFrame得到IFrame;利于IFrame对图框数据进行访问和操作。
1.2 IZwmApp接口说明
| 方法 | 说明 |
1 | GetDb(IZwmDb** ppZwmDb) | 得到IZwmDb接口 |
2 | GetCadPath(BSTR* bstrCadPath) | 得到CAD的安装路径 |
3 | GetZwmPath(BSTR* bstrZwmPath) | 得到机械的安装路径 |
4 | GetVersion(BSTR* bstrVersion) | 得到机械软件的版本 |
5 | SendCommand(BSTR bstrCmd) | 给中望机械发送命令 |
6 | GetAbout(BSTR* bstrAbout) | 弹出中望机械的关于信息 |
1.3 IZwmDb接口说明
| 方法 | 说明 |
1 | GetTitle(ITitle** ppITitle) | 得到标题栏接口 |
2 | GetBom(IBom** ppIBom) | 得到明细表接口 |
3 | GetFrame(IFrame** ppIFrame) | 得到图框接口 |
4 | OpenFile(BSTR bstrFile) | 打开dwg文件,传入空是当前打开图纸 |
5 | Close(void) | 关闭dwg文件 |
6 | Save(void) | 保存dwg文件 |
7 | RefreshTitle(void) | 刷新标题栏 |
8 | RefreshBom(void) | 刷新明细表 |
9 | RefreshFrame(void) | 刷新图框 |
10 | GetFrameCount(LONG* nCount) | 得到图框个数 |
11 | GetFrameName(LONG nIndex, BSTR * bstrFrameName) | 根据索引得到图框名称 |
12 | SwitchFrame(BSTR bstrFrame) | 切换要访问的图框 |
1.4 IFrame接口说明
| 属性 | 说明 |
1 | LONG Width | 图框宽度 |
2 | LONG Height | 图框高度 |
3 | StdName | 标准名称:如GB,ISO... |
4 | TitleStyleName; | 标题栏样式名称 |
5 | BomStyleName; | 明细表样式名称 |
6 | DhlStyleName; | 代号栏样式名称 |
7 | FjlStyleName; | 附加栏样式名称 |
8 | CslStyleName; | 参数栏样式名称 |
9 | GglStyleName; | 更改栏样式名称 |
10 | HaveDHL; | 是否存在代号栏 |
11 | HaveFJL; | 是否有附加栏 |
12 | HaveBTL; | 是否有标题栏 |
13 | HaveCSL; | 是否存在参数栏 |
14 | HaveGGL; | 是否存在更改栏 |
15 | Scale1; | 比例系数一 |
16 | Scale2; | 比例系数二 |
17 | FrameSizeName; | Frame 大小的名称,即 A0、A1… |
18 | FrameStyleName; | 图框样式名称,如 分区图框、无分区图框... |
19 | Orientation; | 图框放置方向 , landscape(portrait) |
1.5 ITitle接口说明
| 方法 | 说明 |
1 | GetItemCount(LONG* pCount) | 得到标题栏字段个数(列数) |
2 | GetItem(LONG nIndex, BSTR* bstrLabel, BSTR* bstrName, BSTR* bstrValue) | 根据字段索引得到字段的名称,内码,和值 |
3 | SetItem(BSTR bstrKey, BSTR bstrValue) | 根据字段名称(或内码)设置标题栏某项的值 |
1.6 IBom接口说明
| 方法 | 说明 |
1 | GetItemCount(LONG* nCount) | 得到明细表行数 |
2 | GetItem(LONG nIndex, IBomRow** ppBomRow) | 根据行索引得到明细表对象 |
3 | SetItem(LONG nIndex, IBomRow* pBomRow) | 根据行索引设置明细表对象 |
4 | InsertItem(LONG nIndex, IBomRow* pBomRow) | 在特定行,插入一条明细表 |
5 | DeleteItem(LONG nIndex) | 删除特定一条明细表 |
6 | AddItem(IBomRow* pIBomRow) | 增加一条明细表 |
7 | GetItems(VARIANT* pvarArray) | 得到所有的明细表行 |
8 | SetItems(VARIANT varArray) | 设置所有明细表行 |
1.7 IBomRow接口说明
| 方法 | 说明 |
1 | GetItemCount(LONG* pCount) | 得到明细表字段个数(列数) |
2 | GetItem(LONG nIndex, BSTR* bstrLabel, BSTR* bstrName, BSTR* bstrValue) | 根据字段索引得到字段的名称,内码,和值 |
3 | SetItem(BSTR bstrKey, BSTR bstrValue) | 根据字段名称(或内码)设置明细表行某项的值 |
1.8 使用说明
导入类型库: #import "中望机械安装目录\ZwmToolKit.zrx" no_namespace named_guids
示例代码: 中望机械安装目录Sample\Sdk\Plm\ZwmSdk\demo\ZwmToolKit_Test_ZRX
2 API接口
API提供了基于面向的开发接口,首先要创建ZwcadmApp对象,然后从ZwcadmApp对象中得到ZwcadmDb指针,通过ZwcadmDb指针得到ZwcadmTitle、ZwcadmBom和ZwcadmFrame指针,然后根据ZwcadmTitle、ZwcadmBom和ZwcadmFrame指针得到/设置标题栏、明细表和图框信息。
ZwcadmApp类说明
| 函数 | 说明 |
1 | GetDb() | 得到ZwcadmDb指针 |
2 | GetCadPath() | 得到CAD的安装路径 |
3 | GetZwmPath() | 得到中望机械的安装路径 |
4 | GetVersion() | 得到中望机械的版本 |
5 | GetAbout() | 得到中望机械的关于信息 |
6 | SendCommand(CString strCmd) | 给中望机械发送命令 |
ZwcadmDb类说明
| 函数 | 说明 |
1 | OpenFile(const CString& strFile) | 打开dwg文件,空字符串针对当前文档进行操作 |
2 | GetTitle () | 得到ZwcadmTitle指针 |
3 | GetBom () | 得到ZwcadmBom指针 |
4 | GetFrame () | 得到ZwcadmFrame指针 |
5 | RefreshTitle() | 刷新标题栏 |
6 | RefreshBom() | 刷新明细表 |
7 | RefreshFrame() | 刷新图框 |
8 | GetFrameCount() | 得到图框个数 |
9 | GetFrameName(int nIndex, CString& strFrameName) | 根据索引得到图框名称 |
10 | SwitchFrame(const CString& strFrame) | 切换图框,不进行切换是针对主图框操作 |
11 | Save(void) | 保存dwg文件 |
12 | Close(void) | 关闭dwg文件 |
ZwcadmTitle类说明
| 函数 | 说明 |
1 | GetItemCount() | 得到标题栏的属性个数 |
2 | GetItem(int nIndex, CString& strLabel, CString& strName, CString& strValue) | 根据索引得到属性的显示名称,内部名称(内码),属性值 |
3 | GetItem(const CString& strKey, CString& strValue) | 根据属性的显示名称或者内部名得到属性值 |
4 | SetItem (const CString& strKey, const CString& strValue) | 根据属性的显示名称或者内部名称(内码)设置属性值 |
| GetLabels(CStringArray& arrLabel) | 得到显示名称集合 |
| GetNames(CStringArray& arrName)
| 得到内部名称集合 |
ZwcadmBom类说明
| 函数 | 说明 |
1 | GetItemCount() | 得到表行个数 |
2 | GetItem(int index, ZwcadmBomRow& objBomRow) | 根据索引得到表行对象 |
3 | SetItem(int index, const ZwcadmBomRow& objBomRow) | 根据索引设置表行对象 |
4 | SetBomData(const CArray<ZwcadmBomRow>& arrBomRow); | 设置表行集合 |
5 | GetBomData( CArray<ZwcadmBomRow>& arrBomRow); | 得到表行集合 |
| GetLabels(CStringArray& arrLabel) | 得到显示名称集合 |
| GetNames(CStringArray& arrName);
| 得到内部名称集合 |
ZwcadmBomRow类说明
| 函数 | 说明 |
1 | GetItemCount() | 得到表行的属性个数 |
2 | GetItem(int nIndex, CString& strLabel, CString& strName, CString& strValue); | 根据索引得到属性的显示名称,内部名称(内码),属性值 |
3 | GetItem(const CString& strKey, CString& strValue) | 根据属性的显示名称或者内部名得到属性值 |
4 | SetItem (const CString& strKey, const CString& strValue) | 根据属性的显示名称或者内部名称(内码)设置属性值 |
| GetLabels(CStringArray& arrLabel) GetNames(CStringArray& arrName);
| 得到显示名称集合 |
得到内部名称集合 |
ZwcadmFrame类说明
| 函数 | 说明 |
| StdName() | 样式名称 |
| TitleStyleName() | 标题栏样式名称 |
| BomStyleName() | 明细表样式名称 |
| DhlStyleName() | 代号栏样式名称 |
| FjlStyleName() | 附加栏样式名称 |
| CslStyleName() | 参数栏样式名称 |
| GglStyleName() | 更改栏样式名称 |
| HaveDHL() | 是否存在代号栏 |
| HaveFJL() | 是否有附加栏 |
| HaveBTL() | 是否有标题栏 |
| HaveCSL() | 是否存在参数栏 |
| HaveGGL() | 是否存在更改栏 |
| Scale1() | 比例系数一 |
| Scale2() | 比例系数二 |
| FrameSizeName() | Frame 大小的名称,即 A0、A1… |
| FrameStyleName() | 图框样式名称,如 分区图框、无分区图框… |
| Orientation() | 图框放置方向 , landscape(portrait) |
使用说明
引用头文件: 中望机械安装目录Sample\Sdk\Plm\ZwmSdk\inc\ZwmToolKitExtLib.h
链接库 : 中望机械安装目录Sample\Sdk\Plm\ZwmSdk\lib_zrx\ZwmToolKit.lib
示例代码: 中望机械安装目录Sample\Sdk\Plm\ZwmSdk\demo\ZwmToolKit_Test_ZRX
3 内码说明
标题栏和明细表的属性分显示名称和内部名称,内部名称也叫内码,程序中内码作为唯一的键值来使用,比如得到设计者的名称,通过标题栏接口GetItem(_T(“DESIGNER”), strDesigner)就可得到设计者名称,中望机械中使用的内码说明如下:
标题栏内码表
属性 | 描述 | 样例 |
STANDARD | 标准化 |
|
CONSTRUCT | 施工 |
|
ORGNIZE | 编制 |
|
SIGNATURE | 签字 |
|
CORRECT | 修改 |
|
PAGES | 图纸张数 |
|
TOTALPAPER | 共几页 |
|
PAGENO | 第几页 |
|
TYPE | 规格 |
|
TYPE | 型号 |
|
INDEX | 编号 |
|
PARENTCODE | 装配图号 |
|
PARENTCODE | 部件图号 |
|
PROJECTMARK | 阶段标记 |
|
PROJECTMARK | 标记 |
|
DATE | 日期 |
|
TECHNOLOGY | 工艺、工艺路线 |
|
ASSEMBLENO | 位号 |
|
DRAWING | 绘图、制图 |
|
DESIGNER | 设计 |
|
CHECK | 审核 |
|
APPROVE | 批准 |
|
EXAMINE | 复审 |
|
SCALE | 比例 |
|
FILENAME | 文件名称 |
|
FRAMESIZE | 图幅 |
|
FSCM | 控制标志 |
|
COMPWT | 单重、单件 |
|
COMPWT | 重量 |
|
明细表内码表
属性 | 描述 | 样例 |
RELPOS | 序号 |
|
COMPNAME | 代号、图号、图样代号 |
|
COMPNAME |
|
|
COMPDES | 名称、图名、图样名称 |
|
COMPMAT | 材料、材质 |
|
COMPUMIS | 单位 |
|
COMPWT | 单重、单件 |
|
COMPWT | 重量 |
|
RELQTY | 数量 |
|
COMPTWT | 总重、总计 |
|
COMPREMARK | 备注 |
|
COMPTTERM | 零件类型 |
|
COMPTSUP | 表面处理 |
|
COMPITEM | 热处理 |
|