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

標(biāo)題: 以前做的三維齒輪簡(jiǎn)易模型 [打印本頁]

作者: logxing    時(shí)間: 2006-8-2 23:57
標(biāo)題: 以前做的三維齒輪簡(jiǎn)易模型

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

+ i4 L4 ]3 r* }9 K& K

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

# i! d) W- S! ~: i: @& W u

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

5 a. s( Z) ~9 \0 F1 R

 


作者: logxing    時(shí)間: 2006-8-3 00:09
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
因?yàn)槭蔷毩?xí)很簡(jiǎn)易的,齒根部過渡曲線,齒頂?shù)菇侵惗紱]有做,當(dāng)初只是重視了漸開線部分! V, T8 f" T) M7 e6 |
這里漸開線是從基圓開始的。初學(xué)者不要被我的圖給誤導(dǎo)了。
作者: Ljdqe    時(shí)間: 2006-8-3 20:39
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
作得漂亮,用VB做的?,真是高手
作者: logxing    時(shí)間: 2006-8-4 19:58
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
是用vb做的
, G4 T' b' b# d& s7 Y不過長(zhǎng)遠(yuǎn)來看,以后應(yīng)該用c++做
作者: 阿松    時(shí)間: 2006-8-5 08:53
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
我一直在想:各種曲線能不能做到象圓和橢圓一樣,不是逐點(diǎn)描出來的,而是光滑的。最主要要能減少數(shù)據(jù)量。
作者: logxing    時(shí)間: 2006-8-5 10:00
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
計(jì)算機(jī)即使有畫圓或橢圓的命令,最終繪制時(shí)還是用點(diǎn)畫的,如果取得點(diǎn)比較少就能看出來不光滑# D* P5 _9 Y2 \! ]5 i. J
如果取得點(diǎn)多,雖然看起來光滑些,但是會(huì)影響顯示速度。雖然在使用畫圓命令時(shí)沒有生成很多數(shù)據(jù),但在畫圓函數(shù)內(nèi)部,畫一個(gè)光滑的圓并不會(huì)比畫一般曲線占用的資源少。' m2 E& T6 b( L

2 s2 k- R* v- X8 ]數(shù)據(jù)取的少時(shí)出現(xiàn)不光滑我想到兩個(gè)解決辦法:5 _! _' Z$ j5 U, G+ ^/ }
一個(gè)就是變步長(zhǎng)的思想,根據(jù)用戶的屏幕和分辨率自動(dòng)算出一個(gè)肉眼分辨不出來的精度,當(dāng)用戶改變所顯示物體的大小時(shí)重新計(jì)算這個(gè)精度,這樣不論用戶把圖形放大多少倍都不會(huì)有問題了,這里的前提是你需要知道曲線的方程才能做到變步長(zhǎng),如果一開始就是知道很多點(diǎn)的坐標(biāo)的話應(yīng)該先擬和曲線方程。
0 z4 y3 D: v& X另一個(gè)辦法就是抗鋸齒。因?yàn)槠聊坏娘@示實(shí)際就是很多象素點(diǎn),比如橫1024縱768,這樣在顯示非45度斜線時(shí)是肯定會(huì)有變形的,抗鋸齒是通過對(duì)線附近的區(qū)域進(jìn)行顏色的調(diào)整,使人眼感覺光滑。
作者: 阿松    時(shí)間: 2006-8-10 21:16
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
厲害!佩服!, e- F% X) J; @7 G* B
這對(duì)我來說就好像是另一個(gè)領(lǐng)域的事情,你也有所研究。6 S0 G+ K7 I' N3 j0 {
6 D& {& N- o* Q
有辦法在AutoCAD中實(shí)現(xiàn)嗎?比如變步長(zhǎng)。
. a' M( Y" M/ |8 Y& o5 d2 p1 C- ?* F我知道的是計(jì)算機(jī)一般缺省的精度是16位有效數(shù)字。是不是任意曲線可以達(dá)到這個(gè)精度,而在顯示時(shí)和圓有同樣的速度?
作者: logxing    時(shí)間: 2006-8-11 17:08
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
AutoCAD里工具-選項(xiàng)里有一個(gè)設(shè)置顯示精度的地方,如果設(shè)得低的話,顯示圓時(shí)也是不光滑的。
; T# v5 k( H( ~- s如果這個(gè)值設(shè)置的足夠高,那么曲線(如漸開線)是否光滑取決于我們用多少點(diǎn)描述它以及畫線0 k8 a! w' D4 o, h: p+ J
的方法。最簡(jiǎn)單的畫線方法是用直線連接這些點(diǎn),當(dāng)取得點(diǎn)數(shù)多的時(shí)候可以很光滑,可是在放大+ T) Z! {! ~/ I, v
的時(shí)候就很容易變形。在CAD里還有一個(gè)畫線方法是用曲線連接這些點(diǎn),CAD應(yīng)該有這個(gè)命令的。( T; y) i) A  y! M- @( {
精度可以得到改善,但點(diǎn)與點(diǎn)之間的曲線仍然是系統(tǒng)自動(dòng)生成的,和原始的精確方程還是會(huì)有一定
! P! s4 P9 ?# A+ ]2 X; u6 Y差距。- ^. l7 Y6 l* y" r% e* S3 R
還有我聽說在proe里直接輸入方程式而不指定精度就能自動(dòng)生成曲線,而且放大之后看起來也  }1 F  u! X# u" C; G
很光滑,不知道是不是使用了變步長(zhǎng)的思想。7 j" V- ?  T: T+ ]
6 ~7 u9 M( W+ |7 x
我總結(jié)了變步長(zhǎng)的思想要點(diǎn)是
3 u' F5 }9 r& {& \7 r1用方程來描述對(duì)象(如果原始數(shù)據(jù)是離散的點(diǎn)則先擬合方程)) x% W& x" Z2 @- ]% }( e( Z
2決定點(diǎn)的個(gè)數(shù)n
! ]7 _6 ^! f! I( _; o* t. m3根據(jù)顯示區(qū)域算出需要顯示區(qū)域的定義域,然后由方程生成n個(gè)點(diǎn)
' D6 \6 M/ m2 {4用直線或曲線連接這n個(gè)點(diǎn)
' P. R+ \' Y9 s* y' a' ?) S  C' a3 d- M5顯示區(qū)域變化的話重復(fù)3
/ j3 I7 t) U2 e# G! i. e' a( ?這樣顯示區(qū)域的精度永遠(yuǎn)是n個(gè)點(diǎn),在需要精確仿真時(shí)也可以根據(jù)需要隨時(shí)更改n的值
- t1 G- B1 O/ z: S: `4 z, O或者把原始定義域分成一個(gè)個(gè)大小為n的塊分別計(jì)算(數(shù)組大小可以不變,函數(shù)重復(fù)利用)
2 C5 K7 w+ |5 G% s9 z2 Y1 A9 I0 V3 S/ k; x# S; m# U
傳統(tǒng)方法主要是一開始就固定了原始定義域是n個(gè)點(diǎn)。我對(duì)autocad里實(shí)現(xiàn)變步長(zhǎng)還沒思路。/ N% ~; }  ^: m6 A+ |! C
我想變步長(zhǎng)的方法主要是應(yīng)用在自己編寫的軟件中比較容易實(shí)現(xiàn)。
作者: gear_making    時(shí)間: 2006-12-21 22:21
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
呵呵,不錯(cuò),比我研究精神高。
. f& ]5 `' D9 b, J' |: n如果要在齒面上實(shí)現(xiàn)光滑連接,最好使用NURBS曲面實(shí)現(xiàn),既簡(jiǎn)單,計(jì)算量又小,而且精度高。6 D1 j+ \4 e& ?6 P
如果使用VC程序?qū)崿F(xiàn),也許我可以幫一點(diǎn)忙。3 A( ^- N% Z3 w
但是,樓主朝這個(gè)方向努力了,很是佩服。
作者: lizhongfa    時(shí)間: 2006-12-22 11:37
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
這是用在哪方面的?' J5 H3 i5 x! J) ~

作者: kevinyang    時(shí)間: 2006-12-22 11:42
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
能建成實(shí)體模型就更漂亮了?梢钥紤]Open GL.
作者: zy_gear    時(shí)間: 2006-12-24 14:52
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
齒根部過渡曲線一般做什么曲線,我翻看了一本機(jī)械設(shè)計(jì)手冊(cè),可上面說的很麻煩,分成好幾種,大家一般做什么曲線,至于齒頂?shù)菇?一般倒個(gè)0.38倍模數(shù)就可以了,一般的機(jī)械設(shè)計(jì)手冊(cè)也都是為0.38*m.呵呵!
作者: zy_gear    時(shí)間: 2006-12-24 14:56
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
糾正一下,0.38*m為齒根倒角,不好意思.
作者: yonk    時(shí)間: 2006-12-27 14:27
標(biāo)題: Re: 以前做的三維齒輪簡(jiǎn)易模型
是編程高手,希望你能出售機(jī)械軟件來提升機(jī)械制造和設(shè)計(jì)的水平
作者: 笑天716    時(shí)間: 2008-6-2 16:10
標(biāo)題: 回復(fù) 5# 阿松 的帖子
在用了適當(dāng)?shù)?維軟件后這就不是問題了,用樣條曲線可以很光滑地把一段函數(shù)表達(dá)的曲線表示在屏幕上當(dāng)然也可以造出齒輪,傘齒輪等各種復(fù)雜函數(shù)表達(dá)的曲線、曲面,連維齒輪上的球面漸開線也可以清楚地表達(dá)出來的。
作者: logxing    時(shí)間: 2008-6-3 14:01
現(xiàn)在看來,顯示并不是最重要的問題。重要的問題是數(shù)學(xué)模型,就是曲面方程,運(yùn)動(dòng)方程,交線,交點(diǎn),包絡(luò)線方程,包絡(luò)面方程的計(jì)算。有了這些東西,就可以算出任何想知道的東西。而顯示只是把計(jì)算結(jié)果表現(xiàn)出來的一種形式。
作者: honghuzhonggong    時(shí)間: 2008-6-13 23:09
樓主做的真好   我不知道這是用什么軟件做的    VB是什么軟件啊   
/ _) p* A( r- T2 V9 b: E9 @我知道PRO/E可以做




歡迎光臨 機(jī)械社區(qū) (http://www.mg7058.com/) Powered by Discuz! X3.4