CAD/CAM软件 |
|
| 按行业筛选 |
|
|
| 按产品筛选 |
|
|
| |
查看本类全部文章 |
| |
|
|
|
图纸自动化生成系统的设计与实现 |
|
作者:孙建峰 余春堂 鞠时光 |
|
1 引 言
随着CAD基础理论和应用技术的不断发展,对CAD系统的功能要求也越来越高。设计人员不再仅仅满足于借助CAD系统来达到“甩图版”的目的。而是希望它能从本质上减轻大量简单烦琐的工作,使他们能集中精力于那些富有创造性的高层次思维活动中。
在工程设计中,一个种类产品的型号往往有很多种,新型号产品在空间结构上继承了现有的产品.它们的几何拓扑结构一致,只是在尺寸、比例、技术要求等方面存在差异。因为与已有产品有很多共同之处,所以新型号产品的图纸常常在现有同类产品图纸的基础上进行修改和调整得到。即便如此,这仍然是个很烦琐的工作,效率很低并且容易出错。
为了惟一确定地描述工程设计对象,几乎任何一幅工程CAD图纸都不仅包含描述对象几何拓扑信息的各种图素,还包括描述图索具体大小、形位公差和上下偏差的标注,描述图形对象特定应用的技术要求和注释等的非几何信息。正是图形中的非几何信息(文本信息)使CAD图形具有了具体确定的工程意义,真正起到工程设计交流和交换信息的纽带作用。所以对于空间拓扑结构一致的同系列产品,图纸中的几何信息可以重复利用,而对于非几何信息,把它们与数据库中的字段一一对应起来,就可以把数据库中的数据反映到图纸上。
2 母图的定义
定义l(变元):同一系列产品的图纸中可能发生变化的元索称作变元。
变元通常是尺寸标注、形位公差、技术要求、明细栏内容以及标题栏内容等文本信息。变元可以看作图纸中的.形参”。通过变元才可以建立起图纸与数据库字段("实参")的对应关系。
定义2(母图):母图就是标识了变元、定义了变元约束并提供了作为模板必要信息的图纸。
通过母图,能把同一系列产品图纸的几何信息加以重复利用,它是同一系列产品图纸的模板。在母图中通过标识,使变元具有和其它元素不同的特征。图纸中的普通元素没有扩展属性.通过有无扩展属性就可以区分变元与普通元素。
产品的各个部分不是孤立的.它们之间存在相互依赖或制约的关系,所以图纸中的元素也存在相应的约束关系。图纸中的约束包括几何约束与尺寸约束。几何约束是指图形的隐式条件如直线水平平行、垂直,直线与圆相切等等,它们在尺寸驱动过程中不发生变动;尺寸约束是指图素(间)的距离、夹角、半径、图形等各部分之间的相互影响和依赖情况。在生成图纸时,同系列产品图纸中的图形元素是不变的,所以定义母图时只需考虑尺寸约束。尺寸约束体现到母图中就是变元约束。
3 数据库构造
在图纸自动化生成系统中,生成图纸所需的各要索都直接来源于数据库。数据库不仅是用户和系统之间的媒介和缓冲,还可以方便的管理生成的图纸,使图纸的产生和CAD软件的绘图系统分离成为可能。
3.1 母图库设计
每份图纸的生成都离不开母图和变元值,一种产品可能有若干个母图,所以母图库中须有产品表、母图表、变元表三种类型的数据表。由于各种产品的变元都不同,它所对应的变元表的结构也不同,所以每个产品表都有一个变元表与之对应。
母图库各数据表的字段结构大致如下(为了直观启见,各表都已大大简化。以“#“结尾的字段代表主键,以“#”结尾的字段代表外键)。
产品表设计:(产品编号#,产品名称,变元表名,约束库名,删除标志,状态,...)。
母图表设计:{母图编号#,母图名称.产品编号*.母图,用户,更新时间,版本,侧除标志、状态,...)。
变元表设计:(产品型号#,产品编号*,版本,更新时间,用户,状态,外径,内径,粗糙度,...)。
变元表中的外径、内径、粗糙度是指的变元名称,它根据指定的变元名称变化而变化,其数量也会随着变元数目的增减而增减。变元表在产品的第一个母图人库时建立或更新。
在设计过程中,母图有可能进行了更改.某一型号产品的图纸也可能进行更改,为了使操作具有可逆性和可迫溯性,需要记录数据的版本、操作人员以及操作环境等信息。不同的用户同时对某一型号产品的变元表进行编辑时,会产生冲突,为了防止冲突的发生,在变元表每个记录中设置一个状态标志,如果有用户正在更改产品的图纸,就把相应的记录设成出库状态,在出库状态下,记录不可更改,这样保证了数据的完整性。
CAD图形都是矢盆图,通常母图都很小;CAD图形文件通常具有很高的压缩比,可以对母图压缩后存储。在数据库管理系统中,一个数据表的最大字段个数是有限制的,如果一张母图的变元数超过了数据表的最大字段数,应再考虑增加该产品对应的变元表的个数。
3.2 约束库设计
根据实际需要,在图形绘图过程中可能会对原有图形进行修改,但只对基本变元值修改是不够的。为了保持产品图形数据的一致性和完整性,必须对一些元索进行约束求解。本系统设计了约束集规则,使得图形数据库系统可以在一些变元值变化时,实现整个产品相关变元一致的更新。为了能够保留图纸约束信息,系统设计了相应的约束库,以保留某些变元的约束情况。
约束库:(约束编号#,产品编号*,约束标志号,约束条件,状态,...)这里的约束条件是一个表达式,符合系统事先约定的规则,代表图元间的各种约束关系。为了求解约束表达式,系统同时设里解析函数,可以针对不同的约束情况解析获取相应的变元信息。
对于一些常见的约束条件,系统分别建立了约束表达式。如两变元相等的约束表达式为Equal(D1,D2),D1和D2为已知两变元。为了对约束表达式进行解析,系统中建立了专门的匹配解析函数。对应Equal(D1,D2),解析函数所做的就是先将Dl和D2分别解析出来,然后进行Dl和D2的数据提取操作,最后根据约束具体情况对变元表做出更改。
母图数据库的建立,使得系统保存了生成新图纸必须的图形信息和基本参数信息;约束库的建立,便得用户可以根据实际情况建立特定的约束条件,通过程序或利用数据库的触发机制,在用户向变元表输人数据时激活相应的约束,自动审核或修改特定的变元值。
4 系统的实现
CAXA电子图板是我国制造业信息化CAD/CAM/PLM领域具有自主知识产权软件的优秀代表和知名品牌,也是我国的市场占有率最高的CAD软件。以CAXA电子图板为平台实现图纸自动化生成系统非常具有现实意义。
4.1 母图建立模块
标识变元可以通过二次开发接口EBADS(Electronic Board Aplication Development System)中的ebSeIExtendData函数为图纸中的元素增加扩展属性,与其对应的函数ebGetExtendData 可以获取扩展属性。需要明确的标识元素是否已经设置了某个扩展属性,所以需再另外设置一个扩展属性,其值为一个CUID(Global Unique IDentifier)字符申,CUID字符串可保证概率意义上的不重复。
标识变元是创建母图的一个重要工作,可以通过两种方法来实现这一操作。
1. 立即菜单方式。立即莱单由一系列相互关联的菜单引导用户一步一步来完成操作,后面的菜单的内容由前一项决定口使用户只用鼠标就可以完成大部分的绘图,降低了对键盘的依赖性。由此种方式定义变元时,利用CAXA电子图板二次开发提供的STEP一FLAG消息传递机制在立即菜单上实现对选中元家的各种操作。
2. 批量处理方式。一次提取图纸中的所有文本信息到一个表格中,为要定义成变元的文本元家增加扩展属性。没有设定扩展属性的文本就不是变元,不会被保存到数据库中,设定了名称的文本才能成为动态数据。
在标识变元之前,应该打散图纸中所有包含文本元素的块,多层嵌套的块打散到所有文本元素独立,这是因为在块中的文本无法进行修改,而母图是用来生成新图纸的模板,在生成新的图纸时要把各变元的值更改为变元表中对应的值。每个变元的扩展属性必须要有一个是名称。一个母图内的变元名称要保证唯一性。
变元标识好之后再进行约束的定义,按照既定的约束表述的方法和规则定义,并把它籽和母图一并存人数据库母图表中,在数据录人或更改时激活母图的约束关系。
4.2 数据输人接口
在生成图纸以及定义母图的时候,系统与后台数据库进行数据传输或交换。待生成的新图纸的“实参’保存的数据库中。这些数据要由用户输人数据库。可实现两种类型的数据抢人接口:一、用户逐个愉人图纸的变元值。这种方法适用于生成少,图纸的情况,在Grid控件基础上增加一些功能即可实现。二、批量输人,可以从Excd文件、CSV等格式的文件直接导人,也可以从固定分隔的文本文件导人。这些批童的数据文件通常是由自动化软件生成的。
4.3 图纸生成模块
生成图纸时首先要把保存在数据库中的母图下载到本地存储区,然后把母图中所有的变元逐个用变元表中的变元值赋值。给变元赋值的过程就是用变元值替换母图中变元的初值,这个过程要通过修改图纸中文本元索的文本值来实现。然而CAXA电子图板的二次开发接口中没有提供直接修改文本元素的函数,所以只能通过变通的方法实现文本元索的更改。
4.3 修改法生成图纸
EBADS提供的二次接口以是静态链接库的形式提供的,看不到实现的源码,所以无法直接实现二次开发接口的修改或功能扩充。通过分析其提供的头文件。可以看到图形元素作为对象的定义方式以及他们的缝承关系,所有图形元索都是CBase类的派生类。通过反复分析和验证,一个文本类型的元索的文本值保存在一个CString类型的变量中,而这个CString变量的地址就保存在与EB_NODE首地址偏移一定位置的一个指针中。通过修改这个指针指向的字符申的值,就可以实现文本元素的修改。代码如下:
char*pNode=(char*)node;
CString*pstrText=(CString*)(pNode+g_iOffset);
*pstrText=strText_AllocSysString();
其中node是文件元素对象的指针,g_iOffset是字符串指针地址与node首地址的偏移值。strText是欲赋值变元的新值。
通过强制访问指定的内存,我们实现了对文本元索值的修改。这种实现方法的优点是可以完全保持文本元素原有的属性不变,仅仅改变其文本值。但是,CAXA电子图板的文本元素的Cstring指针变量偏移地址并不是固定的,不同的版本的偏移地址都不尽相同,例如:CAXA电子图板XP的字符串指针偏移地址是160,而CAXA电子图板2005R4版的字符串指针偏移地址是192,所以用这种方法会带来兼容性的问题,必须视CAXA电子图板的版本指定相应的偏移值。
4.3.2 替换法生成图纸
还有另外一种方法可以实现文本元素的修改,CAXA电子图板的二次开发接口虽然没有提供直接修改文本值的接口,但是却提供了新建文本元素的函数所以也可以通过这样的方法实现:新建一个文本,再把原来的文本对象删掉。这样做必须保证新建文本对象与原文本对象的属性〔包括图层、位置、字高、颜色、旋转角、对齐方式等)相同,新文本的位置还要根据对齐方式进行调整。使新建文本的位置和对齐方式与原文本的一致是非常重要的。
5 结束语
论述了定义变元、定义母图、构造数据库实现图纸自动化生成系统的方法。通过变元把图纸的“形参”和“实参”关联起来。新图纸更新的都是母图中的变元,非变元的对象比如直线、圆等图形元素以及没有标识为变元的文本元素以“哑图’的形式存在的。使用“哑图”的模式降低了图纸自动化生成系统设计的复杂性,使得图纸与数据库中的数据交换非常容易。在生成图纸时运用了修改法和替换法,实现了图纸“形参”到“实参“的转变。
创新点:创新之处在于找到了一种参数化生成图纸的方法。通过把图纸中的元素划分为变元、不变元以及约束关系,变元作为图纸的“形参”,把图纸“形参”,与数据建立起链接关系数据库中的数据作为图纸的“实参”,只要确定了新产品的设计参数,就可以把数据导人到数据库中,从而生成新产品的图纸。(end)
|
|
文章内容仅供参考
(投稿)
(如果您是本文作者,请点击此处)
(4/23/2008) |
对 CAD/CAM软件 有何见解?请到 CAD/CAM软件论坛 畅所欲言吧!
|