图形与数据联动的横断面交互设计方法

2010-08-16 03:03王婉秋庄国方
关键词:横断面反应器实体

王婉秋,庄国方,蒲 浩

(1.同济大学道路与交通工程教育部重点实验室,上海200092;2.上海建科建设监理咨询有限公司,上海200032;3.中南大学土建学院,湖南长沙410004)

随着经济、社会的不断进步,公路交通事业不断向纵深发展,既有公路不断升级改造为高等级公路,新建的高等级公路不断向山区、荒漠延伸扩展,在此过程中分离式路基越来越得到广泛的应用。路基横断面形式的复杂多样性使得横断面自动设计难以完成设计人员的设计意图,横断面交互设计显得尤为重要。

国内路基设计软件提供的交互设计功能从实际应用情况来看存在以下不足:

1)人机交互设计时,大多采用编辑横断面设计模板的方式,由系统运算后刷新图形对象,而不能实现直接操作图形对象,由系统根据图形的实时变化自动更新横断面数据,即图形驱动数据的方式。

2)不能实现横断面某一部分的图形修改自动触发与其相关的其他图形的自动更新。

针对以上不足之处,笔者提出了一种基于图形和数据联动的交互设计思想。该思想基于图形与数据是一个整体的思想,注重图形和数据的有机联系,即数据的修改可使图形同步变化;反之,图形的编辑也能使数据自动刷新,从而实现操作过程的高效、自动化。

为了实现图形与数据联动的交互设计思想,笔者在研究路基横断面自动设计方法的基础上,引入与常规路基CAD软件不同的编制思想:采用面向对象的编程方法,应用ObjectARX的实体定制技术构造横断面实体。通过巧妙应用响应器和通知技术,实现联动的交互设计功能。

1 路基横断面的自动设计

公路路基横断面的数量庞大,国内学者针对横断面自动设计方法进行了大量研究,探讨了简洁、灵活和通用的横断面几何描述和定义模型及其CAD开发实现方法[1]、研究了将 BP 神经网络技术[2]、数据库技术[3-5]应用于道路路基横断面设计系统的方法。然而这些研究方法大多只针对整体式路基的设计,对分离式路基横断面的设计研究不多。鉴于路基横断面形式的复杂多样性,笔者采取“化繁为简”的思路,首先引入特征点将全线划分成多段具有相同特征横断面形式的局部段落,通过从面到线再到点(面:全线;线:某段线路;点:特定的断面形式)层层细化的方式,最终将设计方法的研究重点锁定至具有共同特征的横断面设计方法的研究上。

1.1 路线段落划分及相关路基类型

公路路基横断面形式由于受地形、地质条件限制,一条主线逐渐分成左右两幅路,路基形式从整体式路基过渡到分离式路基,路基形式渐变过程如图1。路基横断面形式复杂,路基形式从整体式路基变化至部分分离式路基,直至路基完全分离。

图1 过渡段横断面渐变过程Fig.1 Gradual process of cross-section

根据路基横断面形式的变化特点,引入2个特征点:路面分离点和路基分离点。路面分离点即整体式路基路面分离的临界点断面;路基分离点指左右路幅路基所夹边坡不相交的临界点断面。利用这2个特征点进行段落划分:①整体式路基段,即里程小于路面分离点里程段,此时横断面形式为整体式路基;②部分分离段,即介于路面分离点和路基分离点之间的路段,路基按2个互相关联的路基来进行设计,横断面形式为部分分离式路基。

左右两幅路合为一幅路的路基横断面形式渐变过程与分出端类似。

1.2 各段落路基机助设计方法

基于以上段落划分,横断面设计归结为3种路基的设计:整体式路基、部分分离式路基和完全分离式路基的设计。根据每种路基不同的横断面特点,提出相应的计算机辅助设计方法。

1.2.1 整体式路基机助设计方法

整体式路基的自动设计方法即计算机依据设计者给定的标准横断面模板,自动完成逐桩横断面设计及土石方工程数量计算。标准横断面模板的定义依地形、地质等情况的不同采取分段定义的方式 。依据定义好的标准横断面模板进行横断面自动设计的方法与人工常规设计方法一致,在程序中分左、右侧分别进行设计。

1.2.2 分离式路基机助设计方法

1)部分分离式路基机助设计方法。部分分离式路基一般在整体式路基和完全分离式路基的过渡段出现,此时左幅路基和右幅路基互相关联,设计方法是先对左幅路采取整体式路基横断面设计方法设计,然后沿左幅路的法线方向对右幅路基横断面进行相应设计,最后依据左幅路基右侧和右幅路基左侧边坡的相交形式,将两个横断面进行拼合设计。

2)完全分离式路基机助设计。完全分离式路基分别对两幅路基采取与整体式路基设计方法相同的设计:分段设置标准横断面模板,依据定义好的模板进行自动设计。

2 定制路基横断面实体

2.1 相关研究

如何将设计好的路基横断面实体高效地存储到AutoCAD的数据库中,是实现横断面高交互性能的前提条件。

