基于AnyCAD的准双曲面齿轮建模

作者:谨阳

(文章来源:http://www.opencascade.net/ask/?/article/6)

摘要:根据准双面齿轮的加工方法和传动特性,对准双面齿轮的结构进行研究。并基于opencascade开发的AnyCAD软件平台,开发准双曲面齿轮建模软件。

关键字:准双面齿轮 AnyCAD 软件 Opencascade

1、AnyCAD的介绍
AnyCAD软件是基于opencascade几何内核开发的一个显示平台和一套对opencascade内库总结的自己的内库。显示平台时尚,美观。具有一般三维软件的基本显示功能(如放大、旋转、平移、着色、线框等)。同时还有一般三维软件的导入功能(iges、step等)。其内库总结了opencascade的几何内库,可以实现建模的基本功能。
AnyCore::ATopoShapeTools Class可以实现线、面、圆、圆柱、块体等基本几何体的建模。实现方法:如块体。

ATopoShapePtr pBox = ATopoShapeTools::MakeBox(Vector3::ZERO,Vector3::UNIT_Z,Vector3(100,100,100));

并对体进行id号关联,以便对该体进行后期操作。还可以对建立好的集合体进行基本的颜色赋给等其他功能。

AEntitySceneNodePtr pNode = _NewGeometryNode(pBox, 0.1);
pNode->SetId( m_MaxIndex);
AFaceStylePtr pStyle(new AFaceStyle());
pStyle->SetColor(ColorValue(1,1,0,0.5));

  

AnyCore::AFeatureTools Class是几何体的特征操作,可以实现几何体的旋转、镜像、拉伸、平移、变换等等一般三维软件可以实现的特征操作。下图是AnyCAD内库的表,首先其命名方法直接明了,很方便开发人员找到想要的函数。其次,在函数的使用方面,参数、返回值等等一目了然。

2、准双曲面的齿坯建模

准双面齿轮的参数如下表(小轮安装距为125,大轮为70)

项 目 名 称 小 轮 大 轮

齿数 - - - - - - - - - - - - - - - 14 47
模数/径节 - - - - - - - - - - - - - 5.10600 毫米 
齿面宽 - - - - - - - - - - - - - - 42.23 38.00 毫米 
压力角 - - - - - - - - 小轮凹面 - 19.30 度.分
- - - - 小轮凸面 - -23.00 度.分
轮副轴交角 - - - - - - - - - - - - 90.00 度.分
外锥距 - - - - - - - - - - - - - - 128.00 128.80 毫米 
齿顶高 - - - - - - - - - - - - - - 7.57 1.57 毫米 
理论齿根高 - - - - - - - - - - - - 2.99 8.86 毫米 
工作齿高 - - - - - - - - - - - - - 9.23 9.23 毫米 
理论全齿高 - - - - - - - - - - - - 10.56 10.43 毫米 
外端直径 - - - - - - - - - - - - - 104.08 241.12 毫米 
小轮偏置距 - - - - - - - - - - - - 30.00 毫米 
节园直径 - - - - - - - - - - - - - 89.91 239.98 毫米 
名义半径 - - - - - - - - - - - - - 37.34 102.29 毫米 
节锥顶点超过轴交错点的距离 - - - - .80 2.71 毫米 
面锥顶点超过轴交错点的距离 - - - - -.67 2.48 毫米 
根锥顶点超过轴交错点的距离 - - - - -2.39 2.51 毫米 
轮冠至轴交错点的距离 - - - - - - - 115.82 42.64 毫米 
前轮冠至轴交错点的距离 - - - - - - 77.34 29.32 毫米 
节锥角 - - - - - - - - - - - - - - 20.34 68.41 度.分
面锥角 - - - - - - - - - - - - - - 24.19 69.29 度.分
根锥角 - - - - - - - - - - - - - - 19.47 64.49 度.分
齿根角 - - - - - - - - - - - - - - .46 3.52 度.分
螺旋角 - - - - - - - - - - - - - - 44.00 28.04 度.分
螺旋方向 - - - - - - - - - - - - - 左旋 右旋
切齿方法 - - - - - - - - - - - - - 固定安装法

齿侧间隙 - - - - - - - - - - - 最小 .10 最大 .20 毫米 
驱动构件 - - - - - - - - - - - - - 小 轮

AnyCAD的线建立,先要确定线段的两个坐标点。首先我们先利用外端直径确定轮冠的坐标位置,根据齿面宽、节锥角、根锥角、面锥角、全齿高确定齿坯的二维图。

通过AnyCAD的几何内库中的旋转函数,实现齿坯的建立。方法如下:

ATopoShapePtrList list2;
list2.push_back(p3);
list2.push_back(p5);
list2.push_back(p6);
list2.push_back(p7);
list2.push_back(p8);
list2.push_back(p9); ATopoShapePtr Z=ATopoShapeTools::MakeWire (list2);
AEntitySceneNodePtr pNodeZ = _NewGeometryNode(Z, 0.1);
pNodeZ->SetId( m_MaxIndex);
m_pSceneManager->AddNode(pNodeZ); ATopoShapePtr J = ATopoShapeTools::MakeFace (Z);
AEntitySceneNodePtr pNodeJ = _NewGeometryNode(J, 0.1);
pNodeJ->SetId( m_MaxIndex);
m_pSceneManager->AddNode(pNodeJ); ATopoShapePtr chiji=AFeatureTools::Revol(J,Vector3(0,0,0),Vector3(0,0,10),0);
AEntitySceneNodePtr pNodechiji = _NewGeometryNode(chiji, 0.1);
pNodechiji->SetId( m_MaxIndex);
m_pSceneManager->AddNode(pNodechiji);

  

3、齿面建立

准双曲面齿轮的齿面是没有特定的函数表达式的,本文利用3906齿轮测量中心测量出齿轮凹面,凸面各9x5四十五坐标点。AnyCAD的读入txt坐标点,利用b样条曲面函数进行拟合实现。方法如下:

Handle(Geom_BSplineSurface) aSurf =GeomAPI_PointsToBSplineSurface(array,1,1,3,0.001).Surface();
TopoDS_Face Bcurve0 = BRepBuilderAPI_MakeFace(aSurf,0.001).Face();
ATopoShapePtr pTopoShape0 = _NewShape(Bcurve0);

  

4、建模完成
凹凸两个齿面建立之后,对齿坯进行修剪体。就可以得到准双曲面齿轮的一个齿。然后利用AnyCAD的变换函数,陈列出符合齿数的准双曲面齿轮。再将所有的齿和之前建立的齿坯进行就和,就得到了准双曲面齿轮。

5致谢
感谢AnyCAD团队在编写程序方面对我的帮助和耐心的教导。感谢AnyCAD平台的长时间陪伴,让我的生活单调却不乏味。

 

[转]基于AnyCAD的准双曲面齿轮建模的更多相关文章

  1. 分享一个基于长连接+长轮询+原生的JS及AJAX实现的多人在线即时交流聊天室

    实现网页版的在线聊天室的方法有很多,在没有来到HTML5之前,常见的有:定时轮询.长连接+长轮询.基于第三方插件(如FLASH的Socket),而如果是HTML5,则比较简单,可以直接使用WebSoc ...

  2. 基于Enterprise Architect完成数据库建模

    基于Enterprise Architect完成数据库建模 “工欲善其事必先利其器”,Enterprise Architect是一款非常便利的设计工具,目前我也是刚刚使用没多久,进行过系统设计.UML ...

  3. jQuery补充,基于jQuery的bxslider轮播器插件

    基于jQuery的bxslider轮播器插件 html <!DOCTYPE html> <html lang="zh-cn"> <head> & ...

  4. vue-awesome-swipe 基于vue使用的轮播组件 使用(改)

    npm install vue-awesome-swiper --save  //基于vue使用的轮播组件 <template> <swiper :options="swi ...

  5. 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否

    基于机器学习的web异常检测 from: https://jaq.alibaba.com/community/art/show?articleid=746 Web防火墙是信息安全的第一道防线.随着网络 ...

  6. 基于mykernel完成时间片轮询多道进程的简单内核

    基于mykernel完成时间片轮询多道进程的简单内核 原创作品转载请注明出处+中科大孟宁老师的linux操作系统分析:https://github.com/mengning/linuxkernel/ ...

  7. 基于面向对象的图片轮播(js原生代码)

    无论你想走多远,你都需要不断地走下去.前端最精华的便是原生的js,这也是我们前端工程师的技术分层的重要指标,也提现这你的代码能力,开发的水平.废话不多说,进入今天的主要分享————基于面向对象思想的图 ...

  8. (新手向)基于Bootstrap的简单轮播图的手机实现

    个人电脑里存了不少适合手机欣赏的图片,但是放手机里看是件很占据资源的事.鉴于家里有一台电脑经常开着,正好用来做家庭局域网共享,于是笔者就设想通过一种比较简单环保的思路.通过手机访问电脑内的图片. 首先 ...

  9. 基于HTTP的长轮询简单实现

    Web客户端与服务器之间基于Ajax(http)的常用通信方式,分为短连接与长轮询. 短连接:客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接. 在长轮询机制中,客户端像传统轮 ...

随机推荐

  1. c语言知识(2)

    while(n)首先,n在这里被当作了一个条件其次,当n为真时,进入while循环体(A):否则跳出循环继续执行下面部分(B).n为0时条件为假  n不为0条件为真 while(j) { if(j%1 ...

  2. Gradle学习

    Gradle是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于Groovy的内部领域特定语言.近期,Gradle获得了极大的关注,这也是我决定去研究Gradle的原因. 这篇文章是 ...

  3. Java注解实践--annotation学习三

    注解对代码的语意没有直接影响, 他们只负责提供信息给相关的程序使用. 注解永远不会改变被注解代码的含义, 但可以通过工具对被注解的代码进行特殊处理. JDK 基本Annotation 注解 说明 @O ...

  4. android之datepicker控件用法

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  5. RadASM中文乱码问题解决方法!!

    RadASM版本:2.2.2.0 在这个版本的RadASM代码编辑器里面,如果输入中文,则会乱码,经过一些尝试后,终于解决了这个问题,通过修改RadASM的字体设置就可以了!! 修改字体说明:通过本人 ...

  6. 查看Oracle的SID用户名等信息

    源地址:http://zhidao.baidu.com/question/681563406501077052.html 用sysdba身份登录 比如 conn /as  sysdba 匿名管理员登陆 ...

  7. JAVA中的策略模式

    现在我们有一个虚基类-鸭子(abstract Duck). 有真鸭子,野鸭子,橡皮鸭子继承了该类.虚基类有swing方法,毕竟游泳是所有的鸭子都应有的功能.还有一个虚方法display,这个方法在子类 ...

  8. java 数据结构

    二叉树: 存储结构:顺序存储结构和链式存储结构 二叉树的先根遍历的递归与非递归算法 二叉树的中根遍历的递归与非递归算法 二叉树的后根遍历的递归与非递归算法 二叉树的层次遍历的递归与非递归算法 e.g. ...

  9. 菜鸟-手把手教你把Acegi应用到实际项目中(4)

    今天就讲个ConcurrentSessionFilter. 在Acegi 1.x版本中,控制并发HttpSession和Remember-Me认证服务不能够同时启用,它们之间存在冲突问题,这是该版本的 ...

  10. TFS客户端登录用户修改

    1.操作环境: Windows 10 Pro Visual Studio 2013 TFS客户端 2.操作背景 安装完成TFS系统后,使用administrator在客户端进行登陆测试(已勾选保存用户 ...