2021年2月10日 星期三

OpenSCAD : 以 ceil 微調尺寸上的誤差

2021年2月10日 星期三

為能自由的調整邊框圖案的尺寸,利用 OpenSCAD 的 script 來產生環形的圖案邊框模型。大概是計算完小數點精準度的問題,明明是重覆的圖案,把模型檔匯入 TinkerCAD 以後,居然有一個是破損的。


上圖箭頭處是 24 個重複圖案中,唯一有破損的,幸好有發現,不然等用 3D printer 印好才看到,包準吐血。

在猜想,兩個圖案連結處的長度是利用圓周的公式推算出來的,可能剛剛好差一咪咪,導致製作出的模型檔是有破損的。

既然可能是因為長度不夠造成的,那就用 OpenSCAD 中的「ceil」函數來將小數點以下的數字「無條件進入」吧!


原來的寫法是這樣:


outterSpacing = (outterWidth-width)/2; 


如果想取到小數點以下第一位,那就先將結果乘以 10 ,使用完 ceil() ,無條件進位以後,再除以 10。


outterSpacing = ceil((outterWidth-width)/2*10)/10; 


不過,如果取的位置太大,大太多了,也是會影響到模型的外觀的。像第一張截圖中,綠色的模型是取到小數點以下第二位(先乘以100,無條件進位以後,再除以100),連接處可以看到微微的突出;黃色的模型則是取更小一些,先乘以 500 ,無條件進位以後,再除以 500。


outterSpacing = ceil((outterWidth-width)/2*500)/500;


經過這樣的調整,連接處看起來不但和原來差不多,匯入 TinkerCAD 中,也不會有破損的情形了。




沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket