Stronę tą wyświetlono już: 2015 razy
OpenSCAD pozwala na tworzenie własnych modułów, których konstrukcja umożliwia tworzenie obiektów 2W czy też 3W. Moduły w odróżnieniu od funkcji nie mogą zwracać żadnych wartości liczbowych, zaś funkcje nie mogą tworzyć żadnych obiektów a jedynie generować dane niezbędne do ich utworzenia.
Konstrukcja modułu składa się z słowa kluczowego module, następującej po nim nazwy modułu, listy parametrów i ciała, gdzie umieszczane są instrukcje. Oto przykładowy kod takiego modułu, który generuje model łożyska kulkowego:
module bearing(dz = 120, dw = 60, n = 8, $fn = $fn){
h = (dz - dw) / 2;
g = 2;
rk = h / 3;
ray = (dz + dw) / 4;
for(angle = [0 : 360 / n : 360]){
rotate([0, 0, angle])
translate([ray, 0, 0]){
sphere(r = rk);
}
}
difference(){
difference(){
union(){
cylinder(r = ray + rk / 2, h = 5, center = true);
for(angle = [0 : 360 / n : 360]){
rotate([0, 0, angle])
translate([ray, 0, 0]){
difference(){
sphere(r = rk + g);
sphere(r = rk);
}
}
}
}
// I cut inside part
cylinder(r = ray - rk / 2, h = 3 * rk, center = true);
}
// I cut outside part
difference(){
cylinder(r = (ray + rk * 2) * 2, rk * 4, center = true);
cylinder( r = ray + rk / 2, h = rk * 5, center = true);
}
}
difference(){
cylinder(r = ray - rk / 1.5, h = h, center = true);
cylinder(r = dw / 2, h = h + 1, center = true);
rotate_extrude(angle = 360)
translate([ray, 0, 0])
circle(r = rk, center = true);
}
difference(){
cylinder(r = dz / 2, h = h, center = true);
cylinder(r = ray + rk / 1.5, h = h + 1, center = true);
rotate_extrude(angle = 360)
translate([ray, 0, 0])
circle(r = rk, center = true);
}
}
Jak widać, moduł bearing (łożysko) przyjmuje kilka następujących parametrów:
- dz - średnica zewnętrzna łożyska;
- dw - średnica wewnętrzna łożyska;
- n - liczba kulek;
- $fn - parametr sterujący dokładnością rysowania kształtu
Poniżej można zobaczyć przykładowe łożysko wygenerowane tym skryptem.