機(jī)械社區(qū)

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 8446|回復(fù): 16
打印 上一主題 下一主題

以前做的三維齒輪簡易模型

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2006-8-2 23:57:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

這是我一年以前做的一個(gè)三維齒輪簡易模型練習(xí),當(dāng)初的目的是要做一個(gè)包括齒輪的加工和使用的三維仿真系統(tǒng)。

* r0 j" e2 n z! n$ a& ]: r% ?! z

但是發(fā)現(xiàn)一些基礎(chǔ)的東西還沒有準(zhǔn)備好就沒有做下去。現(xiàn)在開始希望能在一年之內(nèi)做好呀。

# [+ E" _$ k# f

光標(biāo)鍵可以變換視角,q和w改變齒輪大小,a和s改變轉(zhuǎn)速,空格鍵在點(diǎn),線,面之間變換

* q$ }/ O4 X* s4 {& @# h& H

 

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊會員

x
回復(fù)

使用道具 舉報(bào)

2#
 樓主| 發(fā)表于 2006-8-3 00:09:31 | 只看該作者

Re: 以前做的三維齒輪簡易模型

因?yàn)槭蔷毩?xí)很簡易的,齒根部過渡曲線,齒頂?shù)菇侵惗紱]有做,當(dāng)初只是重視了漸開線部分, a- Z) y7 W1 l4 @0 [
這里漸開線是從基圓開始的。初學(xué)者不要被我的圖給誤導(dǎo)了。
3#
發(fā)表于 2006-8-3 20:39:51 | 只看該作者

Re: 以前做的三維齒輪簡易模型

作得漂亮,用VB做的?,真是高手
4#
 樓主| 發(fā)表于 2006-8-4 19:58:07 | 只看該作者

Re: 以前做的三維齒輪簡易模型

是用vb做的
& D6 _7 @7 p; B0 ~不過長遠(yuǎn)來看,以后應(yīng)該用c++做
5#
發(fā)表于 2006-8-5 08:53:38 | 只看該作者

Re: 以前做的三維齒輪簡易模型

我一直在想:各種曲線能不能做到象圓和橢圓一樣,不是逐點(diǎn)描出來的,而是光滑的。最主要要能減少數(shù)據(jù)量。
6#
 樓主| 發(fā)表于 2006-8-5 10:00:47 | 只看該作者

Re: 以前做的三維齒輪簡易模型

計(jì)算機(jī)即使有畫圓或橢圓的命令,最終繪制時(shí)還是用點(diǎn)畫的,如果取得點(diǎn)比較少就能看出來不光滑, n  X# l; |& ]; S' U
如果取得點(diǎn)多,雖然看起來光滑些,但是會影響顯示速度。雖然在使用畫圓命令時(shí)沒有生成很多數(shù)據(jù),但在畫圓函數(shù)內(nèi)部,畫一個(gè)光滑的圓并不會比畫一般曲線占用的資源少。1 J* K0 _! I( m$ X) u9 i# `
# d+ ~3 ], B3 @! @  R
數(shù)據(jù)取的少時(shí)出現(xiàn)不光滑我想到兩個(gè)解決辦法:' ]! [) L6 B3 ]% u' f; w9 R
一個(gè)就是變步長的思想,根據(jù)用戶的屏幕和分辨率自動算出一個(gè)肉眼分辨不出來的精度,當(dāng)用戶改變所顯示物體的大小時(shí)重新計(jì)算這個(gè)精度,這樣不論用戶把圖形放大多少倍都不會有問題了,這里的前提是你需要知道曲線的方程才能做到變步長,如果一開始就是知道很多點(diǎn)的坐標(biāo)的話應(yīng)該先擬和曲線方程。" B0 I4 n2 f1 Q7 z# k: c
另一個(gè)辦法就是抗鋸齒。因?yàn)槠聊坏娘@示實(shí)際就是很多象素點(diǎn),比如橫1024縱768,這樣在顯示非45度斜線時(shí)是肯定會有變形的,抗鋸齒是通過對線附近的區(qū)域進(jìn)行顏色的調(diào)整,使人眼感覺光滑。
7#
發(fā)表于 2006-8-10 21:16:47 | 只看該作者

Re: 以前做的三維齒輪簡易模型

厲害!佩服!
6 L: x/ R& g, ?" I* x7 ?; K這對我來說就好像是另一個(gè)領(lǐng)域的事情,你也有所研究。
, w# p( ^7 Z$ `, G4 D0 M$ p
/ u3 q. d: l) f有辦法在AutoCAD中實(shí)現(xiàn)嗎?比如變步長。# i" |7 M$ j  P1 l
我知道的是計(jì)算機(jī)一般缺省的精度是16位有效數(shù)字。是不是任意曲線可以達(dá)到這個(gè)精度,而在顯示時(shí)和圓有同樣的速度?
8#
 樓主| 發(fā)表于 2006-8-11 17:08:32 | 只看該作者

