ObjectARX环境下的结构建模系统的开发(1)(2)
2014-07-24 01:48
导读:在进行结构几何模型的绘制时,系统允许用户直接使用autocad的绘图、编辑命令,如line、arc等进行绘制输入工作,充分发挥cad实用、快速的绘图功能。此外
在进行结构几何模型的绘制时,系统允许用户直接使用autocad的绘图、编辑命令,如line、arc等进行绘制输入工作,充分发挥cad实用、快速的绘图功能。此外,objectarx还为用户提供了模块化绘图的功能,使用户可以将不同的多个命令集合在很少的自定义命令中,达到一次输入后一次绘制完成的效果。用户可以根据自身的需要,在接口函数中声明自定义命令名称,如“zhulie”,并指明相对应的处理函数,如“draw_zhulie()”,然后再使用调用命令函数acedcommand()或acedcmd()完成处理函数的具体编写工作。

图 1 结构建模系统的开发流程 由于各种结构构件既包括自身的实体数据,又包括附加的结构信息,为了使系统能准确地识别、管理这些数据,必须对不同的构件类型分别进行预定义,以生成不同的数据结构。例如,对于柱构件,可以在程序中进行如下的定义: static struct column{ ads_real col_x; //柱中心点x坐标 ads_real col_y; //柱中心点y坐标 ads_real width; //柱截面宽度 ads_real height; //柱截面高度 int col_num; //柱号} column[500] 各种构件均可仿照这种形式进行定义。由于构件的实体信息各有差异,因此各自的定义也互不相同,使得在调入模型文件或输出数据文件时程序可以准确无误地对构件种类、数据进行定位。
在系统中可以以对话框的方式建立输入输出模块。在objectarx中允许使用mfc风格的对话框,这是一种纯windows风格的对话框,可以担负起大部分的输入输出工作。例如,开发者可以创建一个“创建柱单元”的菜单命令,使其激活拾取图元的内部命令。在用户从屏幕上选择了一个有效实体后,系统弹出一个对话框,供用户输入柱单元的相关信息。对话框中的各个编辑框对应于不同的变量,对对话框进行输入后,系统会将所获取的数据相应于预定义的结构变量分别进行存储,形成相关的数据库。
(科教论文网 lw.nseaC.Com编辑发布)
对单元附加信息的输入,包括材料信息、荷载信息、约束信息等。输入方式都可以采用对话框的形式,便于数据的统一管理。这些可以输出为数据文件的附加信息均称为扩展数据。在同一个实体上可对应多个扩展数据。在多重数据中按照扩展图元数据组的方式找出所需组值,即可编辑、更新扩展数据。所以,简单地说,利用面向对象的方式来进行结构建模,就是在cad中生成的图元上附加相应的扩展数据。按照这种思想分别定制各种构件的信息输入模块,即可使用户方便地建立起一个含有多重信息的图形系统。在程序中可通过调用acdbentgetx()函数来获取注册的扩展数据。acdbentgetx()函数类似于实体获取函数acdbentget(),但acdbentget()返回的只是实体的定义数据,而acdbentgetx()函数既可返回定义数据,又可返回扩展数据。返回的扩展数据可以调用acdbentmod()函数进行相关的编辑和操作。另外,通过在传送给acdbentmake()的实体链表中定义扩展数据,也可达到创建扩展数据的目的,关键在于开发者根据实际情况,在保证程序运行效率的宗旨下,选择合适的途径进行编程。
在对所形成的模型文件进行读取或输出时,可利用objectarx提供的对扩展数据进行操作的函数来编写程序。对实体的扩展数据进行编辑操作,其流程如图2。针对用户的不同要求,可对提取出的相关数据赋予不同的输出格式,以配合后续的计算需要。
