UG工程图标注符号自动归位的实现方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

N o.2J u n.2004─────────── 
计算机辅助工程
Computer
Aided Engineering
───────────
 UG工程图标注符号自动归位的实现方法 
龚 雄 赵建军 陈立平 
(华中科技大学CAD中心,武汉,430074) 
作者简介 龚 雄:工程师,博士研究生,研究方向为是CAD/CAPP/PDM系统集成; 
赵建军:副教授,博士,研究方向为计算机辅助几何设计; 
陈立平:教授,博士生导师,研究方向为CAD/CAM/CAE与多系统动力学。

 
提 要 介绍了工程图标注符号自动归位的基本原理,并结合UG平台给出了实现方法。

 
关 键 词 工程图;标注符号;UG/drafting;UG/OPEN;二次开发 
0 引 言 
目前,利用计算机进行设计出图、根据图纸指导生产依然是大多数制造企业应用CAD系统的主要方式。

工程图制作过程中对图样有大量的符号标注要求,包括粗糙度、形位公差、焊接符号等。

为此,几乎所有的CAD系统软件开发商都提供了相应的标注功能,而且国内很多科研机构也针对企业的需求开发了符合国家标准的标注软件。

[1-3] 
在工程图中,粗糙度等标注符号大多依附其它图元上,如线、圆、弧等。

所谓标注符号自动归位,是指当被依附的图元因某种原因被修改时,如平移、旋转、缩放等,系统响应这些事件,自动将标注符号施加一些变换,使它的位置随被依附图元进行同步更新。

标注符号自动归位功能的实用价值在参数化图形系统中显得更加明显。

 
UG软件是美国EDS公司提供的大型CAD/CAM/CAE系统,已经广泛地应用到航空、汽车、机械、轻工等领域。

UG/drafting[4]是进行二维工程图设计的模块,可以方便地得到与三维实体模型协调一致的二维工程图。

利用UG中的二次开发工具包UG/OPEN,[5] 能够开发出适合各种特定需求的软件系统,进一步扩展UG的应用领域。

 
在开发UG二维国标化辅助制图软件过程中,
笔者对工程图标注符号自动归位的基本原理进行
研究,并以粗糙度为例,循序渐进地提出标注符
号自动归位的实现方法。

该方法也可以方便地应
用到形位公差、焊接符号等其它标注对象上去。

 
1 标注符号自动归位基本原理 1.1 标注符号自动归位时须要的几何参数 图1 粗糙度标注示例
来稿日期:2003-12-15。

 e-mail:gxss@ 。

52 计算机辅助工程 2004 
────────────────────────────────────────────── 在工程图中,粗糙度依附的图元最常见的有线、圆、弧三种,依附在尺寸线上的情况可能稍微复杂一些,但不影响本文的讨论结果。

图1给出了三种粗糙度标注示例。

 
除本身的格式、数值等参数之外,从几何上看,粗糙度完全定位须要定义这样几个参数: (1) 标注基点(BasePt) 粗糙度与依附图元的接触点; 
(2) 标注法矢(Vector) 确定粗糙度的标注方位,对于直线,Vector与直线相互垂直;对于圆弧,Vector等于圆心到P点的方向矢量; 
(3) 相对于依附图元的位置(Property) 对于直线,Property等于BasePt距直线起点距离与BasePt距直线终点距离之比,对于圆,Property记录圆心到BasePt连线与X轴正方向的夹角;对于圆弧,Property表示圆弧起点、BasePt到圆心的夹角与BasePt、圆弧终点到圆心的夹角之比; 
(4) 相对于依附图元的方位(Side) 对于直线,粗糙度位于直线上方时Side=1,粗糙度位于直线下方时Side=-1,对于圆(弧),粗糙度位于圆弧内部时Side=1,粗糙度位于圆弧外部时Side=-1。

 
可以看出,用上述四个参数来确定粗糙度位置时包含冗余的信息。

以依附于直线为例,Property可以根据BasePt计算得到,Side可以用Vector与直线的起点到终点方向角判断出来。

但是,当粗糙度所依附图元的位置发生变化时,标注时确定的BasePt和Vector变得没有意义,它们须要根据Property、Side以及所依附图元的参数重新计算出来,进而可以完全确定标注符号新的位置和方位。

在标注符号自动归位过程中,上述四个参数不会因冗余而发生冲突。

 
Property和Side称为相对于依附图元的几何不变量,在标注符号自动归位过程中,它们是新的BasePt和Vector的计算基础。

 
1.2 基于图形系统的事件通知机制实现“自动” 
为实现标注符号“自动”归位,图形系统必须支持事件通知机制。

依附图元的位置发生变化时,通过响应系统发出的事件通知,及时地对标注符号进行更新,所谓“自动”才能得以实现。

 
许多图形系统均支持针对特定对象的事件通知(Events Notify)机制,在UG平台上,事件通知机制是面向用户自定义对象(UDO)类的。

通过注册UDO类回调函数(Callback Function),允许二次开发系统响应UDO实例的显示(Display)、选中(Selection)、更新(Update)和删除(Delete)事件。

对于标注符号自动归位功能,仅需响应Update事件。

 1.3 访问标注符号的几何不变量 
对粗糙度来说,计算新的BasePt和Vector需要Property、Side以及依附图元的几何参数。

