22 lines
1,000 B
OpenSCAD
22 lines
1,000 B
OpenSCAD
// Phasenmodell — gemeinsame Logik fuer die 5 Einzelteile (1:1 aus phasenmodell.svg).
|
|
// Jedes Teil = sein Segment-Umriss (extrudiert) MINUS die gesamte Text+Icon-Gravur.
|
|
// Nur was auf dem Segment liegt, schneidet -> kein Aufteilen der Schrift noetig.
|
|
// Aufruf: use <phasenmodell-common.scad> phase_part("seg_design.svg", "#2f80c9");
|
|
|
|
part_h = 5; // Teil-Dicke (flache Kachel)
|
|
text_dep = 1.2; // Gravurtiefe Text + Icons
|
|
$fn = 96;
|
|
|
|
// SVG-Doku ist 300 mm breit -> Mitte bei (150,150).
|
|
// offset()-Roundtrip raeumt die importierten Pfade auf. 0,1 mm noetig, weil die Icon-
|
|
// Pfade (Zahnrad etc.) Selbstueberschneidungen haben, die 0,02 mm nicht schliesst.
|
|
module svg2d(file) { translate([-150,-150]) offset(delta=0.1) offset(delta=-0.1) import(file); }
|
|
|
|
module phase_part(seg_svg, col) {
|
|
color(col)
|
|
difference() {
|
|
linear_extrude(part_h) svg2d(seg_svg);
|
|
translate([0,0,part_h-text_dep])
|
|
linear_extrude(text_dep+0.1) svg2d("pm_engrave.svg");
|
|
}
|
|
}
|