顯示具有 金工-數學 標籤的文章。 顯示所有文章
顯示具有 金工-數學 標籤的文章。 顯示所有文章

2009年11月17日 星期二

以數學做逆向工程:以TAMIYA TA01/02馬達座為例


如果N百年前沒DIY馬達座就沒事了

http://tw.myblog.yahoo.com/looka330/article?mid=32&prev=58&l=f&fid=8

誰知一搞結識spiderack...

spiderack 在鋼琴界...至少台灣鋼琴界頗負盛名,從幾間研究所邀他就讀不收學費就知道他有多屌

可惜...他很任性,三不五時會催說很久沒收到亮晶晶的改裝品了...

這回要我再戰馬達座,那個回應真是..."G8高峰會" =.=

http://tw.myblog.yahoo.com/looka330/article?mid=36437&prev=-2&next=36398&page=1&sc=1#yartcmt

雖然spiderack待過專業木工廠(專門加工比鋼還硬的木頭、就是丟到水裡會沉下去那種)

要他DIY什麼都行,不過為了保護國家鋼琴手,我也只好硬著頭皮上工了...

會的工具越進步,越懷疑從前怎有辦法做出來?過去作品雖醜,該準的倒也蠻準(至少就馬達座來說...)

改用CNC製作,難處在於"座標",過去是將塑膠件固定在金屬板上,照著鑚孔當鑚模,日後要多做才方便

PS:結果鑚模就只用那麼一次=.=

這回以CNC製作,座標怎個難法?

大家都知道兩個齒輪要順暢運轉,兩齒輪的節圓必須相切。

以下圖為例:位置1與位置2都沒錯,兩者節圓都相切、都能順暢運作

問題是哪個孔才是tamiya選定的?或甚至這兩個都不是?

如果選擇與tamiya不同,即使能運作,但與塑膠件兩相比較,會被誤以為是失敗品!

這就得抽絲剝繭了,我先量出大直齒與馬達做的相對關係,也就是線A與線B的交角、再加上簡單量測

線A上的兩個圓柱位置就定出來了(下圖以圓形表示)

再來,我發現17T的孔位(孔1、孔2)連線與作記號用的底邊互相垂直

於是下圖C、與D的數據便能量出,而這兩孔連線的中點,與大直齒的中心連線等於17T+74T的節圓半徑

PS:孔2與底邊的距離用卡尺量出、再與以孔1的位置反推出孔2的資訊互相驗算。

所有資訊都必須有量測值與計算出來的值,如此才能交互驗算

其他孔該怎麼算?其他孔與底邊的相對關係並不好量,所以都用算的...

如下圖:孔3與孔1的中心可以簡單量到,但是還有x與y兩個未知數(角度未知)、而孔4在25mm外的另一邊

一樣再配合馬達齒與大直齒的距離資訊,以及上述各種資料,可以寫出幾個聯立方程式

方程式寫出來,x與y就能找到啦

同理,所有14個孔+兩根柱子的資訊便迎刃而解


先拿一張5052廢料試鑚孔,當然我相機不可能對焦在每個孔位正上方,只能對焦在整個馬達座的中心

如能從每個孔的正上方看下去,孔位完全吻合!在每個孔放進3mm標準棒都能順暢通過,絲毫沒一點勉強


那麼,開工吧!

材料是經過T6熱處理的7075鋁合金


成品當然是一體成形,連作記號用的三角形都有


當然啦,如果您有3D投影儀就不用這麼麻煩

只要一投影就能輸出3D圖、再以電腦生成刀具路徑就能直接開工了

不過3D投影儀比很多CNC加工機還貴哩~

買得起前,只好用算的...


只要是因果系統,找到初始值便能一生二、二生三、三生萬物啦!<=我大學的計算機概論老師常說的

2009年10月27日 星期二

直接用Gcode編寫刀具路徑


※ CNC:Computer Numerical Control (電腦數值控制)

※G-code則是一種語言,就好像是我們說國語、老美說美語、德佬說德語

你跟機器透過電腦溝通就得說機器語,這邊這種語言叫做G-code,只是一種語言,倒也沒什麼特別

就好像國語、英語說得流利雖然很厲害,但言之有物更可貴!


曾經發過幾篇刀具路徑的文章,卻沒提過整個流程

先用電腦繪製3D圖形,再以軟體輸出刀具路徑又是另一種作法,這邊就不提了,因為我不會,哇哈哈~

首先:提筆畫圖...

下面這張畫的是漫畫,我只是拿來充數


設計好需要的零件...

當然下面這張也不對,因為角度畫錯了...


G-code的指令上百條,其實我只用了幾個:

G00:直線快速進給到??座標、

G01:依指定速度直線進給到??座標、

G02/G03:依順、逆時針畫圓、畫弧、

G17-G19:切換平面、

G83/G80:深孔啄鑚

再來就是根據選用的刀具半徑、標示其空間座標

