機械社區(qū)
標題: 以前做的三維齒輪簡易模型 [打印本頁]
作者: logxing 時間: 2006-8-2 23:57
標題: 以前做的三維齒輪簡易模型
這是我一年以前做的一個三維齒輪簡易模型練習,當初的目的是要做一個包括齒輪的加工和使用的三維仿真系統(tǒng)。
% T; |' p, O5 T% k2 M
但是發(fā)現(xiàn)一些基礎的東西還沒有準備好就沒有做下去?,F(xiàn)在開始希望能在一年之內(nèi)做好呀。
) d! D. y/ w* `9 S8 I+ m光標鍵可以變換視角,q和w改變齒輪大小,a和s改變轉速,空格鍵在點,線,面之間變換
4 @+ h& `' |, n+ t/ \$ d
作者: logxing 時間: 2006-8-3 00:09
標題: Re: 以前做的三維齒輪簡易模型
因為是練習很簡易的,齒根部過渡曲線,齒頂?shù)菇侵惗紱]有做,當初只是重視了漸開線部分
2 n$ C4 X6 o+ J, b這里漸開線是從基圓開始的。初學者不要被我的圖給誤導了。
作者: Ljdqe 時間: 2006-8-3 20:39
標題: Re: 以前做的三維齒輪簡易模型
作得漂亮,用VB做的?,真是高手
作者: logxing 時間: 2006-8-4 19:58
標題: Re: 以前做的三維齒輪簡易模型
是用vb做的/ y8 m, U' z2 i; a; ~- K* K
不過長遠來看,以后應該用c++做
作者: 阿松 時間: 2006-8-5 08:53
標題: Re: 以前做的三維齒輪簡易模型
我一直在想:各種曲線能不能做到象圓和橢圓一樣,不是逐點描出來的,而是光滑的。最主要要能減少數(shù)據(jù)量。
作者: logxing 時間: 2006-8-5 10:00
標題: Re: 以前做的三維齒輪簡易模型
計算機即使有畫圓或橢圓的命令,最終繪制時還是用點畫的,如果取得點比較少就能看出來不光滑
0 Z5 k" [6 X+ ?- {7 C如果取得點多,雖然看起來光滑些,但是會影響顯示速度。雖然在使用畫圓命令時沒有生成很多數(shù)據(jù),但在畫圓函數(shù)內(nèi)部,畫一個光滑的圓并不會比畫一般曲線占用的資源少。& F! S$ T+ T% I$ J
- e) P/ j/ C! E' g" `
數(shù)據(jù)取的少時出現(xiàn)不光滑我想到兩個解決辦法:4 _! C K. z1 V) t. j
一個就是變步長的思想,根據(jù)用戶的屏幕和分辨率自動算出一個肉眼分辨不出來的精度,當用戶改變所顯示物體的大小時重新計算這個精度,這樣不論用戶把圖形放大多少倍都不會有問題了,這里的前提是你需要知道曲線的方程才能做到變步長,如果一開始就是知道很多點的坐標的話應該先擬和曲線方程。9 r( r8 k h p" o
另一個辦法就是抗鋸齒。因為屏幕的顯示實際就是很多象素點,比如橫1024縱768,這樣在顯示非45度斜線時是肯定會有變形的,抗鋸齒是通過對線附近的區(qū)域進行顏色的調(diào)整,使人眼感覺光滑。
作者: 阿松 時間: 2006-8-10 21:16
標題: Re: 以前做的三維齒輪簡易模型
厲害!佩服!, g: I3 b: h2 \4 k& U$ Y" ~% i
這對我來說就好像是另一個領域的事情,你也有所研究。
, i) ?2 M' q8 l u* @! T% m! [6 f7 z3 i0 E7 C6 I& m
有辦法在AutoCAD中實現(xiàn)嗎?比如變步長。$ G3 ^# j- v. j- w
我知道的是計算機一般缺省的精度是16位有效數(shù)字。是不是任意曲線可以達到這個精度,而在顯示時和圓有同樣的速度?
作者: logxing 時間: 2006-8-11 17:08
標題: Re: 以前做的三維齒輪簡易模型
AutoCAD里工具-選項里有一個設置顯示精度的地方,如果設得低的話,顯示圓時也是不光滑的。
' U" t: N8 q3 p' f6 v7 G) ^如果這個值設置的足夠高,那么曲線(如漸開線)是否光滑取決于我們用多少點描述它以及畫線
, v" I, L; ~: } h5 w" e+ X的方法。最簡單的畫線方法是用直線連接這些點,當取得點數(shù)多的時候可以很光滑,可是在放大
9 w6 L* n& J) A' P4 \0 L0 K3 F1 v! N的時候就很容易變形。在CAD里還有一個畫線方法是用曲線連接這些點,CAD應該有這個命令的。
3 z4 G7 j1 ]# ~精度可以得到改善,但點與點之間的曲線仍然是系統(tǒng)自動生成的,和原始的精確方程還是會有一定# L- H0 Q: x6 k( l( P
差距。
, e" `3 {. I) b! m, g/ y, C還有我聽說在proe里直接輸入方程式而不指定精度就能自動生成曲線,而且放大之后看起來也$ E Y. V# x: N; ~# c
很光滑,不知道是不是使用了變步長的思想。
1 x }" i9 r3 @2 E. m( w
1 G/ Y* }8 `0 i: _6 ` s. o我總結了變步長的思想要點是. j5 P8 p/ S( r: h
1用方程來描述對象(如果原始數(shù)據(jù)是離散的點則先擬合方程)" \2 c: G9 g M# k, i. L2 z3 f
2決定點的個數(shù)n+ Q8 ^9 n! O, l, P$ _! J8 \2 [9 Z5 |
3根據(jù)顯示區(qū)域算出需要顯示區(qū)域的定義域,然后由方程生成n個點# E3 u) @1 s8 e- `' a; p
4用直線或曲線連接這n個點" h' Y! G# X2 @, U8 e% o2 a1 K
5顯示區(qū)域變化的話重復3* M5 f" G8 c, M! r. |1 M% a
這樣顯示區(qū)域的精度永遠是n個點,在需要精確仿真時也可以根據(jù)需要隨時更改n的值
3 \6 A% J4 N' p0 R+ N* i或者把原始定義域分成一個個大小為n的塊分別計算(數(shù)組大小可以不變,函數(shù)重復利用)
* ? x' z8 {) N" R
. y r. \/ j* f ^ b1 f0 m傳統(tǒng)方法主要是一開始就固定了原始定義域是n個點。我對autocad里實現(xiàn)變步長還沒思路。
; j+ \5 P! w) y. F- m我想變步長的方法主要是應用在自己編寫的軟件中比較容易實現(xiàn)。
作者: gear_making 時間: 2006-12-21 22:21
標題: Re: 以前做的三維齒輪簡易模型
呵呵,不錯,比我研究精神高。% w6 `- t9 s! U v7 Z
如果要在齒面上實現(xiàn)光滑連接,最好使用NURBS曲面實現(xiàn),既簡單,計算量又小,而且精度高。
* |2 C; T% p: X6 P如果使用VC程序實現(xiàn),也許我可以幫一點忙。- I9 B' x F9 J" [
但是,樓主朝這個方向努力了,很是佩服。
作者: lizhongfa 時間: 2006-12-22 11:37
標題: Re: 以前做的三維齒輪簡易模型
這是用在哪方面的?
/ u! q- R9 F& L
作者: kevinyang 時間: 2006-12-22 11:42
標題: Re: 以前做的三維齒輪簡易模型
能建成實體模型就更漂亮了??梢钥紤]Open GL.
作者: zy_gear 時間: 2006-12-24 14:52
標題: Re: 以前做的三維齒輪簡易模型
齒根部過渡曲線一般做什么曲線,我翻看了一本機械設計手冊,可上面說的很麻煩,分成好幾種,大家一般做什么曲線,至于齒頂?shù)菇?一般倒個0.38倍模數(shù)就可以了,一般的機械設計手冊也都是為0.38*m.呵呵!
作者: zy_gear 時間: 2006-12-24 14:56
標題: Re: 以前做的三維齒輪簡易模型
糾正一下,0.38*m為齒根倒角,不好意思.
作者: yonk 時間: 2006-12-27 14:27
標題: Re: 以前做的三維齒輪簡易模型
是編程高手,希望你能出售機械軟件來提升機械制造和設計的水平
作者: 笑天716 時間: 2008-6-2 16:10
標題: 回復 5# 阿松 的帖子
在用了適當?shù)?維軟件后這就不是問題了,用樣條曲線可以很光滑地把一段函數(shù)表達的曲線表示在屏幕上當然也可以造出齒輪,傘齒輪等各種復雜函數(shù)表達的曲線、曲面,連維齒輪上的球面漸開線也可以清楚地表達出來的。
作者: logxing 時間: 2008-6-3 14:01
現(xiàn)在看來,顯示并不是最重要的問題。重要的問題是數(shù)學模型,就是曲面方程,運動方程,交線,交點,包絡線方程,包絡面方程的計算。有了這些東西,就可以算出任何想知道的東西。而顯示只是把計算結果表現(xiàn)出來的一種形式。
作者: honghuzhonggong 時間: 2008-6-13 23:09
樓主做的真好 我不知道這是用什么軟件做的 VB是什么軟件啊 3 D# y6 H+ L( t: g1 n: H; n
我知道PRO/E可以做
歡迎光臨 機械社區(qū) (http://www.xa-space.com/) |
Powered by Discuz! X3.5 |