Re: 以前做的三維齒輪簡易模型

AutoCAD里工具-選項(xiàng)里有一個(gè)設(shè)置顯示精度的地方,如果設(shè)得低的話,顯示圓時(shí)也是不光滑的。
  [* \4 K/ q4 o) m/ y' w% d如果這個(gè)值設(shè)置的足夠高,那么曲線(如漸開線)是否光滑取決于我們用多少點(diǎn)描述它以及畫線" j3 f1 s/ }" Q  h* f, t
的方法。最簡單的畫線方法是用直線連接這些點(diǎn),當(dāng)取得點(diǎn)數(shù)多的時(shí)候可以很光滑,可是在放大
" L( \% W: I0 N% Z' q3 ~的時(shí)候就很容易變形。在CAD里還有一個(gè)畫線方法是用曲線連接這些點(diǎn),CAD應(yīng)該有這個(gè)命令的。
# y5 x0 H! v2 q# K3 s* Q精度可以得到改善,但點(diǎn)與點(diǎn)之間的曲線仍然是系統(tǒng)自動生成的,和原始的精確方程還是會有一定, o, G/ L# O( w2 f+ ^) |
差距。
' s$ Q9 q9 a) _0 l. R還有我聽說在proe里直接輸入方程式而不指定精度就能自動生成曲線,而且放大之后看起來也
7 ^/ T% `8 j- ], t. j很光滑,不知道是不是使用了變步長的思想。
) e- q, K0 F( W4 V$ @) w' q( `+ J' ~7 F- P5 ]" f
我總結(jié)了變步長的思想要點(diǎn)是
! {9 x' N1 F8 ?7 @, p+ [1用方程來描述對象(如果原始數(shù)據(jù)是離散的點(diǎn)則先擬合方程)
1 l# B- B' t; f. K& A; r) r2決定點(diǎn)的個(gè)數(shù)n7 M) p3 l% r) h! g$ x. B4 M- @  e
3根據(jù)顯示區(qū)域算出需要顯示區(qū)域的定義域,然后由方程生成n個(gè)點(diǎn)
6 }* N- y1 w% ?3 b  B2 Y& ^4用直線或曲線連接這n個(gè)點(diǎn)% a  M4 L! l$ d9 h$ \$ a& l& m1 d' Q
5顯示區(qū)域變化的話重復(fù)3
& a# g. ~( r3 ~- o9 C8 b# s這樣顯示區(qū)域的精度永遠(yuǎn)是n個(gè)點(diǎn),在需要精確仿真時(shí)也可以根據(jù)需要隨時(shí)更改n的值/ I" }/ q& o- V1 t4 ~6 z3 r
或者把原始定義域分成一個(gè)個(gè)大小為n的塊分別計(jì)算(數(shù)組大小可以不變,函數(shù)重復(fù)利用)
: C$ g' w" B8 c2 V& D. j2 c4 }1 G* i7 z. ^. k3 }/ y6 D
傳統(tǒng)方法主要是一開始就固定了原始定義域是n個(gè)點(diǎn)。我對autocad里實(shí)現(xiàn)變步長還沒思路。: j0 P7 d# }3 g7 q. {
我想變步長的方法主要是應(yīng)用在自己編寫的軟件中比較容易實(shí)現(xiàn)。
9#
發(fā)表于 2006-12-21 22:21:50 | 只看該作者

Re: 以前做的三維齒輪簡易模型

呵呵,不錯(cuò),比我研究精神高。
1 [& G4 H4 M& L1 A$ M/ N如果要在齒面上實(shí)現(xiàn)光滑連接,最好使用NURBS曲面實(shí)現(xiàn),既簡單,計(jì)算量又小,而且精度高。7 j6 e9 G- i3 y% D- q
如果使用VC程序?qū)崿F(xiàn),也許我可以幫一點(diǎn)忙。
. x3 h( ^5 E2 F5 I, W但是,樓主朝這個(gè)方向努力了,很是佩服。
10#
發(fā)表于 2006-12-22 11:37:27 | 只看該作者

Re: 以前做的三維齒輪簡易模型

這是用在哪方面的?1 p1 I. o6 `7 A4 E; b
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

小黑屋|手機(jī)版|Archiver|機(jī)械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2024-9-22 17:39 , Processed in 0.053950 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表