3D建模中,我们往往涉的单个模型都不是简单规则的球形或者长方体.
在openscad中, 我们可以通过几何变换和 图形的 交并差 操作 来得到.
在几何变换上, 除了我们之前讲到的 translate 3维移动, 和retate 3维旋转. openscad还提供了 resize 可以提供3维的伸缩变形.
看下面的例子:
wheel_radius = 8;
base_height = 8;
top_height = 10;
track = 28;
wheel_width = 4;
body_roll = 0;
wheels_turn = -20;
rotate([body_roll,0,0]) {
// Car body base
resize([90,20,12])
sphere(r=10);
// Car body top
translate([10,0,5])
resize([50,15,15])
sphere(r=10);
}
虽然几何变换很美,但是更实用的几何图形往往需要 图形的 交并差 运算得到,
在openscad中,实用 intersection 来提供交运算
sphere(r=10);
translate([12,0,0])
sphere(r=10);
translate([0,-12,0])
sphere(r=10);
intersection() {
sphere(r=10);
translate([12,0,0])
sphere(r=10);
translate([0,-12,0])
sphere(r=10);
}
交运算得到:
difference() {
sphere(r=10);
translate([12,0,0])
sphere(r=10);
translate([0,-12,0])
sphere(r=10);
}
差运算得到:
union() {
sphere(r=10);
translate([12,0,0])
sphere(r=10);
translate([0,-12,0])
sphere(r=10);
}
并运算得到:
通过这个操作,基本就吃定了3维建模,剩下的99都是我们的汗水啦!!!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END