在早期研究中,横断面自动设计生成的若干横断面子实体以无序的方式存储于AutoCAD数据库的模型空间(MODEL_SPACE)中。这种存储方式,当模型空间中实体很多时,即使是简单的查询操作也将变得费时费力。

为了找到一种效率更高的图形存储方法,文献[3]中提出了应用面向对象的块表技术,减化了在图形数据库中记录横断面实体的工作量。然而,由于模型空间中记录的是图块的块引用,横断面交互设计过程中首先必须将图块解块(explode)才能实现对各实体的交互操作,而且在交互设计完成后,还需将各实体重新组合成图块存入数据库中。交互设计过程繁琐,效率不高。

文献[3]提出了面向对象的思想,然而在实际应用中,横断面的各组成实体却是相互独立分散的,仅仅通过块表技术将它们生硬地联系在一起,没有从根本上贯彻面向对象的思想,即将路基横断面看成客观“对象”,在对象的内部定义属性和操作或方法来完成对象内部私有状态的描述。为此,笔者提出了对象-属性的思想,将路基横断面看成一个“对象”,为横断面对象添加属性以实现相应的功能,并运用ObjectARX的实体定制技术,将横断面构造成与AutoCAD内部实体一样易于操作的自定义实体。

2.2 面向对象技术应用于路基横断面设计

对象-属性思想就是将路基横断面视为“对象”,其组成实体视为属性实体,属性实体包括几何属性实体和标注属性实体。各属性实体又作为单独的对象分别定义相应的属性参数和行为函数。分类和层次关系如图2。

图2 路基横断面属性分类及层次关系Fig.2 Attribute classification and hierarchical relationship of crosssection section

通过对象-属性思想设计的路基横断面对象封装了对象的属性实体及属性实体的参数与操作,突破了传统的将数据与操作分离的模式,该对象具有继承性。将一般路基横断面作为一种典型的实体对象,特殊路基的设计即可采用“继承”的方式在典型设计的基础上添加各自的属性,如在一般路基的基础上分别添加矮墙、护肩、挡墙、砌石、护脚等“属性”即可派生出相应的路基横断面对象,实现对象增量式的扩充。

2.3 自定义实体技术

根据对象-属性思想,一个横断面可以视为属性实体组合成的复合实体。因此在AutoCAD数据库中定制横断面实体的关键是解决各属性实体的定制问题。ObjectARX类层次结构的AcDbEntity类是所有具有图形表现的数据库对象的基类,通过AcD-bEntity类继承派生的方式实现对属性实体内部属性和行为的定制。以横断面边坡属性实体的定义为例,说明实体的定制方法[6-7]:

1)从AcDbEntity类派生新的边坡实体类Side-Slop,可借助工具软件ObjectARX Wizard实现,它生成派生类SideSlop的框架;

2)定义SideSlop的数据成员,数据成员包括边坡级数,边坡系数,边坡高度,平台宽度,边坡的图形显示坐标点等;

3)定义数据成员的行为函数,包括查询、绘制、对象捕捉、编辑等。定义边坡设计计算的私有成员函数,它完成边坡属性数据修改后,边坡点坐标的重新设计与计算工作;

4)定制实体还必须完成4个filer函数,才能使对象归档:

其余属性实体的定制参照边坡属性实体的定制方法,将定义好的各属性实体作为横断面实体的属性成员进行横断面实体的定制,就可构造出完整的横断面实体。

3 响应器与通知技术

横断面交互设计过程实际是设计人员对横断面属性实体进行交互修改的过程。对某一属性实体的修改,势必会引起其它相关属性实体随之做出相应的调整。通过自定义实体技术定制的横断面实体集成了各属性实体的几何、标注参数及操作函数,对属性实体的任何查询、修改如同编辑AutoCAD内部实体一样简单、方便。然而将该横断面实体应用于交互设计仍待解决一个关键问题,即对某一属性实体的修改如何自动触发其他相关属性实体的关联变化。ObjectARX的反应器与通知技术提供了较好的解决办法。

3.1 反应器与通知技术

反应器与通知技术的原理是将作为接受事件的反应器附加到通知者的对象中,当系统有事件发生时,通知者对象自动传递事件给反应器,并调用反应器所对应的通知函数(modified)[8]。

基于此原理,为了实现多个实体的相互关联,在创建某个实体时,可以向实体附加一个反应器,并在反应器的成员变量中包含另一个实体的对象ID。具体实现过程为:当AutoCAD修改一个已附有反应器的实体时,反应器会得到响应,发生响应的反应器通过读出所依附实体的对象ID,打开所依附的实体,执行通知函数预先设定的操作,从而实现实体之间的关联变化。

3.2 反应器与通知技术应用于路基横断面交互设计

反应器的实时监测,多个实体关联,通知函数等功能很好地满足了交互设计过程中属性实体间关联变化的需求。

在创建横断面属性实体时,根据交互操作的需要预先放置反应器,在反应器的通知函数中设定相应的响应操作。通过反应器的实时监测,被操作实体处于被监测状态,设计人员的任何操作,系统都能迅速做出反应,捕捉与其关联的其他实体,并提取属性数据,完成重新设计与计算。

以边坡线实体反应器为例说明反应器的设置方法与工作流程[4]:

第1步:创建边坡实体反应器。

1)从反应器类AcDbEntityReactor派生新的边坡实体反应器SideSlopReact。

2)将地面线,水沟,标注实体对象的ID作为数据成员,建立边坡实体与该断面地面线、水沟及文本标注等实体的关联。

3)定义通知函数:modified(const AcDbObject*pObj)。函数中获取当前编辑修改的边坡对象实体指针,并以只读方式打开与当前边坡实体关联的地面线实体,作为地面线设计依据;并以写方式打开与当前边坡实体关联的水沟实体、文本标注实体,提取属性参数。根据边坡实体的变化重新设计横断面并计算面积,绘制新设计的水沟,刷新标注内容。

第2步:为边坡实体添加反应器 addReactor(LeftSideSlopReactor)。

4 数据与图形联动的交互设计的实现

现有设计方法中主要通过对话框方式,直接修改设计参数模板实现交互设计,然而设计人员在进行实际交互设计时,往往难以确切知道设计参数的准确修改值,只能通过不断修正以实现合理的设计,而且设计人员在设计参数模板与设计界面中反复的切换也降低了设计效率。数据对图形联动的交互设计方法克服了现有交互设计方法的弱点,基于本文的研究成果,系统开发了更加人性化的间接参数化法和通过夹点操作直接修改图形的方法。

间接参数化法属于数据对图形驱动的设计方法,设计人员只需根据设计意图,使用多义线绘出属性实体的大致形状,系统自动提取所需信息,重新设计生成与多义线形状类似的属性实体,而且通过附加到属性实体的反应器的作用,自动激发牵连属性实体的联动改变,从而实现更加直观灵活的交互设计。以边坡属性实体的交互设计过程为例,如图3、图4。

图3 多义线转边坡线Fig.3 Turn polyline into slope line

图4 多义线成功转成边坡线Fig.4 Turn polyline into slope line successfully

夹点操作图形的方法是一种面向图形对象的图形对数据驱动的交互设计方法,由前文的研究成果定义的实体类与AutoCAD内部实体一样,当Auto-CAD中选中某属性实体时,AutoCAD通过运行期间的类检查机制获得该实体对象的类,当拖动某个夹点或通过右键快捷菜单选择相应命令时,AutoCAD自动调用该实体对象类的相应“操作函数”,随着鼠标的移动,图形被不断刷新重绘,形成动态橡皮线的效果。当操作完毕后,与之关联的其他属性实体,标注属性(填挖面积、中心填挖高等)被自动刷新,数据库文件也被同步更新。夹点操作的动态可视性,使设计者能观察属性实体的实时变化,从而完成高效、灵活的交互设计。以修改边坡的夹点操作为例(图5)。

图5 修改边坡的夹点操作Fig.5 Clip-point operations of slop line

5 结论

笔者深入研究了路基横断面自动设计与交互设计的若干关键技术,实现了路基横断面基于图形与数据联动的交互设计功能。它具有如下优点:

1)应用ObjectARX自定义实体技术定制横断面实体对象,使横断面这样的复杂实体能象Auto-CAD内部实体一样,具有AutoCAD实体的各种属性和操作方式;

2)应用响应器的实时监测,多个实体关联,响应函数等功能,实现横断面属性实体之间的相互关联;

3)基于图形与数据联动的交互设计方法:间接参数化法、夹点操作法,以其灵活性,动态可视化实现了对横断面高效的交互功能。

[1]裴大明,王福建.公路路基横断面CAD开发研究[J].重庆交通学院学报,1999,18(3):21 -25.

[2]裴大明,王福建.基于BP神经网络的公路路基横断面填挖方信息提取方法及应用[J].重庆交通学院学报,1999,18(3):26-29.

[3]王卫东,詹振炎.基于数据库的道路路基横断面设计系统[J].中国铁道科学,2002,23(3):77 -81.

[4]王卫东,詹振炎.道路路基横断面数据库及其辅助设计[J].中南工业大学学报,2002,33(5):462-465.

[5]王卫东,詹振炎.ObjectARX技术在道路路基横断面图形存储中的应用[J].计算机工程,2002,28(3):251 -252.

[6]邵俊昌,李旭东.AutoCAD ObjectARX 2000开发技术指南[M].北京:电子工业出版社,2000.

[7]陈英时,张其林,王健,等.空间钢结构CAD软件后处理系统的实体造型技术[J].同济大学学报,2000,28(3):297 -300.

[8]孙悦红.永久反应器的作用及实现方法[J].北京轻工业学院学报,2001,19(1):41-45.

猜你喜欢
横断面反应器实体
城市道路横断面设计研究
前海自贸区:金融服务实体
EGSB反应器处理阿维菌素废水
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
广州市健康体检人群种植修复情况的横断面研究
上旋流厌氧反应器在造纸废水处理中的应用
加氢反应器大型简体锻造工艺优化
2014年某院医院感染横断面调查