Deep Exploration应用中的若干问题及解决
1. 软件安装
安装版本:Deep Exploration6.3
安装、汉化及破解方法:解压缩—DeepExploration/DeepExploration633Complete.exe;
安装程序,然后运行patch.exe
激活码: 0000 0000 0000 0000
选择“电子邮件激活”,复制/粘贴以下许可证: LICENSErighthemi rh_de_cad 6.0 permanent uncounted hostid=ANY customer=RCL_ck=a81efca790sig="60PG4580HCEHSE220JPKGCBCU78PD0GYR3T5PYAG08A0MTY0500W6CUCTMG80R9Y7U9C0NQCBYA0"
WIN7必须以管理员身份进入破解把 CRACK 目录下的 PATCH.exe 复制到软件安裝目录下执行破解。
汉化:打开DeepExploration6.3中文语言包,将DeepRes.dll文件复制并替换安装文件中的文件。
2. 导入三维模型
软件可以导入wrl、vrml、mtx、vpp、w3d、STL、sldasm、SLDPRT等文件。本文件主要介绍如何导入Solidworks生成的三维模型文件,及其区别。
1)Solidworks绘制三维模型:采用Solidworks绘制三维模型,一般以sldasm文件格式保存。在零件建模过程中可以添加零件的局部坐标系:插入/参考几何体/坐标系。
2)Solidworks导出文件。SLDPRT格式文件:不能对零件坐标系进行选择设置,导出的坐标系为默认坐标系;STL格式文件、STEP格式文件及vrml文件:点击“选项”控件,可以对输出坐标系进行设置,一般将默认坐标系更改为所设置的零件坐标系。
注:在建立三维模型时,应将零件装配时有配合关系的特征建在默认坐标系中心,这样可以避免设置零件坐标系。
3. DeepExploration6.3导入模型
点击“导入”/打开文件,选择文件类型/选择要打开的零件/弹出导入属性对话框。设置参数如下图所示:Approach:Alternate;Tessellation Level:Medium High(设置导入质量为高质量)
注:导入VRML文件时,界面如下,可以设置Flip coordinate system。
注:导入文件STL时无法设置导入属性。
4. DeepExploration6.3导出CPP文件
点击“另存为图标”/点击“设置按钮”弹出导出属性设置界面,设置参数如下:CPP code:Display list;Scale type:None。
5 总结
STL格式文件:导出的数据可以不进行归一化处理,但零件坐标系位置混乱,一般在零件的某个角落;
VRML格式文件:导出的数据是已经进行了归一化处理。零件的的缩放比例无法控制,但零件坐标系为三维模型设置的零件坐标系;
STEP格式文件:导出的数据可以不进行归一化处理,零件的坐标系为默认坐标系。
OpenGL中对模型进行装配和运动控制,要求导入零件的实际尺寸参数和所设置的零件坐标系,因此采用STEP格式文件是最合适的。
6 OpenGL的安装
1)如果是VC++6,则应该将glut.h复制在"X:\Program Files\MicrosoftVisualStudio\VC98 \Include\GL文件夹")。
2)如果是VisualStudio2008,把glut.h复制到x:\Program Files\Microsoft\Visual Studio 9.0\VC\include\GL文件夹中,如果没有GL这个文件夹则可以自己新建一个。(x是你安装VS的盘符号,如果装的是VC++的话,里面有个gl文件,Visual Studio 2008则需要自己去新建一个)
3)把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(即与include并排的lib文件夹下)。
4)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)(这里对应上面的问题!)如果是64位系统,放到SysWOW64目录下。
注:如果显示文件有问题,一般是文件没有被包含进工程。
右击工程名,点击“属性”,弹出属性页,点击“VC++目录”//“包含目录”,将OpenGL文件包含进工程。
6 OpenGL导入DeepExploration6.3生成的CPP文件并显示
1)在导入CPP文件时需要添加.h文件。生成的CPP文件中没有声明函数,文件通过函数GLintGen3DObjectList()生成显示列表,与外部文件进行通信。
2)文件中的函数:
GLint Gen3DObjectList();//显示列表
voidMyMaterial(GLenum mode, GLfloat * f, GLfloat alpha);//材质设置
voidSelectMaterial(void);//材质设置
添加的.h文件如下:
#ifndefr_flag
#definer_flag
#include <windows.h>
#include <GL\gl.h>
#include <GL\glu.h>
#defineRatio 500
GLintGen3DObjectList0();
GLintGen3DObjectList1();
GLintGen3DObjectList2();
GLintGen3DObjectList3();
GLintGen3DObjectList4();
GLintGen3DObjectList5();
GLintGen3DObjectList6();
structMATERIAL
{
GLfloat ambient[3];
GLfloat diffuse[3];
GLfloat specular[3];
GLfloat emission[3];
GLfloat alpha;
GLfloat phExp;
inttexture;
};
classsample_MATERIAL
{
public:
sample_MATERIAL();
sample_MATERIAL(GLfloat *Sambient,GLfloat*Sdiffuse,GLfloat *Sspecular,GLfloat *Semission ,GLfloat Salpha,GLfloat SphExp,int Stexture);
~sample_MATERIAL();
GLfloat ambient[3];
GLfloat diffuse[3];
GLfloat specular[3];
GLfloat emission[3];
GLfloat alpha;
GLfloat phExp;
inttexture;
};
classRobot_part:public sample_MATERIAL
{
public:
Robot_part(GLfloat *Sambient,GLfloat*Sdiffuse,GLfloat *Sspecular,GLfloat *Semission ,GLfloat Salpha,GLfloat SphExp,int Stexture);
Robot_part();
~Robot_part();
voidMyMaterial(GLenum mode, GLfloat * f, GLfloat alpha);
voidSelectMaterial(void);
};
#endif
对.cpp文件作如下更改:
删除:structsample_MATERIAL;
更改staticsample_MATERIAL materials [1]为MATERIAL materiali,i的值可以设置;更改GLfloat textures[1][2]为static GLfloattextures[1][2];
更改GLintGen3DObjectList()为GLint Gen3DObjectListi(),i的值可以设置;
更改SelectMaterial(material_ref[mindex][0]);为Robot_parti.SelectMaterial();
删除voidSelectMaterial(int i),void MyMaterial(GLenum mode,GLfloat * f, GLfloat alpha)
添加Robot_partRobot_parti(
materiali.ambient,materiali.diffuse,materiali.specular,materiali.emission,materiali.alpha,materiali.phExp,materiali.texture);