如何使用openscad繪制一個簡單的鍵帽.


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文件。
打開你的切片軟件,切片並打印吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM