ACIS-HOOPS新手上手方法(4)

2020-04-15 05:29

② 点击确定、预览等按钮都可达到显示立方体的功能,那么就需要用消息来传递,当

视图窗口接收到了对话框发来的消息,即可在窗口显示图形。

下面,首先要在CSolodHoopsView中添加自定义的消息处理函数 在头文件中添加自定义的消息ID

在CSolodHoopsView添加消息处理函数

自定义消息处理函数OnFlifang1的代码,实际上就是调用Onlifang()函数进行长方体的构造。

实现对话框在点击确定和预览时都发送WM_MYMESG消息,能够让视图窗口接收到。在它们的代码中添加如下代码即可发送消息

点击预览和确定按钮代码有所区别,点击预览对话框不关闭,具体代码如下:

备注:熟悉MFC中自定义消息传递的用法(具体内容查资料)

③ 实现预览时颜色和点击确定颜色不相同。

设置预览时,实现的颜色为黄色,实现时为绿色,调用 api_rh_set_entity_rgb()对实体进行着色,该函数的用法如下:

api_rh_set_entity_rgb((ENTITY*&)body,rgb_color(r,g,b)); //其中,api_gi_set_entity_rgb是着色函数,(ENTITY*&)body指定实体, body,rgb_color (r,g,b)进行着色。 达到的效果如下

点击预览

点击确定

5 视图中显示多个立方体,预览颜色和非预览颜色同时出现 ,如下图

解决该问题时,将实体类定义为全局变量,前面我们都是用的局部变量,定义后,每次显示时将原实体取消显示即可达到效果,添加代码

附录:(以下内容仅供参考)

ACIS的API相关函数:

api_make_... 坐标原点构建 api_solid_... 给定位置构建 //立方体

api_make_cuboid(length(x),width(y),height(z),BODY)

api_solid_block(SPAposition(左上角顶点坐标), SPAposition(右下角顶点坐标),BODY) //球体

api_make_sphere(半径,BODY)

api_solid_sphere(SPAposition(圆心坐标),半径,BODY) //圆环体

api_make_torus(外环半径,环宽,BODY)

api_solid_torus(SPAposition(环心坐标), 外环半径,环宽,BODY) //圆锥体

api_make_frustum(height(z), length(x),width(y),顶部半径,BODY)

api_solid_cylinder_cone(SPAposition(顶部圆心坐标), SPAposition(底部圆心坐标),m*M_PI(底部长轴),n*M_PI(底部短轴),0(顶部半径),NULL,BODY) //圆柱体

api_make_frustum(height(z), length(x),width(y),顶部半径,BODY)

api_solid_cylinder_cone(SPAposition(顶部圆心坐标), SPAposition(底部圆心坐标),m*M_PI(底部长轴),n*M_PI(底部短轴),0(顶部半径),NULL,BODY) //棱柱

api_make_prism(height(z), length(x),width(y),棱数,BODY) //棱锥

api_make_pyramid(height(z),length(x),width(y),顶部半径,棱数,BODY)

outcome api_ent_area ( ENTITY * ent, double req_rel_accy, double & area, double & est_rel_accy_achieved, AcisOptions * ao = NULL ) //计算面积

api_set_file_info 设置文件头部信息,生成模型文件时这些信息会被自动加入到文件的头部 api_save_entity_list 将实体的ASCII信息写入文件

api_restore_entity_list 将磁盘上的SAT文件读入到内存中

ENTITY_LIST类的成员函数

int add(ENTITY*) 将实体加入列表

int count() 返回列表中实体的个数,包括被删除的实体

int iteration_count() 返回列表中实体的个数,不包括被删除的实体 int lookup(ENTITY*) 在列表中查找实体 int remove(ENTITY*) 在列表中删除实体

ENTITY *operator[](int) 返回给定位置的实体指针 void init() 准备进行列表遍历

ENTITY* next() 依次返回列表中的实体

api_apply_transf(BODY,transf) // 旋转实体

api_unite(body1,body2) //实体求并 结果保存在第二个变量中,第一个变量所表示的实体将被系统删除


ACIS-HOOPS新手上手方法(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016上海中考一模题分类汇编(课内文言文篇)含答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: