.
This commit is contained in:
parent
96b86ce340
commit
f6db2a86af
9 changed files with 15793 additions and 81 deletions
5220
01_3D-Druck/Puck_Entscheidung_ohne_Text.ai
Normal file
5220
01_3D-Druck/Puck_Entscheidung_ohne_Text.ai
Normal file
File diff suppressed because one or more lines are too long
36
01_3D-Druck/Puck_Entscheidung_ohne_Text.svg
Normal file
36
01_3D-Druck/Puck_Entscheidung_ohne_Text.svg
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" width="200mm" height="200mm" viewBox="0 0 566.93 566.93">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #c1272d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2, .cls-3 {
|
||||||
|
fill: #ed1c24;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
stroke: #c1272d;
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
stroke-width: 5.67px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<path class="cls-1" d="M283.54,17.01c35.61,0,70.19,6.92,102.78,20.58,31.52,13.21,59.89,32.13,84.32,56.25,24.45,24.13,43.75,52.26,57.36,83.62,14.09,32.46,21.46,67.01,21.9,102.71.45,35.98-6.17,70.95-19.65,103.96-13.03,31.89-31.89,60.62-56.06,85.4-24.17,24.78-52.43,44.34-83.99,58.15-32.66,14.3-67.47,21.77-103.44,22.21-1.12.01-2.25.02-3.37.02-35.62,0-70.2-6.92-102.79-20.58-31.52-13.2-59.89-32.13-84.32-56.24-24.45-24.13-43.74-52.26-57.36-83.62-14.09-32.46-21.46-67.02-21.9-102.72-.45-35.98,6.17-70.95,19.65-103.96,13.03-31.89,31.89-60.62,56.06-85.4,24.17-24.78,52.43-44.34,83.99-58.15,32.66-14.3,67.47-21.77,103.44-22.21,1.12-.01,2.25-.02,3.37-.02h0M283.54,0c-1.19,0-2.39,0-3.58.02C123.42,1.96-1.92,130.43.02,286.97c1.92,155.35,128.45,279.96,283.37,279.96,1.19,0,2.39,0,3.58-.02,156.54-1.94,281.87-130.41,279.93-286.95C564.99,124.61,438.45,0,283.54,0h0Z"/>
|
||||||
|
<circle class="cls-2" cx="283.47" cy="283.47" r="269.29"/>
|
||||||
|
<circle class="cls-1" cx="285.56" cy="496.02" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="400.08" cy="460.85" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="477.4" cy="369.35" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="492.98" cy="250.58" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="441.87" cy="142.23" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="336.84" cy="98.16" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="232.69" cy="98.16" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="120.55" cy="146.21" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="72.14" cy="255.79" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="90.65" cy="374.14" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="170.21" cy="463.69" r="45.35"/>
|
||||||
|
<circle class="cls-3" cx="284.52" cy="282.26" r="90.69" transform="translate(-3.47 3.54) rotate(-.71)"/>
|
||||||
|
<circle class="cls-1" cx="283.47" cy="283.47" r="70.87"/>
|
||||||
|
<polygon class="cls-1" points="379.15 42.79 180.79 44.93 180.72 39.99 379.08 37.85 379.15 42.79"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
5206
01_3D-Druck/Puck_mit_Text.ai
Normal file
5206
01_3D-Druck/Puck_mit_Text.ai
Normal file
File diff suppressed because one or more lines are too long
5215
01_3D-Druck/Puck_ohne_Text.ai
Normal file
5215
01_3D-Druck/Puck_ohne_Text.ai
Normal file
File diff suppressed because one or more lines are too long
48
01_3D-Druck/Puck_ohne_Text.svg
Normal file
48
01_3D-Druck/Puck_ohne_Text.svg
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" width="200mm" height="200mm" viewBox="0 0 566.93 566.93">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #0071bc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2, .cls-3 {
|
||||||
|
fill: #3fa9f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
stroke-width: 5.67px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3, .cls-4 {
|
||||||
|
stroke: #0071bc;
|
||||||
|
stroke-miterlimit: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-4 {
|
||||||
|
fill: #2e3192;
|
||||||
|
stroke-width: 5.67px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<path class="cls-1" d="M283.54,17.01c35.61,0,70.19,6.92,102.78,20.58,31.52,13.21,59.89,32.13,84.32,56.25,24.45,24.13,43.75,52.26,57.36,83.62,14.09,32.46,21.46,67.01,21.9,102.71.45,35.98-6.17,70.95-19.65,103.96-13.03,31.89-31.89,60.62-56.06,85.4-24.17,24.78-52.43,44.34-83.99,58.15-32.66,14.3-67.47,21.77-103.44,22.21-1.12.01-2.25.02-3.37.02-35.62,0-70.2-6.92-102.79-20.58-31.52-13.2-59.89-32.13-84.32-56.24-24.45-24.13-43.74-52.26-57.36-83.62-14.09-32.46-21.46-67.02-21.9-102.72-.45-35.98,6.17-70.95,19.65-103.96,13.03-31.89,31.89-60.62,56.06-85.4,24.17-24.78,52.43-44.34,83.99-58.15,32.66-14.3,67.47-21.77,103.44-22.21,1.12-.01,2.25-.02,3.37-.02h0M283.54,0c-1.19,0-2.39,0-3.58.02C123.42,1.96-1.92,130.43.02,286.97c1.92,155.35,128.45,279.96,283.37,279.96,1.19,0,2.39,0,3.58-.02,156.54-1.94,281.87-130.41,279.93-286.95C564.99,124.61,438.45,0,283.54,0h0Z"/>
|
||||||
|
<circle class="cls-2" cx="283.47" cy="283.47" r="269.29"/>
|
||||||
|
<circle class="cls-1" cx="285.56" cy="496.02" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="400.08" cy="460.85" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="477.4" cy="369.35" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="492.98" cy="250.58" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="441.87" cy="142.23" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="336.84" cy="98.16" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="232.69" cy="98.16" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="120.55" cy="146.21" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="72.14" cy="255.79" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="90.65" cy="374.14" r="45.35"/>
|
||||||
|
<circle class="cls-1" cx="170.21" cy="463.69" r="45.35"/>
|
||||||
|
<line class="cls-4" x1="282.93" y1="283.43" x2="211.45" y2="543.78"/>
|
||||||
|
<line class="cls-4" x1="282.93" y1="283.43" x2="361.2" y2="541.93"/>
|
||||||
|
<line class="cls-4" x1="285.47" y1="283.43" x2="428.79" y2="57.03"/>
|
||||||
|
<line class="cls-4" x1="284.52" y1="285.05" x2="134.45" y2="58.19"/>
|
||||||
|
<circle class="cls-3" cx="284.52" cy="282.26" r="90.69" transform="translate(-3.47 3.54) rotate(-.71)"/>
|
||||||
|
<circle class="cls-1" cx="283.47" cy="283.47" r="70.87"/>
|
||||||
|
<rect class="cls-1" x="180.72" y="38.56" width="198.43" height="5.67" transform="translate(-.49 3.47) rotate(-.71)"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
|
|
@ -22,10 +22,10 @@ PHASE_NAME, PHASE_COLOR = "DESIGN", (0.184, 0.502, 0.788, 1) # #2f80c9
|
||||||
# B+ : symmetrisches 90°-Kreuz (Trennlinien bei 0/90/180/270), Sektoren in den
|
# B+ : symmetrisches 90°-Kreuz (Trennlinien bei 0/90/180/270), Sektoren in den
|
||||||
# Diagonalen, Sockel je Sektor gleichmaessig ueber den Sektor verteilt. Karte oben.
|
# Diagonalen, Sockel je Sektor gleichmaessig ueber den Sektor verteilt. Karte oben.
|
||||||
SECTORS = [
|
SECTORS = [
|
||||||
("RESPONSIBLE", 135, [98, 135, 172]),
|
("RESPONSIBLE", 135, [111, 135, 159]),
|
||||||
("ACCOUNTABLE", 45, [45]),
|
("ACCOUNTABLE", 45, [45]),
|
||||||
("CONSULTED", -45, [-8, -33, -57, -82]),
|
("CONSULTED", -45, [-9, -33, -57, -81]),
|
||||||
("INFORMED", -135, [-98, -172]),
|
("INFORMED", -135, [-120, -150]),
|
||||||
]
|
]
|
||||||
DIVIDERS = [0, 90, 180, 270]
|
DIVIDERS = [0, 90, 180, 270]
|
||||||
WORD_R = RING_R + SOCK_D/2 + 9 # Labels ausserhalb der Sockel
|
WORD_R = RING_R + SOCK_D/2 + 9 # Labels ausserhalb der Sockel
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1,021 KiB After Width: | Height: | Size: 1,021 KiB |
|
|
@ -1,107 +1,94 @@
|
||||||
// RACI-Konsolen-Board (rund, B+ symmetrisch) — SLC-Workshop Tabletop · mm
|
// RACI-Konsolen-Board (rund) — 1:1 aus Illustrator-Layout (Puck_ohne_Text.svg)
|
||||||
// Pendant zum Blender-Modell (../blender/raci-board.py). Gleiche Maße.
|
// SLC-Workshop Tabletop · mm. Geometrie exakt aus dem SVG (Maßstab 0,35278 mm/Unit,
|
||||||
// Rund Ø260, Mittelmulde Ø50 (Chip), 10 Sockel Ø32,8 in 4 gleich grossen 90°-Sektoren
|
// Mittelpunkt 283,47/283,47). Z-Maße laut Vorgabe. Ohne Text (separat ergaenzbar).
|
||||||
// (symmetrisches Kreuz, Trennlinien 0/90/180/270), R3·A1·C4·I2, Sockel je Sektor
|
|
||||||
// gleichmaessig verteilt; Phasenname (DESIGN) im Mulden-Boden; Card-Schlitz 70x5, tief.
|
|
||||||
|
|
||||||
/* [Board] */
|
/* [Board] */
|
||||||
board_r = 130; // Aussenradius (Ø260)
|
board_r = 100; // Aussenradius (Ø200)
|
||||||
base_h = 14;
|
base_h = 20; // Gesamthoehe
|
||||||
edge_cham = 2; // Fase obere Aussenkante
|
rim_flat = 95; // bis hier flache Oberseite (innere Flaeche Ø190)
|
||||||
|
rim_drop = 5; // Hoehenabfall an der Rundkante (rundgebogen, abfaellig)
|
||||||
|
edge_round= 4; // Verrundung der Aussenkante
|
||||||
|
|
||||||
/* [Mittelmulde / Chip] */
|
/* [Mittelmulde + Ring] */
|
||||||
chip_d = 50;
|
chip_d = 50; // Mittelmulde Ø50
|
||||||
chip_dep = 2.2;
|
chip_dep = 2.5;
|
||||||
notch_d = 14;
|
ring_mid = 32; // Ring um die Mitte: Mittelradius (Ø64)
|
||||||
|
ring_w = 2; // Ringbreite
|
||||||
|
ring_dep = 2.5;
|
||||||
|
|
||||||
/* [Sockel] — Figuren-Sockel Ø32 + Spiel */
|
/* [Sockel] — Ø32 aus SVG + 0,6 Spiel fuer Figuren-Sockel Ø32 */
|
||||||
sock_d = 32.8;
|
sock_d = 32.6;
|
||||||
sock_dep = 2.0;
|
sock_dep = 2.5;
|
||||||
sock_lead = 0.8;
|
sock_lead = 0.8;
|
||||||
ring_r = 88;
|
|
||||||
|
|
||||||
/* [Sektoren] — Name, Wort-Mittenwinkel, Sockelwinkel (Grad, 90=oben) */
|
/* [Trennlinien] graviert */
|
||||||
// 4 gleich grosse 90°-Sektoren in den Diagonalen; Trennlinien-Kreuz bei 0/90/180/270.
|
div_w = 2;
|
||||||
SEC = [
|
div_dep = 2.5;
|
||||||
["RESPONSIBLE", 135, [98, 135, 172]],
|
div_ri = 34; // Start ausserhalb des Rings
|
||||||
["ACCOUNTABLE", 45, [45]],
|
div_ro = 93; // Ende kurz vor Rand
|
||||||
["CONSULTED", -45, [-8, -33, -57, -82]],
|
|
||||||
["INFORMED", -135, [-98, -172]],
|
/* [Kartenschlitz] */
|
||||||
|
slot_cx = 0; slot_cy = 85.4; // Position (oben), aus SVG
|
||||||
|
slot_w = 70; slot_t = 5; slot_depth = 15;
|
||||||
|
|
||||||
|
$fn = 96;
|
||||||
|
|
||||||
|
// 11 Sockel-Mittelpunkte (mm, Mitte = 0/0, y nach oben), exakt aus dem SVG
|
||||||
|
SOCK = [
|
||||||
|
[ 0.74, -75.00], [ 41.14, -62.58], [ 68.42, -30.30], [ 73.92, 11.60],
|
||||||
|
[ 55.88, 49.83], [ 18.83, 65.37], [-17.91, 65.37], [-57.48, 48.42],
|
||||||
|
[-74.55, 9.76], [-68.02, -31.99], [-39.95, -63.58]
|
||||||
];
|
];
|
||||||
DIV = [0, 90, 180, 270];
|
// 4 Trennlinien-Winkel (Grad)
|
||||||
ridge_w = 2.6; ridge_dep = 1.4;
|
DIV = [-105.5, -73.3, 57.3, 123.5];
|
||||||
|
|
||||||
/* [Gravur] */
|
// --- Grundkoerper: rund, Oberkante rundgebogen abfallend -------------------
|
||||||
word_size = 6; word_dep = 0.9;
|
|
||||||
word_r = ring_r + sock_d/2 + 9;
|
|
||||||
design_size = 9; design_dep = 1.0;
|
|
||||||
|
|
||||||
/* [Action-Card-Halter] */
|
|
||||||
card_cy = 116; card_bw = 84; card_bd = 22; card_bh = 16;
|
|
||||||
slot_w = 70; slot_t = 5; slot_depth = 27; slot_tilt = 12;
|
|
||||||
|
|
||||||
$fn = 128;
|
|
||||||
|
|
||||||
// --- Grundkoerper (rund, Oberkante gefast) ---------------------------------
|
|
||||||
module board_blank() {
|
module board_blank() {
|
||||||
hull() {
|
rotate_extrude($fn = 240)
|
||||||
cylinder(r = board_r - edge_cham, h = base_h);
|
offset(r = edge_round) offset(delta = -edge_round)
|
||||||
cylinder(r = board_r, h = base_h - edge_cham);
|
polygon([[0,0], [board_r,0], [board_r, base_h - rim_drop],
|
||||||
}
|
[rim_flat, base_h], [0, base_h]]);
|
||||||
}
|
|
||||||
module card_block() {
|
|
||||||
translate([0, card_cy, (base_h + card_bh)/2])
|
|
||||||
cube([card_bw, card_bd, base_h + card_bh], center = true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Aussparungen ----------------------------------------------------------
|
// --- Aussparungen ----------------------------------------------------------
|
||||||
module chip_well() {
|
module chip_well() { translate([0,0,base_h-chip_dep]) cylinder(d=chip_d, h=chip_dep+0.1); }
|
||||||
translate([0, 0, base_h - chip_dep]) cylinder(d = chip_d, h = chip_dep + 0.1);
|
|
||||||
translate([0, -chip_d/2, base_h - chip_dep]) cylinder(d = notch_d, h = chip_dep + 0.1); // Greifkerbe
|
module well_ring() {
|
||||||
|
translate([0,0,base_h-ring_dep]) linear_extrude(ring_dep+0.1)
|
||||||
|
difference() { circle(r=ring_mid+ring_w/2); circle(r=ring_mid-ring_w/2); }
|
||||||
}
|
}
|
||||||
module figure_socket(a) {
|
|
||||||
x = ring_r*cos(a); y = ring_r*sin(a); z0 = base_h - sock_dep;
|
module socket(p) {
|
||||||
translate([x, y, z0]) {
|
translate([p[0], p[1], base_h-sock_dep]) {
|
||||||
cylinder(d = sock_d, h = sock_dep + 0.1);
|
cylinder(d=sock_d, h=sock_dep+0.1);
|
||||||
translate([0,0,sock_dep - sock_lead]) cylinder(d1 = sock_d, d2 = sock_d + 2*sock_lead, h = sock_lead + 0.1);
|
translate([0,0,sock_dep-sock_lead]) cylinder(d1=sock_d, d2=sock_d+2*sock_lead, h=sock_lead+0.1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module divider(a) { // flache Trennlinie (graviert)
|
|
||||||
di = chip_d/2 + 5; do = ring_r + sock_d/2 + 6; rmid = (di+do)/2;
|
module divider(a) {
|
||||||
translate([rmid*cos(a), rmid*sin(a), base_h - ridge_dep])
|
rmid = (div_ri+div_ro)/2; len = div_ro-div_ri;
|
||||||
rotate([0,0,a])
|
translate([rmid*cos(a), rmid*sin(a), base_h-div_dep])
|
||||||
linear_extrude(ridge_dep + 0.1) square([do-di, ridge_w], center = true);
|
rotate([0,0,a]) linear_extrude(div_dep+0.1) square([len, div_w], center=true);
|
||||||
}
|
}
|
||||||
module sector_label(txt, a) {
|
|
||||||
rot = (sin(a) >= 0) ? a - 90 : a + 90; // tangential, lesbar
|
module card_slot() {
|
||||||
translate([word_r*cos(a), word_r*sin(a), base_h - word_dep])
|
translate([slot_cx, slot_cy, base_h - slot_depth/2])
|
||||||
rotate([0,0,rot])
|
cube([slot_w, slot_t, slot_depth + 0.2], center=true);
|
||||||
linear_extrude(word_dep + 0.1) text(txt, size = word_size, halign="center", valign="center");
|
|
||||||
}
|
|
||||||
module design_label() { // im Mulden-Boden
|
|
||||||
translate([0, 0, base_h - chip_dep - design_dep])
|
|
||||||
linear_extrude(design_dep + 0.1) text("DESIGN", size = design_size, halign="center", valign="center");
|
|
||||||
}
|
|
||||||
module card_slot() { // oben offen, tief, leicht nach hinten geneigt
|
|
||||||
sb = base_h + card_bh - slot_depth; sh = slot_depth + 20;
|
|
||||||
translate([0, card_cy, sb + sh/2]) rotate([-slot_tilt, 0, 0])
|
|
||||||
cube([slot_w, slot_t, sh], center = true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- Zusammenbau -----------------------------------------------------------
|
// --- Zusammenbau -----------------------------------------------------------
|
||||||
module raci_board() {
|
module raci_board() {
|
||||||
difference() {
|
difference() {
|
||||||
union() { board_blank(); card_block(); }
|
board_blank();
|
||||||
chip_well();
|
chip_well();
|
||||||
for (s = SEC) for (a = s[2]) figure_socket(a);
|
well_ring();
|
||||||
|
for (p = SOCK) socket(p);
|
||||||
for (a = DIV) divider(a);
|
for (a = DIV) divider(a);
|
||||||
card_slot();
|
card_slot();
|
||||||
for (s = SEC) sector_label(s[0], s[1]);
|
|
||||||
design_label();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
raci_board();
|
raci_board();
|
||||||
|
|
||||||
echo(board_d = 2*board_r, base_h = base_h, chip = chip_d, sock = sock_d,
|
echo(board_d=2*board_r, base_h=base_h, chip=chip_d, ring_d=2*ring_mid,
|
||||||
ring_r = ring_r, sockets = 10, card_slot = [slot_w, slot_t, slot_depth]);
|
sockets=len(SOCK), sock_d=sock_d, slot=[slot_w, slot_t, slot_depth]);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue