面向约束求解的草图智能导引设计方法

面向约束求解的草图智能导引设计方法

    CAD系统草图设计过程中,智能导引设计可增强用户与界面之间的交互、加速绘制过程,使草图设计更加便捷。本文研究了一种面向约束求解的草图智能导引的设计方法。该方法利用面向对象思想实现约束的识别、分类、归纳与局部求解;采用分层分段方式表示图元,达到全面快速的引导;设计了统一数据结构实现了非草图几何的约束存储与处理。在基于ACIS和HOOPS组件开发的Feature Maker平台上加以实践,采用该方法设计出的智能导引模块能够有效辅助并缩减需要定义约束的草图设计时间。
    在当今CAD软件发展中,交互性已经成为重要方向。良好的用户与界面交互能够填补人机之间的距离,使操作更加流畅快捷。草图智能导引即是CAD软件中体现交互性的一大特点。
    草图绘制的操作过程,主要分三个步骤:创建基本几何、对几何进行约束、几何的修改操作。循环进行这三个步骤最终完成草图绘制。在这个过程中,创建操作与约束操作严格区分,必须完成创建操作以后才能够进一步进行几何约束。智能导引的出现融合了创建操作与约束操作,融入创建几何的过程中,使用户能够直接添加约束,
大大减少设计时间。

图1 草图绘制过程

图2是一个智能导引的图例。图中正在在绘制直线CD的终点D。鼠标移动时,鼠标点扫过选定直线AB,该直线高亮,鼠标点附近的重合图标显示当前可以添加重合约束;选定直线高亮的同时,还提供了3个与该直线相关的可选定信息:中点E、直线的垂直方向hk、直线的平行方向mn。如果选中以上信息,智能导引将在直线CD的创建后,自动完成约束的添加,该约束会在草图中继续存在成为几何之间的关系。

 

图2 智能导引图例
可见,草图智能导引包括两方面,一是在草图绘制过程中,鼠标靠近某个具有特定意义的点或线时,鼠标自动向该点或线段靠拢,生成辅助线;二是本文提出的面向约束的智能导引,在实现以上功能的基础上,于绘制完成后添加对捕捉几何的约束。
从草图设计需求出发,智能导引功能的有效性体现在:(1)信息获取全面;(2)导引快速;(3)便于求解。
基于以上原则,并结合相关研究与拓展,本文需要解决的问题有以下三点:
(1) 使智能导引功能能够满足不同对象的导引要求,正确识别与求解该对象的特定约束;
(2) 对捕获的图元进行快速识别与筛选,实现实时动态捕捉;
(3) 定义统一约束存储结构,使非草图几何的相关约束得以正确存储与处理。
1 智能导引功能模型
针对以上提出的问题1,本文提出了智能导引的功能模型,如下图3。
将智能导引按功能划分为约束识别模块与约束处理模块。约束识别模块根据捕捉到的几何

图3 智能导引功能模型
信息进行约束的过滤与排序;约束处理模块进行约束数据的求解、存储和数据转换,使数据能够以规范格式进入约束求解器。每次约束识别后的最优约束会进入约束处理模块,进行求解与存储。外界发出添加约束的指令时将存储的约束数据转换为约束求解器需求的数据结构,放入约束求解器内进行处理。
导引完成后,约束求解器对于草图内所有实体几何间的约束进行参数化求解并更新视图。
2 草图智能导引设计约束识别方法
智能导引过程中,同一个位置可能捕捉到若干个约束,因此必须对这些约束进行识别,只保留优先级最高的约束。识别的主要过程是先根据当前绘制对象进行约束筛选,再进行分类排序,选取优先级最高的约束,该约束就是智能导引本次捕捉到的约束。
2.1 草图约束模型
约束:作用于零件特征上的各种规则的集合,是对几何形状与位置施加的各种控制条件。
草图标识:草图几何的草图元素(点、 线、圆等)在草图中的唯一性标志。


图4 几何图和约束图
约束图:由顶点和约束边组成的图形,称为约束图。顶点表示几何元素,约束边表示约束。如图4,其几何图(a)的约束图为(b),约束边的箭头表示由箭头引出处的几何来约束箭头所指几何。一个约束图的求解可看做一系列方程的求解。
2.2 面向对象的约束过滤方法
2.2.1约束的筛选
不同的草图图元,约束的类别也各不相同。在绘制草图基本几何的过程中,不同步骤可捕捉的约束也不同。因此,需要根据绘制几何以及步骤的不同,对信息进行面向对象的过滤。下表1给出了草图智能导引中一些基本几何在其绘制状态下的可识别约束。
表1 基本几何绘制中的可识别约束

2.2.2约束的排序
在同时存在多个可选约束时,智能导引该提供给用户最优约束,因此需要将可捕捉的约束进行排序。本文设计的约束优先级排序如下图5。

图 5 约束优先级
通常智能捕捉中出现的约束有11种,图中显示的约束优先级自左向右依次降低。本文将可捕捉的约束总体分为五类:实体点、几何附属信息、实体线、网格和位置。其中后两类是假约束,在绘制完成后并不产生几何关系。
由于捕捉范围最小,点的优先级为同类别的
最高;几何附属信息(如图2的中点,垂直、平行方向的虚线),由于其出现时间有限(仅在选定其源几何之后出现),优先级列为大类中的第二;交叉点由于要根据实体线判定(两曲线交点),因此归为实体线一类;网格和位置两类约束不产生几何关系,只是智能导引中的临时约束,因此优先级最低。
2.3 几何图元信息的分类管理方法
图3中传入智能导引模块的捕捉信息是鼠标点附近所能获取的所有几何图元信息。几何图元信息是约束的筛选和排序的基础,整齐有序的几何图元信息结构能够加快约束的筛选排序速度,从而实现快速的约束识别。
为满足实时约束识别的要求,本文提出了分层分段的几何信息分类思想,使之形成直接体现优先级的树结构,使识别更快速。将视图中可捕捉的图元信息分类绘制在不同的“段”下。“段”是HOOPS提供的以节点形式组织的高层次的基本几何图元。段功能类似于文件夹,一个段下面可以有多个段,每个段都具有自己的名称,其命名可采用几何类型名称。将各类型几何存储进对应的命名段中,使查找非常方便。
图6为智能导引中几何图元的优先级,由于几何图元信息与约束具有相关性,该分级也对应图5的约束优先级。在约束识别过程中,优先级高的几何图元信息先处理,如果结果正确则不再处理比其优先级低的信息,大大节省了时间。
图中显示的三个主要段为:非草图几何段、总草图段、网格段,优先级依次降低。
非草图几何段中存储三维几何,包括三维点与三维曲线。
总草图段下属有两个段:草图几何段与附加信息段。草图几何段存储草图几何;附加信息段存储草图几何的附属信息。附加信息段存储的几
何附属信息并不是几何,虽然其可在视图区以几何形式显示,但并不具有实体。若将大量附加信
图 6 几何图元优先级
息混杂在同一个段里则无法判断视图区选中的图元信息是哪个附加信息,因此对附加信息进行图6所示分类分段存储,可达到快速筛选的目的。几何附属信息不能作为约束对象,其源实体几何才是约束对象。
网格段用于存储网格,网格不具有实体。因此网格的捕捉并不是通过视图捕捉实现,而是通过内部参数计算。
3 草图智能导引的约束处理方法
在识别最优约束之后,该约束进入约束处理模块。约束处理模块主要包括:约束求解、约束数据存储以及约束数据转换三部分,但这三部分不能看作连续的完整流程:约束的求解与存储响应鼠标的实时捕捉过程,而约束数据转换只响应约束指令。
3.1 面向对象的局部实时约束求解
智能导引识别到约束后,须对该约束进行快速求解以使几何参数满足约束条件。
比较目前的参数化求解算法,本文选择直接编程法[5]作为求解方法。ACIS提供的API函数具有强大的几何计算功能,采用该ACIS类与函数能够使求解具有较高的精度与准确度。
经过本次智能导引的约束求解后,仍需在几何绘制完成后通过约束求解器得到最终几何位置。但智能导引求解后得到的几何位置非常准确,能够为约束求解器提供最优初值,使其方程求解迭代次数减少,加快求解器的求解时间。
3.2 智能导引的数据结构
智能导引捕捉到的约束是在约束指令下达后才进入约束求解器的,因此须在该指令下达前有效存储捕捉到的约束信息。由于这些信息最终要进入约束求解器,故其数据结构应尽量符合约束求解器的标准,或易于向标准结构进行转化。
3.2.1约束求解器的约束数据结构
一个简化的约束求解器的数据结构由两部分组成:约束对象的标识链IDArray和约束的类型ConType,可表示为
Constraint(IDArray,ConType) (1)
该式需要说明以下两点:
(1)约束对象的标识链IDArray,是该约束的相关几何对象的草图标识组成的一条链。例如图2所示,如果要添加直线段中点D对选定直线段AB的重合约束,则标识链中储存的2个标识应为:直线段CD的终点D的标识和选定直线段AB所在直线的标识。
(2)约束类型ConType是系统定义的精确划分的约束类型,具体选用哪一种约束类型根据所选几何的类型来判断。以相切约束为例。绘制圆弧时,鼠标如果选中直线,约束类型为线-圆相切约束;若选中圆弧,约束类型为圆-圆相切约束。
3.2.2智能导引的约束数据结构
由于约束求解器仅面向具有实体的草图几何,因此其数据结构具有限制:约束对象标识链IDArray只能记录具有草图标识的草图几何。而智能导引要处理的两种特殊几何——非草图几何和绘制几何,并不具有草图标识,不能直接存储进IDArray。所以智能导引不能直接采用约束求解器的约束数据机构。要获取上述两种特殊几何的草图标识,可以采用如下方法:
(1) 绘制几何:绘制几何的草图标识只能在绘制完成后获得。通常一个绘制完成的草图几何对应多个草图标识,要根据正确标识添加约束,必须在绘制过程预先对约束对象的标识标记。
(2) 非草图几何:将非草图几何投影到该草图平面内,生成草图投影几何,得到其标识,作为原非草图几何的替代约束对象。
根据以上设计,本文定义智能导引的约束数据结构为:
constraint(ID1Serial, ID2Array,
pSelectEntities, ConstraintType) (2)
该结构由四部分组成:
(1)ID1Serial:绘制几何第一约束对象的序列号。例如图7中,一条绘制完成的直线段可能有3个约束对象:线段起点、线段终点、线段所在直线,分别顺序定义其序列号为0、1、2,这样就解决了绘制几何的约束对象的标记。

图7 约束对象的标记
(2)ID2Array:捕捉选中的约束对象的草图标识。如果选中的是非草图几何,该项置-1。
(3)pSelectEntities:当导引选中非草图几何时,记录第二约束对象的实体指针。如果捕捉到的是草图几何,则该指针置空。
(4)ConstraintType:约束类型。记录内容与约束求解器数据结构ConType相同。
采用此数据结构,存储空间小,可以处理草图几何与非草图几何,有效记录绘制几何的约束对象,便于转换为约束处理器的标准数据结构。
3.3 约束数据结构的转换
约束指令下达后,需要将智能导引中存储的约束数据输入约束求解器,成为草图约束。首先需要将智能导引存储的约束数据进行转换,成为约束求解器标准结构。其转换过程如图8。
两种特殊几何的约束标识获取方法如下:
(1)绘制几何的约束标识。绘制完成之后,将绘制完成的草图几何的标识序列传入智能导引系统。草图几何标识序列记录了第一约束对象对应的所有标识,按照序列号的定义顺序排列。根据智能导引中存储的第一约束对象序列号ID1Serial,可知该标识序列第ID1Serial个位置存储的就是第一约束对象的标识。
(2)非草图几何的约束标识。如果约束对

图8约束数据结构的转换
引约束数据结构中记录的非草图几何实体指针pSelectEntities,将其投影后的几何作为约束象2标识链ID2Array中的第一个int值小于0,说明该约束的对象存在非草图几何。根据智能导对象,投影几何的标识为约束标识。
4 智能导引的接口设计
草图智能导引要实现其完整的系统功能,在使用时必须与草图几何绘制操作进行交互,既要融入绘制操作,又要自成体系。
图9显示了绘制几何操作中整个智能导引过程。

图9 智能导引使用流程
流程如下:
Step1实例化一个当前对象的智能导引模块。
Step2 鼠标移动操作:将鼠标信息(鼠标位置及捕捉几何信息)传入该智能导引模块,智能捕捉模块通过约束识别得到最优的导引约束并存储,并根据该约束求解出新的鼠标位置,更新显示。如果鼠标继续移动操作,则重复该步骤。
Step3 鼠标左键点击操作:将当前智能导引模块存入智能捕捉链。如果绘制操作未完成,则创建下一对象的智能捕捉模块,并返回step2;如果绘制操作完成,则循环智能捕捉链中所有指针,将其对应的捕捉类中存储的约束进行统一处理,并更新显示,整个绘制过程完成。
5 实例验证

图10 智能导引实例验证
如图10,本文在FeatureMaker系统中进行验证。图10(a)中,圆1已在草图创建,正在进行直线1的绘制。直线1的起点已选定,选择终点时鼠标移动到圆1上,图标提示显示目前可创建相切重合约束。图10(b)中,鼠标点击选择了图(a) 所示约束,建立了圆1与直线1之间的约束关系。系统左下方对话框显示了圆1的参数。图10(c) 将此圆的半径由29.5改为15,视图更新,且两几何的相切约束和点圆重合约束仍存在,说明智能导引正确捕捉并成功添加了约束。
6 结论
本文提出的面向约束求解的草图智能导引设计方法,实现了以下功能:
(1) 实现面向对象地约束识别与求解,满足了不同草图基本几何的导引要求,快速准确地求解其约束,使几何位置最接近约束添加后的理想位置,为约束求解器提供最优初值,大大缩短约束求解器的求解时间。
(2) 全面地捕捉筛选图元信息,快速搜索到鼠标点附近的最优约束。智能导引捕获的约束信息全面详尽,智能提示加快绘制过程,增强用户交互性,协助用户保持思维连续性,使草图绘制过程更加流畅。
(3) 实现了非草图几何与绘制几何的约束处理,使智能导引的捕捉范围不仅限于草图几何,增强了草图几何与草图外实体之间的联系,使建模更具灵活关联性

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值