天圆液压产品中心
实现CAD装配油缸干涉检查的一种新方法
glEnable(GL_CULL_FACE); float material[]={1.0,1.0,0.0,1.0}; glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); glMatrixMode(GL_PROJECTION); 1.1选择操纵 在三维场景中行使融合较量伟大,由于在三维场景中的融合要行使深度检测。譬喻,假如绘制一个实心的立方体,然后在上面绘制一个半透明的立方体,OpenGL的深度检测会使被潜匿的物体不行见。事实,深度检测的首要目标就是摘除被其他物体遮挡的物体或物体的一部门。因此,为了操作深度检测在三维场景中行使融合,必需执行以下几个步调:(1)挪用glEnable(GL_DEPTH_TEST)使能深度检测;(2)绘制全部不透明的物体;(3)挪用glDepthMask(GL_FALSE)配置深度缓存为只读;(4)绘制全部半透明的物体;5)挪用glDepthMask(GL_TRUE)规复深度缓存为度/写。 glPushName(0); glRenderMode(GL_SELECT); glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,material);
else// 假如工具没有选中 在视图类初始化函数中添加如下语句: glPushMatrix(); // 开始绘制零件1 glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,material); 四、竣事语 融合是OpenGL为物体模子增进的一种非凡的表现结果,它是将源颜色和方针像素的颜色以差异方法团结天生特定结果的一种技能,融合常用来结构透明或半透明的物体,当行使融合的物体包围另一个物体时,被包围的物体可以以前面的物体透射过来,这是因为源物体的颜色与被包围物体的颜色相团结(或相融合)天生了新的颜色。 } { glFrustum(-1, 1, -1, 1, 50, 400); 在场景绘制函数中添加: 行使OpenGL选择操纵前,起首在帧缓存中画图,再进入选择模式,从头绘制场景。选择模式不会改变帧缓存区的内容,退出选择模式时, OpenGL返回与视景体相交的图元列表,它列出了位于视景体内或与视景体相交的图元,每个图元发生一个选择掷中的记录,对应名称仓库中的当前内容。现实上,图元列表是以整数数组名称和与当前名称栈对应的选择掷中记录情势返回,在选择模式下,绘制物体或图元的名称压入名称仓库,返回名称仓库时,可以确定用户选定的屏幕窗口中的图元。选择操纵的根基步调:(1)用glSelectBuff()函数界说来返回掷中记录的数组;(2)挪用glRendMode(GL_SELECT)函数,进入选择模式;(3)用glInitNames()函数初始假名称仓库,即破除名称仓库,然后用glPushName()函数将名称压入仓库;(4)用glPushMatrix()和glPopMatrix()函数生涯和规复当前风景的状态;(5)瓜代行使画图呼吁和操纵名称仓库函数glLodeName(),使每个图元都被指定一个名字;(6)终止选择模式,处理赏罚返回的选择数据,即掷中记录。 glEnable(GL_BLEND); glLoadName(2);
glPushMatrix(); float material2[]={1.0,0.0,0.0,0.5}; 以下为实现上述成果的主措施体,在VC++情形中编译运行通过: glEnable(GL_LIGHTING); { glInitNames(); } GLint hits, viewport[4]; 图2.1 某机器产物装配体(部门) float material[]={1.0,0.0,0.0,1.0}; glDisable(GL_LIGHTING); { 编写鼠标选择拾取处理赏罚函数,在这里取名为mouse_proc(int x, int y): gluPickMatrix(x, y, 2, 2, viewport); // 配置拾取矩阵 1.2 拾取操纵 三、团结OpenGL的选择拾取机制和融合殊效实现过问干与搜查的详细途径 glPushMatrix(); // 开始绘制零件2 glSelectBuffer(64, selectBuff); // 选择缓冲区参数 glPopMatrix(); glPopMatrix(); glPopMatrix(); hits = glRenderMode(GL_RENDER); OpenGL是由SGI公司推出的独立于操纵体系和硬件情形的开放式三维图形库,作为一种用于及时3D图形的家产尺度API(Application Programming Interface)已经获得普及的承认和接管。
glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,material2); RenderScene(); // 绘制场景 拾取操纵拾取是选择操纵的扩显现。行使拾取操纵辨认屏幕上某个地区内的物体,用来拾取光标四面的物体。进入选择模式,用指定拾取矩阵乘以一个投影矩阵,把画图限定在一个小的视见地区内,在光标四面的物体就会发生选择掷中。拾取操纵与选择操纵的首要区别(1)拾取操纵凡是用输入装备触发,譬喻移动或单击鼠标举办拾取操纵;(2)行使适用库的函数gluPickMatrix(),把当前矩阵乘以一个投影矩阵,该函数应该在矩阵仓库乘以投影矩阵之前挪用。gluPickMatrix ()函数的原型为void gluPickMatrix (GLdouble x, GLdouble y, GLdouble Width, GLdouble height,Glint viewport[4]);成果:界说一个拾取地区,即成立一个限定在小的视见地区中画图的投影矩阵,而且用当前矩阵仓库乘以投影矩阵。参数声名:x,y:指定窗口坐标中拾取地区的中心,凡是为光标位置。Width,height:用屏幕坐标界说拾取地区的巨细,即宽度和高度。Viewport[]:指定当前视见区的界线,可以挪用函数glGetIntergerv(GL_VIEWPORT,GLint viewport)获得。 一、OpenGL的选择拾取机制研究 glLoadName(1); float material2[]={1.0,1.0,0.0,0.5}; else … //绘制其他的零部件 if (model_pick == BUG_1) // 假如工具被选中 glCallList(零件1); 当前,CAD技能已普及应用于各类机器产物的研发傍边,液压油缸,对付一件新产物(如一辆汽车),运用CAD软件举办计划、各部门的建模、整体装配之后,过问干与(包罗静态过问干与和动态过问干与)搜查是一个必不行少的步调,液压缸,通过它一来可以发明装配自己存在的题目,二来可以袒露当初计划上存在的出格是尺寸上的偏差。以往举办过问干与搜查的要领无外乎两种:人工计较和专业软件(如I-DEAS)搜查,前一种要领较量伟大,人力耗损大,尔后一种要领固然补充了前一种要领的不敷,但这些专业软件每每较量昂贵,于经济性倒霉。对此,本文团结OpenGL的选择拾取机制和融合殊效研究出了一种轻盈的过问干与搜查要领。 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,material2); 二、实现融合殊效研究 glMatrixMode(GL_PROJECTION); if(hits > 0) model_pick = selectBuff[3]; glMatrixMode(GL_MODELVIEW); glGetIntegerv(GL_VIEWPORT, viewport); glEnable(GL_DEPTH_TEST); } { if (model_pick == 2) glCallList(零件2); GLuint selectBuff[64]; 操作本文提出的过问干与搜查要领可以敏捷的判定装配体中是否存在过问干与,它尤其合用于搜查如上一章节提到的机构行为进程中的动态过问干与。相对付传统的伟大的过问干与搜查要领文中的要领越发快捷、轻盈,从而具有较强的小心代价。可是,此种要领的缺陷在于其精确性,在现实行使傍边应与传统的人工计较和专业软件搜查要领彼此共同行使,施显现这些要领各自的利益。 (责任编辑:admin) |
- [ 18-11-06 ]换向阀中位性液压站能特点及应用留意
- [ 18-10-09 ]公制螺纹、BS液压油缸PP螺纹ED密封油
- [ 18-09-11 ]很是具体的液液压站压阀块计划履历总
- [ 18-09-11 ]液压节液压站制技能的革命
- [ 16-09-14 ]联轴珩磨管器选择方法
- [ 16-07-17 ]怎样避免缸筒液压站冲击危害?
- [ 16-07-17 ]液压动力单元液不锈钢缸筒压齿轮泵的