app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Reference implementation of the KiCad bridge: multi-instance Python server, forward path via kicad-cli, reverse path via in-process plugin. Most complex of the three bundled bridges.
← Commit history
0.9.300: Tour 3D motion recalibrated: the orbit drags totalled about a third of the viewer width and turned the board nearly edge-on (KiCad's trackball is roughly 0.1 degree per pixel). Now ~30 degrees of tilt and ~40 of yaw for the isometric, then three gentle orbits with zoom, slower and smoother for the recording.
1 file changed
+11−5
handlers/demo_motion.py+11−5@@ -139,14 +139,20 @@ def choreograph(hwnd: int, kind: str, abort=None, log=None) -> dict: cx, cy, w, h = _canvas_center(hwnd) dx, dy = int(w * 0.10), int(h * 0.08) if kind == "3d":+ # Measured 2026-09-03 on a 3840 px wide viewer: four drags totalling+ # ~0.37 of the width turned the board nearly edge-on (KiCad's trackball+ # is roughly 0.1 degree per pixel). Isometric wants ~30 degrees of+ # tilt and ~40 of yaw, then gentle orbits that keep the board readable.+ tilt = int(h * 0.12)+ yaw = int(w * 0.03) plan = [ ("fit", lambda: key(VK_HOME)),- ("isometric", lambda: drag("left", cx, cy, cx - int(w * 0.09), cy - int(h * 0.11), steps=18)),- ("orbit-1", lambda: drag("left", cx, cy, cx + int(w * 0.10), cy, steps=22)),- ("zoom-in", lambda: wheel(3, cx, cy)),- ("orbit-2", lambda: drag("left", cx, cy, cx + int(w * 0.10), cy + int(h * 0.02), steps=22)),+ ("isometric", lambda: drag("left", cx, cy, cx - int(w * 0.035), cy - tilt, steps=28, dt=0.035)),+ ("orbit-1", lambda: drag("left", cx, cy, cx + yaw, cy, steps=30, dt=0.04)),+ ("zoom-in", lambda: wheel(2, cx, cy)),+ ("orbit-2", lambda: drag("left", cx, cy, cx + yaw, cy, steps=30, dt=0.04)), ("zoom-out", lambda: wheel(-2, cx, cy)),- ("orbit-3", lambda: drag("left", cx, cy, cx + int(w * 0.08), cy, steps=22)),+ ("orbit-3", lambda: drag("left", cx, cy, cx - yaw, cy, steps=30, dt=0.04)), ] else: plan = [