OpenSCAD(https://my.oschina.net/u/2306127?q=openscad)是一個可以用代碼進行幾何構型的軟件,使用BlocksCAD還可以用可視化代碼塊構建幾何體,並進一步轉化爲scad幾何造型代碼,然後可以轉爲stl文件,到Cura等3D打印軟件中輸出立體模型。這與很多交互式的CAD軟件有很大的不同,可以創建出更加靈活的算法驅動的幾何造型。下面我們來造個雪花。
實現使用BlocksCAD創建模型:
然後,查看scad代碼:
//!OpenSCAD
// angulo entre 300 e 340
// distancia entre 4 y 16
// lonxitude entre 4 y 12
module rama(distancia, angulo, lonxitude) {
color([1,0.6,0]) {
union(){
translate([distancia, 0, -1]){
rotate([0, 0, angulo]){
cube([2, lonxitude, 2], center=false);
}
}
translate([distancia, 0, -1]){
mirror([0,1,0]){
rotate([0, 0, angulo]){
cube([2, lonxitude, 2], center=false);
}
}
}
}
}
}
for (i = [0 : abs(60) : 360]) {
rotate([0, 0, i]){
union(){
translate([10, 0, 0]){
color([0.4,1,0.6]) {
cube([20, 2, 2], center=true);
}
}
color([0.93,0,0]) {
rama(14, 315, 8);
}
color([1,1,0]) {
rama(9, 315, 12);
}
color([0.2,0.8,0]) {
rama(4, 315, 8);
}
translate([22, 0, 0]){
color([0.2,1,0.2]) {
// torus
rotate_extrude($fn=4) {
translate([3, 0, 0]) {
circle(r=1.15, $fn=6);
}
}
}
}
}
}
}
// size is multiplied by 0.75 because openScad font sizes are in points, not pixels
linear_extrude( height=2, twist=0, center=false){
text("2022 北京冬奧會", font = "簡體中文", size = 5*0.75, halign="center"; valign="center");
}
translate([0, 6, 0]){
// size is multiplied by 0.75 because openScad font sizes are in points, not pixels
linear_extrude( height=2, twist=0, center=false){
text("一起向未來", font = "簡體中文", size = 5*0.75, halign="center"; valign="center");
}
}
把代碼拷貝到OpenSCAD中,可以繼續編輯。
但是呢,OpenSCAD中的字體引用與瀏覽器不太一樣,需要設置字體路徑,參見https://my.oschina.net/u/2306127?q=openscad。另外,默認的顏色會有變化,使用Color函數設置一下即可。
接下來可以使用Cura進行3D打印,參見:
也可以輸出到其它模型格式,集成到其他的三維軟件中。