依附图元的几何参数可以直接访问得到,而Property和Side只能通过预先以某种方式记录下来,在自动归位过程中计算BasePt和Vector之前再以某种方式提取出来。

 
在UG平台上,标注符号几何不变量的访问是借助图形系统的属性(Attribute)存取功能来实现的。

 
2 基于UDO建立标注符号与依附图元的链接 
如前所述,当依附图元发生变化时,事件通知机制必须以某种方式截获到这个消息,同时,还必须获取到需要进行位置更新的的标注符号。

UG平台的事件通知机制是针对UDO的,
No.2 UG工程图标注符号自动归位的实现方法53 
────────────────────────────────────────────── 
为使依附图元发生变化时能够及时得到响应,须要在UDO与标注符号以及依附图元之间建立
某种具有唯一性和持久性的关联关系。

 
一方面,UDO支持与其它图元之间建立一定形式的关联。

另外,关联建立之后,当在其它
图元上的操作(如更新、删除等)发生时,能够以回调函数的形式通知UDO。

最重要的特征是,
UDO一旦存储在图纸中就保持不变,具有唯一性和持久性的特点。

UDO的这些特性使它非常适
合于用来建立标注符号与依附图元的链接。

 
在UG平台上,有三种对象用于标识图元:标签(Tag)、句柄(Handle)和用户自定义
对象(UDO)。

其中,Tag仅在在UG运行过程中保持唯一性,当系统退出再次打开该图纸之后,
同一个图元对应的Tag将被重新赋值;而Handle依赖于固定的图纸名称,当工程图被另存或
重命名之后,将无法找到该Handle对应的图元。

对UDO来说,系统自动维护与UDO建立关联
的图元对象,尽管通过UDO获取到的图元标识是Tag或Handle,这些Tag或Handle的唯一性
和持久性由系统进行保证。

 
在UG平台上,不同类型的UDO用“类(Class)”进行区分,同一个“类”下面可以建
立多个“实例(Instance)”,每个“实例”都可以与其它图元建立关联。

一般情况下,多
个标注符号依附于同一个图元在工程图中非常普遍,可以面向依附图元来建立UDO实例。


持这种依附图元与标注符号之间的1对多Array关系的UDO链接示例如图2所示。

 
当依附图元发生变化时,由于UDO与之
关联,系统就向UDO发出Update消息,随
后调用预先注册的回调函数,标注符号自
动归位的相关操作可以在回调函数中实
现。

同时,由于UDO
通过UDO可以获取到所有需要进行位置更
新的标注符号,可以对它们同时进行处理。

 
图2 UDO链接标注符号和依附图元示例 
3 标注符号自动归位实现方法 
在前面讨论的基础上,得出UG工程图标注符号自动的实现方法。

 
在系统初始化时,执行下面的操作: 
① 创建UDO类,调用UF_UDOBJ_create_class()函数完成; 
② 注册回调函数,调用UF_UDOBJ_register_update_cb()函数完成。

 
每次完成一个符号标注时,执行下面的操作: 
① 计算出Property和Side并以属性方式记录,调用UF_ATTR_assign()函数完成; 
② 检查该标注符号依附的图元对应的UDO实例是否创建。

若没有,则创建依附图元对 
应的UDO实例,调用UF_UDOBJ_create_udo()函数完成; 
③ 建立标注符号与依附图元的链接,调用UF_UDOBJ_add_links()函数完成。

 
当依附图元发生变化时,系统向UDO发出Update消息,调用预先注册的回调函数对标注
符号进行处理。

调用UF_UDOBJ_ask_udo_data()函数获取到所有需要进行位置更新的标注符
号,对每一个标注符号,执行下面的操作: 
① 读出记录在粗糙度上面的Property和Side属性,调用UF_ATTR_cycle()函数完成;
② 根据Property、Side和依附图元的参数计算出BasePt和Vector; 
54 计算机辅助工程 2004 
────────────────────────────────────────────── 
③ 把粗糙度变换到新的位置,调用图元变换函数uf5947_()完成。

 
4 结束语 
基于本文介绍的基本原理和实现方法开发的UG工程图标注符号自动归位功能作为UG二维辅助工程制图软件的一部分,已经在企业中得到实际应用,效果良好。

 
参 考 文 献 
1 2 3 4 5
张月强.用AutoCAD标注符合国标的表面粗糙度.工程图学学报,2002(3) 
胡洁,吴昭同.面向功能的形位公差类型的自动生成[J].中国机械工程,2002.2.13(3) 查德根,沈景风,黄宗益.计算机自动标注焊接符号的实现[J].工程机械,1998(9) 
UG/Drafting Help. Unigraphics Solutions Inc, 2002 
UG/Open API Reference Guide. Unigraphics Solutions Inc, 2002 
Implementation Method of Label Symbol Auto-Reposition in UG Engineering
Drawings
Gong Xiong Zhao Jianjun Chen Liping (CAD Center, Huazhong Science and Technology University, Wuhan, 430074) 
ABSTRACT This article introduces basic principles of label symbol auto-reposition inengineering drawing, and puts forward implementation method on UG.
Key words engineering drawing; label symbol; UG/drafting; UG/OPEN; secondary development。

相关文档
最新文档