提取CAD文档中的信息
我们可以在模板上定义一类称为“CAD Reader”的特殊的表间公式,它能够从当前打开的CAD文档中提取信息,自动填充到表单上。从而使得表单的内容始终和CAD文件中的内容保持一致。
例如,针对每个零部件,我们在系统中都需要填一张“部件信息”表单,在其中要说明零件中的一些关键参数。
一个产品/部件,有其相应的设计文件----某种CAD软件的文档,在这个CAD文档中,实际上已经包含了这个产品/部件的相关信息,比如这个“产品/部件信息”单中的 “设计者”、“材质”、“重量”等,可能就是设计文件中的属性或参数,“长”、“宽”、“高”等,可能就是设计文件中的某些尺寸。
我们把一份CAD文档视作一个小数据库,文档中包含的信息,视作是这个数据库中的数据,每一类信息,就是这个数据库中的一个表,我们称之为“图元表”;例如,Pro/E中有特征的概念,则一个Pro/E文档中,就有一个名为“特征”的图元表,每个具体的特征,是特征表中的一条记录。这样一来,我们就可以像定义普通的表间公式一样去定义一个CAD Reader,只不过,CAD Reader的数据源不再是我们所定义的模板上的数据表,而是CAD 文档中的图元表。
28.3.1 定义 CAD Reader
本节以一个具体的例子,说明 CAD Reader 的定义和使用方法。
用参数化设计的思路设计模型
假设有如下图所示的一个Pro/E零件,其包含两个拉伸特征,拉伸长度分别是d0和d2,拉伸1的草图是一个圆,直径是d1。我们在这个模型中定义了两个实数型的参数h和w,并定义两个关系式:h=d0+d2,w=d1
“部件信息”模板
定义一个“部件信息”模板,表样如前图所示,定义两个数据表“部件信息表”和“部件设计参数”
表名 | 部件信息表 | 所在工作表 | sheet1 | 样式 | 主表 | |||
主键 | 区域 | 字段名 | 数据类型 | 必填 | 填写规范 | 其它 | ||
* | C2 | 编码 | 文字(20字以内) | * | ||||
C3 | 名称 | 名称或地址 | * | |||||
C5 | 设计部门 | 文字(100字以内) | ||||||
C6 | 设计者 | 文字(20字以内) | ||||||
C7 | 材质 | 文字(100字以内) | ||||||
C8 | 重量 | 小数 | ||||||
C4 | 模型文件名 | 文字(100字以内) |
表名 | 部件设计参数 | 所在工作表 | sheet1 | 样式 | 按行 | |||
主键 | 区域 | 字段名 | 数据类型 | 必填 | 填写规范 | 其它 | ||
* | B12:B14 | 参数名称 | 文字(100字以内) | * | ||||
C12:C14 | 参数值 | 小数 | ||||||
D12:D14 | 对应模型参数名 | 文字(100字以内) |
定义CAD Reader
下面我们在如前图 所示的“部件信息”模板上定义一个CAD Reader,把一个Pro/E模型中定义的所有参数提取出来,在“设计参数”明细表的“对应模型参数名”那里构造下拉列表。
- 打开模板“部件信息”
- 点击“Excel服务器”功能区按钮【表间公式】,弹出“表间公式”窗口。
- 点击【新建】,弹出“选择表间公式类型”窗口,选择最后一项“CAD Reader”,点击【确定】。
4.弹出“表间公式—提取数据”窗口,这个窗口和定义普通的提数公式的窗口几乎是一样的,只有一点小区别:在“公式名称”旁边多出来一个“类型”下拉列表,里面是Excel服务器2024 CAD版(CAD服务器2024)所支持的三种CAD软件的名称;我们这里要定义一个从Pro/E文档中提取数据的公式,所以类型选择“Pro/Engineer”;
5.输入“公式名称”,点击【来源数据】按钮,弹出“选择数据表”窗口。在这个窗口上,“数据表分类”中增加了一个节点“Pro/Engineer”;点击此节点,在“可选数据表”中列出了我们可访问的四个Pro/E 中的图元表:特征、尺寸、参数、关系式;本例中,我们要提取Pro/E中的参数,所以双击“参数”,将其加入到“已选数据表”中。
6.点击【确定】,回到“表间公式—提取数据”窗口,点击【填充方式】,弹出“填充方式”窗口,选择填充目的表为“部件信息”模板上的明细表“部件设计参数”。
7.点击“对应模型参数名”的“提取数据…”列上的编辑图标,弹出“输入表达式”窗口,注意看在“分类”那里多了一项“<当前文档>”,下面列出的是我们在选择数据源那一步所选择的Pro/E图元表表名----参数。输入表达式为“当前文档.参数.参数名”。
8.点击【确定】回到“填充方式”窗口。选择操作为“构造下拉选项”。点击【保存】返回到“表间公式—提数数据”窗口。
9.定义完整的CAD Reader 如下图,点击【保存】。
用同样方法,定义另一个CAD Reader,如下图所示:
28.3.2 应用CAD Reader
前文说到,CAD Reader 能够把“当前打开的”CAD文档中的信息,提取到“当前填报的”表单上,也就是说,CAD Reader 的应用,要求表单和CAD 文档同时处在打开的状态。
在两种情况下,可以做到表单和CAD文档同时打开,一是提交CAD 文档的时候,同时填报表单;二是单独填报表单的时候打开表单的相关文档。下面分别按这两种情况,介绍CAD Reader 的应用。
提交文档的同时填报表单,并应用CAD Reader
- 按29.2节所述方法,设置模板“部件信息”的属性,勾选“是CAD表单”,并选择与Pro/E挂钩。
- 签出并打开文档库中的Pro/E文档,提交,在提交窗口上,勾选“填报以下表单”,选择“部件信息”。
3.点击【确定】,则自动打开Excel,出现“部件信息”的填报界面。点击“Excel服务器”功能区中的按钮【应用公式】,弹出“应用公式”窗口,勾选“Pro/E_参数名”,点击【应用】按钮。
4.应用了公式之后,在明细表的“对应模型参数”那里,会出现下拉列表,列表中的内容,就是Pro/E文档中的参数。选择某个参数后,在该行的“参数值”那里,会自动出现该参数的值,这是因为我们还有第二个CAD Reader“Pro/E_参数值”,它带有筛选条件,其中用到了“本报表.部件设计参数.对应模型参数名”,而且是“筛选条件条件改变后自动执行”的,所以只要选择了对应模型参数,就会自动执行它,从Pro/E文档中提取出所选参数的值,填充到表单上。
5.保存表单,文档也被同时提交,表单中的数据和文档中包含的信息完全一致。
填报表单的同时打开相关的CAD文档,并应用CAD Reader
在26.3节,我们讲过可以设置文档库中的文档与表单的相关关系,当填报表单的时候,在设置了文档库的情况下,可通过点击“Excel服务器”功能区按钮【相关文档】,弹出“相关文档”窗口,选择相关文档并打开,而后,即可以应用 CAD Reader,从已打开的相关文档中提取数据,填充到表单上。