This commit is contained in:
breitenbach76 2026-06-09 12:24:01 +02:00
parent 1eb215c52e
commit a504511ba4
4 changed files with 33 additions and 29 deletions

View file

@ -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'