From a504511ba4ad22fda4eec21cf0ce244deb05f065 Mon Sep 17 00:00:00 2001 From: breitenbach76 Date: Tue, 9 Jun 2026 12:24:01 +0200 Subject: [PATCH] . --- 01_3D-Druck/blender/README.md | 10 ++--- .../__pycache__/raci-board.cpython-312.pyc | Bin 13632 -> 13727 bytes 01_3D-Druck/blender/nano-banana-prompts.md | 17 +++++---- 01_3D-Druck/blender/raci-board.py | 35 +++++++++--------- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/01_3D-Druck/blender/README.md b/01_3D-Druck/blender/README.md index 89af166..036516c 100644 --- a/01_3D-Druck/blender/README.md +++ b/01_3D-Druck/blender/README.md @@ -25,13 +25,13 @@ Er dient als **Maß-Referenz** und liefert per Render eine **saubere, neutrale V ## Spec (Maße — der „Vertrag", gilt in jedem Tool) | Element | Wert | |---|---| -| Board | **rund Ø180 × 12 mm**, Rand gefast | -| Chip-Mulde (Mitte) | Ø **40,6** × Tiefe **1,8** mm (+ Greifkerbe Ø12) — Acryl-Chip Ø40 × 2 mm | -| Figuren-Sockel | **10×** Ø **25,3** × Tiefe **1,5** mm (Sockel Ø24,5) | -| Sockel-Ring-Radius | 62 mm; 4 Sektoren über **Lücken** getrennt | +| Board | **rund Ø208 × 14 mm**, Rand gefast | +| Mittelmulde (Chip) | Ø **50** × Tiefe **2,2** mm (+ Greifkerbe Ø14) | +| Figuren-Sockel | **10×** Ø **32,8** × Tiefe **2,0** mm (Figuren-Sockel Ø32 + Spiel) | +| Sockel-Ring-Radius | 72 mm; 4 Sektoren über **Lücken** getrennt | | RACI-Verteilung | **R 3 · A 1 · C 4 · I 2** (= 10) | | Labels | RESPONSIBLE/ACCOUNTABLE/CONSULTED/INFORMED **gleich groß**; Phasenname (z. B. **DESIGN**) in der Chip-Mulde | -| Action-Card-Halter | Steh-Schlitz **63 × 4 mm**, ~12° nach hinten geneigt (Karte 60 × 90), oben | +| Action-Card-Halter | Steh-Schlitz **63 × 7 mm, 15 mm tief**, ~12° nach hinten geneigt (Karte 60 × 90), oben | | Druck | **6×** je Phasenfarbe (Design/Transition/Operation/Support/Review + Gate-Rot) | ## Ehrliche Einordnung diff --git a/01_3D-Druck/blender/__pycache__/raci-board.cpython-312.pyc b/01_3D-Druck/blender/__pycache__/raci-board.cpython-312.pyc index 2a722f78fc1dc3e58799769c58135ff632ff563d..31944a25c9ea704e847dea0f1d4be3f7e4faf4b9 100644 GIT binary patch delta 4446 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 AfB*mh delta 4365 zcma(UYfzlk_1^vV+eZjX2#+k`vB0wIZk9(9f(frc+z=BbY#xAN1FXQk;1aSVch|gX zCDUfq>11r;)i&BXO>1kNlCfH<8H$pdUR|zK$&Ff~l~FJFsA6T@qo|ZH z5BT=6a)8zBK2~voM*VDyd~RL8?BAj@w(k)a1@GIpRsOOTElAiTEOVUeR7?)pbM%3WYQB*dvpNW|kkyZAGuDig zXoKN?HM1pIL>a_%$28s$+onR}WMTqu0-Z!SJ*DX8&Ng4$qV!eycmu0kQBptG*w%A! z7olhnG;7EdmTf~CM7dc0=njZ7z!9QG<1&pqP{Ybg**5uCYpITX+acHLMOjVJ=4h>v zoKf3*S4**31*rCD3vXfDj_oEySlIT215P`RS&UOtf-(|q1&f=&M-yLX+FrG9&GIdM zsc+L?$-B|F))^=SE=n$5wBk)gf7!f%ks_eN-i$jmGLPra*ijN?Sql%vnldMlg7zpJ zcRA>`XIe$ShBu9l$QNy;Ijt&hiW=vQhJFK~Jn71-W^IZc4YSQW9D}lC76jGFc3vPn zJaN%bdQ2X$`}_Cuy&}L}eDB2LO48g}JBA&*TTxiYm&ol}DaS+01Eb%SpW92d6*S*d z%BH#Vu!@}$Cnona##!-wQ$k_Uh!cz4$?k-FBJz^6fG*GJAU`MqEX)tCnv>CzWjXEs z5;>z~rrgTc6a0ya#oSpZ+jH$Mb0o37Du=~3LbE)1*@u0kLeGJWA1G8atYNqdfj;1f5dEamZpjEn2gacf0~`&`GILgVZ0Ke9x!8s$5q8* zywaqcrC!2!RuQqym^;fpBy<{{cZn^Lg#z*km$wMTtd#VVOWMT;Pm?oRKRIov%j>QU z*~qPc;n$~%o3m8hMH_`V-Y`n#N4XJ5Kj&s3{e;mdKguuBi=GU2nlASNdV7|In8t!k zSs-AH-Rw3{eiOfYZJ>(FXm6ORA)*-tKhs{98>7SKU=&@yf~I^WlE6Ony{1UiD2 zn`6fMXZr$vBSGk$w_$bd?#Li-|EFE7U^Hd43HiJ|V~<4Sv2`ueFQB%zfCF2=H)R`)N};34D)~Hg4ve1q4bfJ$H%V!E(JQd(Ki4l~Si%QtiS)-GDSj3W} zJi*1b*;|D_qtqdPc)CPbU$EqCKuL&-Y&zz7#%xua-=Hp=f6y)u0h zBye>Et!bMWX7LA-X`S&Csr$taAg3LtxJboEc`|4d8N)yoMmY;li1_h%Dt?N`M$b;h z6O4=4Fk_+>CD3!wDlqIcyEoi zoSFprw6pWfD1;NAN@V=E%H5?E6+skn9iL+Hu{gRtabogp+L{#8&xmX+@5a zvwdW03QCm_qw4dWpwi&veLr%lc zg-7JosxJcffP}~g5Tu#J_1^A%k?sXdL15Mk0mRnH*L?+B1h#oR^TPkqKHgxgiVo2U zvD;vp9HY{6&QR2d|Uq5 z@Ap3i{Gj#b$+k6re)hzt?cy0!G625Y@u#1{^{;mMcYo3PCy<9NSR~U9SrBMgp9BgF zlfS_h|KJOF`z{#`Jn5)LvPG20TLBL(ksE?L*Y8KtROVJ1E!ZH(gP-5)JlqxOiS_L3 z>Jeu^LU;kBt$RBUbqcqEPE5rUY5U=xu2`hECv88_eHS8P8inzn6A?zxg}`X%NyHwJ zZ)~dCbR1B)ZlG^XPEMu7*O6sj&o+Y%uTl)jjUjJ|aS_%e?;mD7Ha0n&%Djy_RO*xc zp(C_a{vuRMx66-1ZS<5ZtLdyOK@&FUdmP5f!zdX-%9IdXP>Qom2UXQTH;vy=$=b^uH1Pw_v&5GAG%(?`91rV*~|61KAnBX z(MIz7VE(`sa@}4yxRqQl+vOf;Bk$g^XA7L(_va2e$@@F%0sqkIA99fo8})%Y?Zf7( z0gvTI83p`?M<4L(H>xa%S5w6O8sfDEcZ)vItlem$2;1~Qn>J_Bz}lQn0iT|;83(66 zSg*~watF&Ta~_I#xjq=s=X@5#{S@(lhIq)3uQO!o4ScIUl%>sWcMjRKc^l&ME **Meshy-Multi-View:** Erzeuge dasselbe Objekt in **Top-down + Seite + Untersicht** (+ optional Hero), +> identischer Maßstab/Hintergrund → das gibt Meshy die beste 3D-Rekonstruktion. --- diff --git a/01_3D-Druck/blender/raci-board.py b/01_3D-Druck/blender/raci-board.py index 140da0b..f2728d8 100644 --- a/01_3D-Druck/blender/raci-board.py +++ b/01_3D-Druck/blender/raci-board.py @@ -7,30 +7,30 @@ import bpy, math, os # ----------------------------- Parameter (mm) ----------------------------- -R_BOARD, BASE_H = 90.0, 12.0 -EDGE_BEVEL, EDGE_SEG = 1.4, 3 +R_BOARD, BASE_H = 104.0, 14.0 +EDGE_BEVEL, EDGE_SEG = 1.6, 3 -CHIP_D, CHIP_DEP = 40.6, 1.8 # Acryl-Chip Ø40 x 2 mm -NOTCH_D = 12.0 -SOCK_D, SOCK_DEP = 25.3, 1.5 # Figuren-Sockel Ø24,5 -RING_R = 62.0 +CHIP_D, CHIP_DEP = 50.0, 2.2 # Mittelmulde Ø50 (Chip) +NOTCH_D = 14.0 +SOCK_D, SOCK_DEP = 32.8, 2.0 # Figuren-Sockel Ø32 + 0,8 Spiel +RING_R = 72.0 PHASE_NAME, PHASE_COLOR = "DESIGN", (0.184, 0.502, 0.788, 1) # #2f80c9 # Sektor: Name, Label-Mittenwinkel, Sockel-Winkel (Grad; 90=oben, Top frei fuer Karte). # Lücken zwischen den Sektoren (34-36°) > Lücken innerhalb (28°) -> Gruppen klar sichtbar. SECTORS = [ - ("RESPONSIBLE", 174, [146, 174, 202]), - ("ACCOUNTABLE", 58, [58]), - ("CONSULTED", -20, [22, -6, -34, -62]), - ("INFORMED", -110, [-96, -124]), + ("RESPONSIBLE", 150, [118, 150, 182]), + ("ACCOUNTABLE", 66, [66]), + ("CONSULTED", -34, [30, -2, -34, -66]), + ("INFORMED", -118, [-102, -134]), ] -WORD_R = RING_R + SOCK_D/2 + 8 # Labels ausserhalb der Sockel +WORD_R = RING_R + SOCK_D/2 + 9 # Labels ausserhalb der Sockel WORD_SIZE, WORD_DEP = 6.0, 0.9 -DESIGN_SIZE, DESIGN_DEP, DESIGN_POS = 9.0, 1.0, (0, -32) +DESIGN_SIZE, DESIGN_DEP, DESIGN_POS = 9.0, 1.0, (0, -44) -CARD_CY, CARD_BW, CARD_BD, CARD_BH = 72.0, 76.0, 18.0, 14.0 -SLOT_W, SLOT_T, SLOT_TILT = 63.0, 4.0, 12.0 +CARD_CY, CARD_BW, CARD_BD, CARD_BH = 82.0, 72.0, 20.0, 16.0 +SLOT_W, SLOT_T, SLOT_DEPTH, SLOT_TILT = 63.0, 7.0, 15.0, 12.0 TOP = BASE_H @@ -101,8 +101,9 @@ for _, _, angles in SECTORS: boolean(base, cyl(SOCK_D, 6, (RING_R*math.cos(math.radians(a)), RING_R*math.sin(math.radians(a)), TOP - SOCK_DEP + 3)), 'DIFFERENCE') -# Action-Card-Schlitz (oben offen, leicht nach hinten geneigt) -slot = cube(SLOT_W, SLOT_T, 40, (0, CARD_CY, 22)) +# Action-Card-Schlitz (oben offen, 7 mm breit, 15 mm tief, leicht nach hinten geneigt) +_sb = BASE_H + CARD_BH - SLOT_DEPTH; _sh = SLOT_DEPTH + 20 +slot = cube(SLOT_W, SLOT_T, _sh, (0, CARD_CY, _sb + _sh/2)) slot.rotation_euler = (math.radians(-SLOT_TILT), 0, 0); bpy.ops.object.transform_apply(rotation=True) boolean(base, slot, 'DIFFERENCE') @@ -149,7 +150,7 @@ try: bpy.ops.object.light_add(type='AREA', location=(-140, -60, 180)) bpy.context.object.data.energy = 9000; bpy.context.object.data.size = 320 bpy.ops.object.empty_add(location=(0, 0, 5)); tgt = bpy.context.object - bpy.ops.object.camera_add(location=(235, -295, 270)); cam = bpy.context.object + bpy.ops.object.camera_add(location=(275, -345, 310)); cam = bpy.context.object cam.data.lens = 50 con = cam.constraints.new('TRACK_TO'); con.target = tgt con.track_axis = 'TRACK_NEGATIVE_Z'; con.up_axis = 'UP_Y'