29.3 提取CAD文档中的信息
我们可以在模板上定义一类称为“CAD Reader”的特殊的表间公式,它能够从当前打开的CAD文档中提取信息,自动填充到表单上。从而使得表单的内容始终和CAD文件中的内容保持一致。
例如,针对每个零部件,我们在系统中都需要填一张“部件信息”表单,在其中要说明零件中的一些关键参数。

图 29‑9
一个产品/部件,有其相应的设计文件----某种CAD软件的文档,在这个CAD文档中,实际上已经包含了这个产品/部件的相关信息,比如这个“产品/部件信息”单中的 “设计者”、“材质”、“重量”等,可能就是设计文件中的属性或参数,“长”、“宽”、“高”等,可能就是设计文件中的某些尺寸。
我们把一份CAD文档视作一个小数据库,文档中包含的信息,视作是这个数据库中的数据,每一类信息,就是这个数据库中的一个表,我们称之为“图元表”;例如,Pro/E中有特征的概念,则一个Pro/E文档中,就有一个名为“特征”的图元表,每个具体的特征,是特征表中的一条记录。这样一来,我们就可以像定义普通的表间公式一样去定义一个CAD Reader,只不过,CAD Reader的数据源不再是我们所定义的模板上的数据表,而是CAD 文档中的图元表。
29.3.1 定义 CAD Reader
本节以一个具体的例子,说明 CAD Reader 的定义和使用方法。
用参数化设计的思路设计模型
假设有如下图所示的一个Pro/E零件,其包含两个拉伸特征,拉伸长度分别是d0和d2,拉伸1的草图是一个圆,直径是d1。我们在这个模型中定义了两个实数型的参数h和w,并定义两个关系式:h=d0+d2,w=d1

图 29‑10
“部件信息”模板
定义一个“部件信息”模板,表样如图29-9 所示,定义两个数据表“部件信息表”和“部件设计参数”
表名 |
部件信息表 |
所在工作表 |
sheet1 |
样式 |
主表 |
|||
主键 |
区域 |
字段名 |
数据类型 |
必填 |
填写规范 |
其它 |
||
* |
C2 |
编码 |
文字(20字以内) |
* |
|
|
||
|
C3 |
名称 |
名称或地址 |
* |
|
|
||
|
C5 |
设计部门 |
文字(100字以内) |
|
|
|
||
|
C6 |
设计者 |
文字(20字以内) |
|
|
|
||
|
C7 |
材质 |
文字(100字以内) |
|
|
|
||
|
C8 |
重量 |
小数 |
|
|
|
||
|
C4 |
模型文件名 |
文字(100字以内) |
|
|
|
表名 |
部件设计参数 |
所在工作表 |
sheet1 |
样式 |
按行 |
|||
主键 |
区域 |
字段名 |
数据类型 |
必填 |
填写规范 |
其它 |
||
* |
B12:B14 |
参数名称 |
文字(100字以内) |
* |
|
|
||
|
C12:C14 |
参数值 |
小数 |
|
|
|
||
|
D12:D14 |
对应模型参数名 |
文字(100字以内) |
|
|
|
定义CAD Reader
下面我们在如图 29-9 所示的“部件信息”模板上定义一个CAD Reader,把一个Pro/E模型中定义的所有参数提取出来,在“设计参数”明细表的“对应模型参数名”那里构造下拉列表。
- 打开模板“部件信息”
- 点击“ Excel 服务器”功能区按钮【表间公式】,弹出“表间公式”窗口。
- 点击【新建】,弹出“选择表间公式类型”窗口,选择最后一项“ CAD Reader ”,点击【确定】。

图 29‑11
- 弹出“表间公式 — 提取数据”窗口,这个窗口和定义普通的提数公式的窗口几乎是一样的,只有一点小区别:在“公式名称”旁边多出来一个“类型”下拉列表,里面是 Excel 服务器 2022 CAD 版( CAD 服务器2022)所支持的三种 CAD 软件的名称;我们这里要定义一个从 Pro/E 文档中提取数据的公式,所以类型选择“ Pro/Engineer ”;

图 29‑12
- 输入“公式名称”,点击【来源数据】按钮,弹出“选择数据表”窗口。在这个窗口上,“数据表分类”中增加了一个节点“ Pro/Engineer ”;点击此节点,在“可选数据表”中列出了我们可访问的四个 Pro/E 中的图元表:特征、尺寸、参数、关系式;本例中,我们要提取 Pro/E 中的参数,所以双击“参数”,将其加入到“已选数据表”中。

图 29‑13
-
点击【确定】,回到“表间公式
—
提取数据”窗口,点击【填充方式】,弹出“填充方式”窗口,选择填充目的表为“部件信息”模板上的明细表“部件设计参数”。
- 点击“对应模型参数名”的“提取数据 … ”列上的编辑图标,弹出“输入表达式”窗口,注意看在“分类”那里多了一项“ < 当前文档 > ”,下面列出的是我们在选择数据源那一步所选择的 Pro/E 图元表表名 ---- 参数。输入表达式为“当前文档 . 参数 . 参数名”。

图 29‑15
- 点击【确定】回到“填充方式”窗口。选择操作为“构造下拉选项”。点击【保存】返回到“表间公式 — 提数数据”窗口。

图 29‑16
- 定义完整的 CAD Reader 如下图,点击【保存】。

图 29‑17
用同样方法,定义另一个CAD Reader,如下图所示:

图 29‑18
29.3.2 应用CAD Reader
前文说到,CAD Reader 能够把“当前打开的”CAD文档中的信息,提取到“当前填报的”表单上,也就是说,CAD Reader 的应用,要求表单和CAD 文档同时处在打开的状态。
在两种情况下,可以做到表单和CAD文档同时打开,一是提交CAD 文档的时候,同时填报表单;二是单独填报表单的时候打开表单的相关文档。下面分别按这两种情况,介绍CAD Reader 的应用。
提交文档的同时填报表单,并应用CAD Reader
- 按 29.2 节所述方法,设置模板“部件信息”的属性,勾选“是 CAD 表单”,并选择与 Pro/E 挂钩。
- 签出并打开文档库中的 Pro/E 文档,提交,在提交窗口上,勾选“填报以下表单”,选择“部件信息”。

图 29 ‑19
- 点击【确定】,则自动打开 Excel ,出现“部件信息”的填报界面。点击“ Excel 服务器”功能区中的按钮【应用公式】,弹出“应用公式”窗口,勾选“ Pro/E_ 参数名”,点击【应用】按钮。

图 29‑20
- 应用了公式之后,在明细表的“对应模型参数”那里,会出现下拉列表,列表中的内容,就是 Pro/E 文档中的参数。选择某个参数后,在该行的“参数值”那里,会自动出现该参数的值,这是因为我们还有第二个 CAD Reader “ Pro/E_ 参数值”,它带有筛选条件,其中用到了“本报表 . 部件设计参数 . 对应模型参数名”,而且是 “筛选 条件条件 改变后自动执行”的,所以只要选择了对应模型参数,就会自动执行它,从 Pro/E 文档中提取出所选参数的值,填充到表单上。

图 29‑21
- 保存表单,文档也被同时提交,表单中的数据和文档中包含的信息完全一致。
填报表单的同时打开相关的CAD文档,并应用CAD Reader
在26.3节,我们讲过可以设置文档库中的文档与表单的相关关系,当填报表单的时候,在设置了文档库的情况下,可通过点击“Excel服务器”功能区按钮【相关文档】,弹出“相关文档”窗口,选择相关文档并打开,而后,即可以应用 CAD Reader,从已打开的相关文档中提取数据,填充到表单上。

图 29‑22