1 新建空項目
2測數據
測量得出數據.這個長方體的長寬高分別是1.6、4.6、8 注意,這三個數據並不是測量得到的數據,而且加了一點公差值(為3D打印做准備)
3畫圖
寫代碼
導入模型
為了方便以后其他零件定位,統一在他們的后面使用對齊中心命令 center=true
得到第一個長方體之后,第二個就簡單了.直接復制第一個,並且以Z軸為中心,對其進行旋轉操作,如下圖
這樣,我們就得到了這個十字鍵槽,但是,鍵帽上並不是這樣的啊. 別急.下面,我們將見到OPENSCAD中最常用的一個布爾運算是如何做的.
首先我們畫一個圓柱體
然后我們把之前做好的那個十字立方體放到這個圓柱體的下面
cylinder(7.9,r=4,center=true,$fn=36);//畫圓 //下面 cube([1.6,4.6,8],center=true);//畫長方體 rotate([0,0,90])//旋轉得到長方體 cube([1.6,4.6,8],center=true);
這個時候,使用三個布爾運算函數中的 差集 命令 difference()
把它們都包起來,
是的,差集命令的含義,是用第一個立方體,減去之后的所有立方體.
difference(){ cylinder(7.9,r=4,center=true,$fn=36);//畫圓 cube([1.6,4.6,8],center=true);//畫長方體 rotate([0,0,90])//旋轉得到長方體 cube([1.6,4.6,8],center=true); }
請注意順序差別,如果不一樣就會相反操作,如下圖,十字減去圓柱,
這時,我們就有了鍵帽中最關鍵的零件了.
接下來,我們就要開始畫鍵帽了.
在openscad中,有一個叫hull()的命令. 我把他理解為蒙皮.就是將兩個物體,最表面的部分,連接起來的一個命令. 我們就能利用這個命令,生成我們需要的鍵帽主體.
首先我們要先用一個長寬18毫米,高0.1毫米的長方體來做鍵帽的底
然后再做一個長12.5、寬15、高1的長方體作為頂。並且把它往Z軸方向上移10毫米。
也就是鍵帽的高度。
利用hull命令給他們蒙皮。
hull(){ cube([18,18,0.1],center=true); translate([0,0,10])cube([12.5,15,1],center=true); }
但是這是一個實心的東西啊,要怎么才能實現其他建模軟件中的 抽殼 命令呢?
其實很簡單,我們鍵帽的外殼是2mm,那么我們就再做一個尺寸縮小2mm的梯形立方體,再做一下減法不是就成了?
difference(){ hull(){ cube([18,18,0.1],center=true); translate([0,0,10])cube([12.5,15,1],center=true); } hull(){ cube([16,16,0.2],center=true); translate([0,0,6.5])cube([10.5,13,1],center=true); } }
接下來,就是把兩個東西組合在一起了。
這一步,需要慢慢的調整具體的位置。 好在,我們一開始就在畫所有立方體的時候都在中心位置。我們只需要單純的移動一個軸就能調整了。
最后我們得到了這樣的結果。
// 模型1 十字星柱體 module caozhu(){ difference(){ cylinder(7.9,r=4,center=true,$fn=36);//畫圓 cube([1.6,4.6,8],center=true);//畫長方體 rotate([0,0,90])//旋轉得到長方體 cube([1.6,4.6,8],center=true); } } //模型二 外殼 module zhuti(){ difference(){ hull(){ cube([18,18,0.1],center=true); translate([0,0,10])cube([12.5,15,1],center=true); } hull(){ cube([16,16,0.2],center=true); translate([0,0,6.5])cube([10.5,13,1],center=true); } } } // 模型三 1+2 組合 module chengshuti(){ zhuti(); translate([0,0,3.5])caozhu(); } 、 //程序執行 chengshuti();
這里大家會看到,為了方便對每個部件進行操作,我使用了 模塊 的方式,把它們分別的包裝起來,然后就能方便的進行各種操作了。
然后,鍵帽不可能是這么四平八穩的,上面是有弧度,而下面也是有斜面的。要怎么樣做出這樣的效果呢?
還是很簡單,我們一樣來做減法。
首先上面畫一個非常大的圓柱體,並且旋轉它,移動它,讓他剛剛接觸到鍵帽主體的頂部表面。
//Z方向移動28.4 繞X軸旋轉90 translate([0,0,28.4])rotate([90,0,0])cylinder(20,r=19,center=true,$fn=100);
然后再畫一個比底部大一點的方塊,旋轉它。
rotate([-8,0,0])cube([20,20,4],center=true);
這樣,我們就得到了這樣的東西。
是不是感覺很難看?
馬上就好。讓我們開始做減法吧。用鍵帽減去上面和下面多余的東西
// 模型1 十字星柱體 module caozhu(){ difference(){ cylinder(7.9,r=4,center=true,$fn=36);//畫圓 高度7.9 半徑4 cube([1.6,4.6,8],center=true);//畫長方體 rotate([0,0,90])//旋轉得到長方體 cube([1.6,4.6,8],center=true); } } //模型二 外殼 module zhuti(){ difference(){ hull(){ cube([18,18,0.1],center=true); translate([0,0,10])cube([12.5,15,1],center=true); } hull(){ cube([16,16,0.2],center=true); translate([0,0,6.5])cube([10.5,13,1],center=true); } } } // 模型三 1+2 組合 module chengshuti(){ zhuti(); translate([0,0,3.5])caozhu(); } //模型四 module wancheng(){ difference(){ chengshuti(); //Z方向移動28.4 繞X軸旋轉90 translate([0,0,28.4])rotate([90,0,0])cylinder(20,r=19,center=true,$fn=100); // rotate([-8,0,0])cube([20,20,4],center=true); } } //程序執行 wancheng();
好了,這樣,一個機械鍵盤的鍵帽就繪制完成了。
接下來要做的事情,就是直接在openscad里面,按一下F6開始實體運算。
在運算結束后,保存該模型為STL文件。
打開你的切片軟件,切片並打印吧。