還記得小時候老姊上學都要跟我賽跑,每次都是一直跑,跑到下個紅綠燈為止(第一道指令)

然後看交通號誌、觀測左右來車,走到對面再重新開始(第二道指令)...

標示座標就標在那些路口處,讓刀子從這個路口跑到下一個路口、過馬路又是另一道指令...

我這邊選用8mm刀,半徑4mm,於是我將工件外形往外退4mm

這就好像是我們家外面,與大馬路總是隔著水溝、花圃、騎樓...什麼的

家的輪廓就是我要的零件形狀,那些個環繞在外面的什麼,就是刀具路徑

我們總不希望水溝流進家裡面吧?所以刀具半竟有多寬,其座標就該退開工件外形多少


為什麼不用G41、G42補正指令?(只要標示工件外形、再輸入刀具半徑,電腦會自動根據工件往左、往右退開)

這指令雖然好用,不過還蠻常出包,以下為其中兩例:

階梯高度少於刀具半徑,工件會少掉一角:

狹縫底部寬度少於刀具直徑,依然會被錯挖:


出包的實例我也提過:

http://tw.myblog.yahoo.com/looka330/article?mid=36068&prev=36221&next=35952&l=f&fid=8

所以,座標該怎麼標示?(國小、國中幾何)

http://tw.myblog.yahoo.com/looka330/article?mid=34422&prev=34534&l=f&fid=8

轉彎處即使不是R角(圓弧),路徑竟然要走圓弧?(中學最短路徑問題)

http://tw.myblog.yahoo.com/looka330/article?mid=33306&prev=33561&next=32912&l=f&fid=8

不規則形的工件上,根據某斜邊給定一點,這點關於整個座標系又落在哪裡?(大一線性代數座標轉換)

http://tw.myblog.yahoo.com/looka330/article?mid=34534&prev=34789&next=34422&l=f&fid=8

大概有過半數的時間,都只用到國中的三角函數,看下圖就知道有多基本了...


與幾何證明(主要證明哪個角等於幾倍的另一角)


如果是相當複雜的外形,反正我們知道機器的最小刻度是多少(最小步伐),例如說0.01mm或什麼的

那麼我們可以用離散傅立葉轉換,求出每個地方的座標,再以直線啦、圓弧啦...什麼的連起來

唉呀!反正就是求出各點座標再連連看啦...

用的數學工具越多,做出來的東西越準確

像我上面提到的轉彎怎麼轉、斜邊怎麼走...,退開一個刀具半徑後,形狀都與原工件不同了

業界的作法、或是電腦自動生成刀具路徑,多半要你換比較小的刀子

雖然退開刀具半徑,但還是照著工件輪廓走

看過前文就知道:這樣還是有不該削的被削去、該挖的沒挖到,反正只是讓誤差變小一點而已

但扣除震刀、機台剛性...等先天因素,能把誤差消滅為什麼不消滅?先天因素就已經有不少誤差咧!

下面是刀具路徑輸出的圖


阿下圖是成品


有溝有槽、有孔有曲線...


7075 T6整塊切削,但因適當的偷輕,比用5052折出來的還輕


該怎麼偷輕最好?該保留哪些加強肋才能讓零件最堅固?甚至哪些斷面形狀能提升整體剛性?

這又屬於應用力學的範疇了,不過回歸基本仍是物理與數學

我還是想說:中學前的基礎教育不光只是拿來考試的...

當年高中聯考,台中市的學校沒一家能上,如果當初好好念就好了...


2009年10月3日 星期六

歪著頭看也不靈光...軟體生成的錯誤刀具路徑


之前常提到:現在只要畫好3D圖,某些軟體便能生成加工的刀具路徑

不過咧,路徑不見得都對

舉例來說,我想做下面這樣的形狀

最終出現的工件外形卻如下圖,與上圖的差異就是紅色所繪之處

為什麼刀具會走這樣的路徑?

因刀具被指定走到轉角座標、但往上揚的部份(紅線右邊)卻又具有一定寬度

看起來便像是先走過頭(轉角座標),再轉個詭異的彎

通常直接用G-code的補償指令,遇到會干涉的轉角也會這麼走


直接看下圖吧!

這是以SolidWorks畫出來,再以master-cam生成刀具路徑,不修改路徑直接輸出的物外形


換個角度看就明顯了


還好此工件不與其他零件做公母配合,否則紅圈處會是一大隱憂


前面曾經提過線性代數的"座標轉換"

http://tw.myblog.yahoo.com/looka330/article?mid=34534&prev=34789&next=34422&l=f&fid=8

如果我們以轉角處為新原點,將整個空間座標旋轉會如何?

放大轉角處,結果會如下圖:右側往上揚的地方不凸出了,但轉角左側卻陷下一個窟窿...

座標旋轉的當下,刀具路徑當然跟著旋轉,於是乎...

轉角會變成下圖的形狀:

把左側斜向下(斜率為負)的部份擺平,看起來會容易些...

