机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8565|回复: 16

以前做的三维齿轮简易模型

[复制链接]
发表于 2006-8-2 23:57:23 | 显示全部楼层 |阅读模式

这是我一年以前做的一个三维齿轮简易模型练习,当初的目的是要做一个包括齿轮的加工和使用的三维仿真系统。

! T5 l& ^( v b% ^+ ~

但是发现一些基础的东西还没有准备好就没有做下去。现在开始希望能在一年之内做好呀。

9 l; @+ m2 O. O1 m6 |. R* B

光标键可以变换视角,q和w改变齿轮大小,a和s改变转速,空格键在点,线,面之间变换

& `9 F/ Q! n, p6 K9 r+ n n$ C i

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
回复

使用道具 举报

 楼主| 发表于 2006-8-3 00:09:31 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

因为是练习很简易的,齿根部过渡曲线,齿顶倒角之类都没有做,当初只是重视了渐开线部分
3 p( ]6 E8 `# o这里渐开线是从基圆开始的。初学者不要被我的图给误导了。
回复 支持 反对

使用道具 举报

发表于 2006-8-3 20:39:51 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

作得漂亮,用VB做的?,真是高手
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-4 19:58:07 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

是用vb做的2 C0 N1 h; S, N) k5 m0 s1 C3 ]
不过长远来看,以后应该用c++做
回复 支持 反对

使用道具 举报

发表于 2006-8-5 08:53:38 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

我一直在想:各种曲线能不能做到象圆和椭圆一样,不是逐点描出来的,而是光滑的。最主要要能减少数据量。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-5 10:00:47 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

计算机即使有画圆或椭圆的命令,最终绘制时还是用点画的,如果取得点比较少就能看出来不光滑
) o. p, e) ^) Z& k7 A6 V如果取得点多,虽然看起来光滑些,但是会影响显示速度。虽然在使用画圆命令时没有生成很多数据,但在画圆函数内部,画一个光滑的圆并不会比画一般曲线占用的资源少。
# i$ A& n: g1 O& m" b' y# z) b. K- ^  y# J+ Y
数据取的少时出现不光滑我想到两个解决办法:
" Q$ ?! k* e3 J8 R一个就是变步长的思想,根据用户的屏幕和分辨率自动算出一个肉眼分辨不出来的精度,当用户改变所显示物体的大小时重新计算这个精度,这样不论用户把图形放大多少倍都不会有问题了,这里的前提是你需要知道曲线的方程才能做到变步长,如果一开始就是知道很多点的坐标的话应该先拟和曲线方程。
; r8 q* }% D2 N: w. U# A. s另一个办法就是抗锯齿。因为屏幕的显示实际就是很多象素点,比如横1024纵768,这样在显示非45度斜线时是肯定会有变形的,抗锯齿是通过对线附近的区域进行颜色的调整,使人眼感觉光滑。
回复 支持 反对

使用道具 举报

发表于 2006-8-10 21:16:47 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

厉害!佩服!
% Y, p, R8 V5 t- D! K( D6 m- Y9 p这对我来说就好像是另一个领域的事情,你也有所研究。
' s4 t# @. N9 S$ f: }& E, y. z" a
! I# j8 Q: B, V* c2 P: |. z; M有办法在AutoCAD中实现吗?比如变步长。5 Y: f( p  @% Z. H/ `
我知道的是计算机一般缺省的精度是16位有效数字。是不是任意曲线可以达到这个精度,而在显示时和圆有同样的速度?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-11 17:08:32 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

AutoCAD里工具-选项里有一个设置显示精度的地方,如果设得低的话,显示圆时也是不光滑的。* [/ w1 m/ a) _: r; q+ z5 g
如果这个值设置的足够高,那么曲线(如渐开线)是否光滑取决于我们用多少点描述它以及画线
$ o( u# Z0 z% x, p的方法。最简单的画线方法是用直线连接这些点,当取得点数多的时候可以很光滑,可是在放大
: O: K  g& K" z# c/ T的时候就很容易变形。在CAD里还有一个画线方法是用曲线连接这些点,CAD应该有这个命令的。
( H9 o+ k* n, n2 [- G4 v精度可以得到改善,但点与点之间的曲线仍然是系统自动生成的,和原始的精确方程还是会有一定! s5 U% K0 L6 {, s  x/ a# J3 }0 d! p
差距。
/ m. e8 b! d9 }: a6 N0 P还有我听说在proe里直接输入方程式而不指定精度就能自动生成曲线,而且放大之后看起来也- X  J; D" W2 A0 N1 P- r
很光滑,不知道是不是使用了变步长的思想。
: r7 d0 Q- g5 j! {7 C, F9 \0 j
2 v# Y7 v+ i9 e1 p: c5 y7 K我总结了变步长的思想要点是- n" Z& S. v# m# g. k& F2 Q/ ]3 p
1用方程来描述对象(如果原始数据是离散的点则先拟合方程)% o. E1 z) R. T" q" e6 m( Y
2决定点的个数n
; a/ Q# h2 g4 O1 }8 {4 m3根据显示区域算出需要显示区域的定义域,然后由方程生成n个点4 t5 f' I' U+ |# F3 M1 v4 N7 U* S8 }
4用直线或曲线连接这n个点) p& W4 u- Y& T( K! P4 d
5显示区域变化的话重复3+ E5 k7 A+ {! z4 w& r8 T+ q8 z
这样显示区域的精度永远是n个点,在需要精确仿真时也可以根据需要随时更改n的值' Y( a- I+ {  q5 s+ j2 C7 c
或者把原始定义域分成一个个大小为n的块分别计算(数组大小可以不变,函数重复利用)
2 S, y9 ^. X$ h6 y- _  C! M& L- s
3 Y; S/ y5 D. l, f" D; G传统方法主要是一开始就固定了原始定义域是n个点。我对autocad里实现变步长还没思路。2 |2 h% G! u' F1 L: }3 A$ a8 V
我想变步长的方法主要是应用在自己编写的软件中比较容易实现。
回复 支持 反对

使用道具 举报

发表于 2006-12-21 22:21:50 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

呵呵,不错,比我研究精神高。
4 @7 d* q/ N* w4 a1 \* f如果要在齿面上实现光滑连接,最好使用NURBS曲面实现,既简单,计算量又小,而且精度高。
# C) C, Q, @% j2 e. A/ \0 J; C如果使用VC程序实现,也许我可以帮一点忙。8 W; O7 m' g9 b  j2 G2 T% ^3 O
但是,楼主朝这个方向努力了,很是佩服。
回复 支持 反对

使用道具 举报

发表于 2006-12-22 11:37:27 | 显示全部楼层

Re: 以前做的三维齿轮简易模型

这是用在哪方面的?; b* b! ^* p' r& l5 R
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-23 18:49 , Processed in 0.057165 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表