- 技術筆記外殼製作_3D列印 (較久遠的紀錄) (連結)
- 筆記:久違的3D列印 (使用筆記) (連結)
- 筆記:創建3D物件,OpenSCAD (製作立體模型相關技巧) (連結)
- 軟體工程師的3D列印筆記 (使用心得) (連結)
- 技術筆記:多樣化的3D列印裝置 (連結)
創建3D物件方式眾多(文章),其中又以OpenSCAD全以程式語言創建和控制,最適合軟體工程師使用,文字描述例如:it easier to describe shapes in "words" and mathematics than to master the mouse and keyboard skills of more visual programs. 目前也用OpenSCAD自製了消波塊、光學鏡筒、水杯等,GitHub(連結)。
自製消波塊 |
基本資料
讀取或新創scad附檔。最簡單作業是cube([1, 2, 3]);存檔,即可看到長寬高為1,2,3的cube,存檔或是PREVIEW都會更新。存檔後自動載入檔案並進行模型預覽(可取消這個行為,這可以在選單「Design/Automatic Reload and Preview」中設定)。
openscad中一個數字單位為1mm
程式format:
- # 讓這一行後面物件變成透明
- // 程式註解
簡單幾行就有特殊效果
|
連結 |
平面物件
- 圓形Circle
- 平面square
- 多邊形 polygon(points=[[0,0],[20,10],[20,-10]]);
- 平面square
- 多邊形 polygon(points=[[0,0],[20,10],[20,-10]]);
立體物件
- 方形 cube(10)
- 圓形
- 球sphere(10)
- 圓形
- 柱體 上小下大cylinder(d1=9,d2=7,h=3,center=true) 同樣大小cylinder(d=4,h=1.5,center=true) fn 可以決定圓滑的程度,數字越小,就會變成幾個小平面 $fn=120;
- 立體文字 linear_extrude(2) text("顧皓光", font = "標楷體");
物件移動
- 要放在文字之前
- 移動 translate([1,2,3])
- 旋轉 rotate([0,45,45])
- 順序用法 旋轉+移動 translate([20,10,0]) rotate(30) cylinder(d=4,h=1,center=true);
進階 物件棒狀延伸
linear_extrude(height = 10, center = true, convexity = 10, twist = 0) translate([2, 0, 0]) circle(r = 1); Height會變成向上10 twist會變成紐曲狀況 100就是
linear_extrude(height=10, scale=[1,0.1], slices=20, twist=0)
polygon(points=[[0,0],[20,10],[20,-10]]);
進階 物件環狀延伸
rotate_extrude(angle=90, convexity=10) translate([20, 0]) circle(10); translate([20,0,0]) rotate([90,0,0]) cylinder(r=10,h=80); translate([0,60,0]) rotate_extrude(angle=270, convexity=10) translate([40, 0]) circle(10);進階 物件放大縮小
- 這兩者概念不同,主要是中心點差異
- scale([1.2,1.2,1.2])
- resize( [實際X,實際Y,實際Z] ) 參考連結
跨物件的交集、聯集
實際做出東西都是靠很多union difference或是intersection組合而來 物件連結方式 union交集和聯集形體 |
hull() { translate([15,10,0]) circle(10); circle(10); } 外框 hull() { translate([15,10,0]) circle(10); circle(10); translate([15,40,0]) circle(10);} 變成三個端點
Openscad技巧
openscad的特點是,達到一個目的可以有多種做法,以三角來說,就有三種作法method 1
module right_triangle(side1,side2,corner_radius,triangle_height){
translate([corner_radius,corner_radius,0]){
hull(){
cylinder(r=corner_radius,h=triangle_height);
translate([side1 - corner_radius * 2,0,0])cylinder(r=corner_radius,h=triangle_height);
translate([0,side2 - corner_radius * 2,0])cylinder(r=corner_radius,h=triangle_height);
}
}
}
right_triangle(100,100,1,10);
method 2
rotate_extrude(angle=360, convexity=10, $fn = 100)
translate([40, 0]) polygon(points=[[0,0],[10,10],[10,0]]);
method 3
cylinder(20,20,20,$fn=3);邏輯判斷和程式延用
for function program module 可重用的模組或函式,放在xxx.scad檔案,例如2d.scad,使用方式,use <2d .scad="">; 2d>STL
讀取STL方式在windows中要用\\兩條斜線
不能直接讀取TL檔案。讀取STL方式 import("C:\\Users\\USER\\Desktop\\3d\\peter_sword.stl"); preview
轉成STL
design render 產生STL檔案 File/Export/Export as STL
design render 產生STL檔案 File/Export/Export as STL
其他
經典教材(有德文版) 連結
光學元件 連結
範例2(OpenSCAD搭配OpenCASE )。參考 下載位置、教學文件 、網站文件 、 林信良 WIKI
沒有留言:
張貼留言