這意味著刀具可以向左退、但不能向下陷

你可以在座標轉換的矩陣裡面加限制條件、或用國中數學的幾何證明來解

下圖紅色大圓代表端銑刀截面,黑線是工件的外形、亦是銑刀圓周上兩點的切線

銑刀半徑、藍線、兩切線圍成兩全等三角形

PS:SSA全等條件僅適用於銳角、直角三角形

於是兩個全等三角形在圓心那端的夾角皆等於 A/2

最後,銑刀圓心的Y軸座標限制不動,X軸座標後退量=銑刀半徑Xsin(A/2)

另一篇文章曾提到怎麼轉彎:

http://tw.myblog.yahoo.com/looka330/article?mid=34422&prev=34468&next=34390

上次針對工件外形,若用在模具,就是公模

若是母模呢?

如下圖所示,若在y點直接轉彎,那麼出彎口會變小

PS:極端的例子是轉直角,出彎寬度等於零

圖裡有個三角形,主要方便識別:直角三角形的斜邊為最大邊,出彎處的確變窄了!

事實上應該以X點為圓心,掃過一圓弧,示意圖如下

游標卡尺裡夾的是tamiya FF-01轉向零件,卡尺所夾之處寬度為7.01mm


到了斜邊,變成只有6.85mm,少了0.16mm,足足有16顆細胞那麼多...

PS:細胞大小可不全都等於0.01mm,極端的例子是鴕鳥蛋,一顆蛋就是一個細胞...


好啦,按照這些法則,G-code一條一條撰寫完,刀具路徑如下


當然,這兩張圖有誤,code少寫好多,不過最終版又忘記輸出...


第一面銑削


不知道別人怎麼去底邊,我都先鋸大概,然後再做基準面


翻面加工,上下曲線依然重合!


其實這要翻兩次面,也就是加工三次


黑色是塑膠原件


除了大圓柱、轉角處,其餘寬度皆為7.00mm


上下軸承均為緊配,依然保持同心...


FF-01金屬轉向與一二樓板固定座


好像...蠻閃


懂了這些小訣竅,配合3D繪圖與刀具生成軟體,零件完成度會更高哦!

2009年6月28日 星期日

歪著看就簡單多了~座標轉換與刀具路徑


續上篇文章

http://tw.myblog.yahoo.com/looka330/article?mid=34422&prev=34468&next=34390

在提到刀具從1.走到2.時,我用了平面上兩點求中點的方法

偷懶終究還是被kchou大抓包了,就是有一回抓到我跟人討論牛頓第三定律出包的那一位

一次出包、一次偷懶都被抓,馬虎不得咧

不過我還蠻佩服kchou,每次都不直接說哪裡有誤,而是換個方式再問我一次

然後就會猛然驚覺:哎喲喂呀~

這個圖中,上下兩個斜線的斜率並不同

畫個延長線會更清楚

因為位置2.上,刀具圓心與工件上的圓點連線,必須垂直於下面的斜線

所以與位置1.的圓心,三點不共直線

角度資訊、斜率、刀具半徑啥都有,要算很容易,當時偷懶是因為刀具半徑只有1mm

X、Y的座標誤差只有0.0x mm,這部分又是工件的外形,不需要跟別的工件配合...

so...用國小數學近似過去,這邊提供給需要的人做參考,以下才是這次的正題

=======================================================

這次的工件如下圖,右上方、右下方各有五個小黑點,小黑點互相間的X、Y軸距離都是"7mm"

只是右下方是斜著擺,當你不是用solidworks這種方便軟體時,怎麼"精確"標出右下角那五點的座標咧?

畫出來用量的?不準吧!

用三角函數一個一個算?太慢吧!

這次我提供一個座標轉換的方法:座標旋轉

首先,我們有什麼資訊?

a.的長度是15、b.是48,所夾的角tan-1(-15/48),大約等於17.35

既然斜邊長是已知的,我們不妨把下面斜斜的腳,以(21,-60)為圓心,往逆時針旋轉17.35度

讓上下兩隻腳都對齊座標軸,這樣的座標應該就很好標了!

為了方便閱讀,我把它標示在左下角

然後把這些(128,-64)、(135,-71)、(128,-78)、(121,-71)都減去剛才的旋轉圓心(21,-60)

等於(107,-4)、(114,-11)、(107,-18)、(100,-11)

然後把上述座標帶入下面的旋轉矩陣的(u,v)值


出來的(x,y)再一一加回(21,-60),就成了

(121.93,-95.73)、(126.52,-104.5)、(117.75,-109.09)、(113.16,-100.32)

這樣要手繪再量?應該精準不到小數以下第二位...

要用邊角關係、以及斜腳寬度22的資訊一一去算?也太慢...

只要用座標轉換的旋轉、加減、縮放,可以在很短的時間內標出精確尺寸哦

以下是輸出,斜斜腳上的五個孔,上下、左右兩兩連線真的是互相垂直、又相交於中間的大孔!