1 ACIS的学习方法
教材:《基于ACIS的几何造型技术与系统开发》,臧海生
1.1 抓住一个核心:
ACIS的数据结构,即ACIS模型的拓扑结构(教材图3.8):
学习用时:8个学时。
阅读内容:教材第1、2、3章。
1.2 活学活用ACIS造型方法
活学活用ACIS造型方法,可以从构造一个几何体开始。教材14.5中构造了一个四面体,通过该程序可以了解ACIS构造几何实体的过程,它对ACIS的拓扑结构做了一个很好的诠
释。
动手调试这个程序时,最好在纸上画出该四面体图形,确认有向边(CoEdge)的方向性是否正确、环(Loop)的方向是否一致、面(Face)的法线是否一致向外。
如何保存该ACIS文件,可参照教材13.2中的函数save_ent。注意,如何写ACIS文件,如何读ACIS文件,就需要学习教材13.2的内容。 该四面体模型可以在HOOPS显示平台中显示出来。注意,可以显示并不代表该模型就是正确的,正确的ACIS模型肯定是可以boolean运算的(很明显,调用API函数生成的几何实体,都可以进行布尔运算)。添加下面的程序,可以检验生成的四面体是否可以进行boolean运算:
BODY* tool;
api_make_cuboid(5.0,5.0,5.0,tool); api_boolean(tool,body,UNION);
也可以参照教材13.4,学习函数api_unite()的用法。 学习用时:4~6个学时。
阅读内容:教材14.5、13.2、13.4。
实践的程序:14.5;13.2.1;13.2.2;13.4
1.3 学会调用API函数生成几何体
具体的API函数参见教材的表13.1,如下:
通过动手实践教材13.1的几个程序,来熟悉生成基本几何体的API函数;通过这几个程序的学习,我们注意到生成每一个ACIS几何体在写文件时,都要用到Entitiy_List。其中很典型的一个语句就是api_save_entity_list(fp,1,entList),对Entity_List的理解请学习教材13.3的内容。 学习用时:4~6个学时。
阅读内容:教材13.1、13.3、13.7、13.8、13.9、13.10 实践的程序:教材13.1;13.1.1;13.1.2
1.4 ACIS几何类的访问方法——直接接口
对ACIS几何体的操作(如计算一个长方体面的总数),都由访问几何体的成员函数—
—直接接口来实现。学习这些接口的调用方法、理解调用机制、熟悉这些接口函数,请学习教材第14章的内容。
学习用时:2~3个学时。 阅读类容:教材14章。 实践的程序:教材14.6。
1.5 ACIS中的C++技术
学习ACIS造型技术,需要有一定的C++语言基础,可以通过学习教材第11章的知识来补充。
1.6 Scheme语言
Scheme语言比较好理解,可是第一次接触会有些陌生,需要一定课时的培训来熟悉Scheme语言的执行平台。同时,通过阅读教材第12章,可以对Scheme语言有一定的认识。
2 如何建立工程acispartview
acispartview是一个简单的小型ACIS/HOOPS三维CAD平台,ACIS是一个几何造型引擎,HOOPS是图形显示平台,通过学习该平台,可以概况地了解基于ACIS/HOOPS的三维CAD系统的基本结构。建立工程acispartview的步骤如下:
2.1 选择编译平台:VC6.0。
2.2 设置环境变量A3DT=..\\ACISR15,HOOPS_INSTALL_DIR=..\\Hoops1220。
2.3 打开工程..\\Hoops1220\\demo\\mfc\\acispartviewer\\acispartviewer.dsw,在工程中添加以下项目:(1) ..\\ACISR15\\src\\ha_bridge\\ha_bridge.dsw;
(2) ..\\ACISR15\\src\\ha_part\\ha_part.dsw;
(3) ..\\Hoops1220\\Dev_Tools\\hoops_3dgs\\source\\hoops_3dgs_flat.dsp; (4) ..\\Hoops1220\\Dev_Tools\\hoops_mfc\\source\\hoops_mfcu.dsp; (5) ..\\Hoops1220\\Dev_Tools\\hoops_mvo\\source\\hoops_mvo.dsp; (6) ..\\Hoops1220\\Dev_Tools\\hoops_net\\source\\hoops_net.dsp;
(7) ..\\Hoops1220\\Dev_Tools\\hoops_stream\\source\\hoops_stream.dsp; (8) ..\\Hoops1220\\Dev_Tools\%utility\\source\\hoops_utils_static_md.dsp. 这个工程编译成功后,在文件路径.. \\Hoops1220\\bin\\nt_i386下,会生成一个可执行文件acishoops3dpartviewerd.exe。该HOOPS浏览器可以查看ACIS造型器生成的模型。 编译过程中,如果报错,可以设置工程属性:向C/C++ →PreProcessor definitons中添加NT,NT_DLLD。
3 如何从服务器下载工程InteSolid和InteEBS
源代码管理器SourceSafe是一个源代码管理平台,安装VS6.0时就会自动安装SourceSafe,它的打开路径是:开始→所有程序→Microsoft Visual SourceSafe→Microsoft
Visual SourceSafe 6.0 。
3.1下载工程InteSolid
3.1.1设置环境变量A3DT=..\\ACISR15,HOOPS=E:\\Hoops1220\\Dev_Tools 。
3.1.2 打开源代码管理器SourceSafe,输入用户名和密码(如果没有,找课题组长申请),
选择数据库路径:\\\\10.8.21.254\\vss_intesolid$\\,并登录该数据库。 3.1.3 在数据库中,选中文件夹SourceCode\\InteSolid,右键“Set Working Floder”=E:\\InteSolid,如图1所示。
图1 “Set Working Floder”对话框
3.1.4 点击“OK”,弹出对话框如下图2,选择“Yes All”。
图2
3.1.5 在数据库中,选中文件夹SourceCode\\InteSolid,右键“Get Latest Version”,勾选
如下图3中选中的项,选择“OK”下载源代码。
图3
3.1.6 在接下来弹出来的对话框,均选择“Yes All”。 3.1.7 在弹出对话框如下图4中,选择“OK”。类似的对话框均选择“OK”。
图4
3.1.8 在数据库中,选中文件夹include\\InteSolid,右键“Set Working Folder”=
E:\\INTESOLID。 3.1.9 在数据库中,选中文件夹include\\InteSolid,右键“Get Latest Version”,勾选如图3中选中的项,选择“OK”下载源代码。接下来的操作和以上操作按相同方式处理。 3.1.10 将工程文件E:\\InteSolid\\ InteSolid.dsw的“只读”属性去掉。 3.1.11 打开工程E:\\InteSolid\\ InteSolid.dsw,去掉该工程中的项目bbI2a files和ften files,编译。
3.1.12 编译会报错:LINK : fatal error LNK1104: cannot open file \。在数据库中选中文件夹InteSolid\\IS3.0_DEBUG-lib,右键“Get Latest Version”,将所有的lib文件下载到指定的文件夹中E:\\IS3.0_DEBUG\\LIB\\DLLD。下载完成后去掉该文件夹的“只读”属性。
3.1.13 再次编译,通过。打开服务器\\\\10.8.21.254\\Lib_For_InteSolid,将其中Font目录拷贝到本地路径E:\\IS3.0_debug\\lib下。接下来下载工程InteEBS。
3.2下载工程InteEBS
3.2.1 打开数据库,选中文件夹SourceCode\\InteEBS,右键设置“Set Working Folder”=
E:\\InteEBS,具体操作与3.1.3,3.1.4相同。 3.2.2 右键“Get Latest Version”,具体操作与3.1.5,3.1.6,3.1.7相同。 3.2.3 在数据库中,选中文件夹include\\InteSolid,将源文件下载到E:\\InteEBS,具体操作与3.1.8,3.1.9的操作相同。 3.2.4 打开工程E:\\InteEBS\\ InteEBS.dsw,将项目solid files设置为当前项目,编译。 3.2.5 编译成功,打开服务器\\\\10.8.21.254\\3D-Material_Exchange\\InteRDS数据管理\\埋件库管理,将其中EMBEDCONFIG,stdLib,tableTemplate,template四个目录拷贝到本地路径:E:\\EBS3.0_debug\\lib下。
3.2.6 设置环境变量。找到系统变量“Path”,在Path的值中添加以下文字:E:\\rds3.0_debug\\lib\\dlld;E:\\IS3.0_debug\\lib\\dlld。
3.2.7按Ctrl+F5可运行InteSolid.exe,其中InteSolid.exe的生成路径为:E:\\EBS3.0_debug\\lib\\dlld\\InteSolid.exe。
4 实现对四面体的“实时拖动变形”功能
1 建立ACIS/HOOPS造型平台acispartview。
参考本文档第4部分内容。
2 在acispartview中构造ACIS数据结构的四面体模型。 参考教材14.5。 3 实现在Hoops中显示该四面体模型。 参考程序1。 4 响应顶点(Vertex)被选中的消息。
参考程序2。
5 实现“实时拖动变形”功能:将某一顶点拖动到屏幕任意位置后,重新构造新四面体。 参考程序3。 6 完善该程序。