1. 程式人生 > >如何使用openscad繪制一個簡單的鍵帽.

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

復制 center 6.5 inf 縮小 效果 順序 準備 蒙皮

技術分享圖片

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

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