techmannih/nema34-mounted-stepper-controller
A 48 V USB‑C PD 3.1 EPR NEMA‑34 stepper controller PCB combining STM32/TMC5160 control, external MOSFET motor bridges, protected power and regenerative braking, USB data, telemetry, diagnostics, status LEDs, and buzzer alarms.
- Version
- 0.3.92
- License
- unset
- Stars
- 1
scripts/test-plane-escapes.py
#!/usr/bin/env python3
"""Prevent redundant ground fanouts when native connectivity returns base proxies."""
import importlib.util
from pathlib import Path
import unittest
import pcbnew
import wx
spec = importlib.util.spec_from_file_location(
"plane_escapes", Path(__file__).with_name("prepare-plane-escapes.py"))
escapes = importlib.util.module_from_spec(spec)
spec.loader.exec_module(escapes)
class PlaneConnectionTest(unittest.TestCase):
def setUp(self):
self.board = pcbnew.BOARD()
self.net = pcbnew.NETINFO_ITEM(self.board, "GND")
self.board.Add(self.net)
self.fp = pcbnew.FOOTPRINT(self.board)
self.pad = pcbnew.PAD(self.fp)
self.pad.SetAttribute(pcbnew.PAD_ATTRIB_SMD)
layers = pcbnew.LSET()
layers.AddLayer(pcbnew.F_Cu)
self.pad.SetLayerSet(layers)
self.pad.SetSize(escapes.vector((.8, .8)))
self.pad.SetNet(self.net)
self.fp.Add(self.pad)
self.board.Add(self.fp)
def test_isolated_smd_pad_requires_escape(self):
self.board.BuildConnectivity()
self.assertFalse(escapes.connected_to_through_copper(self.board, self.pad))
def test_existing_bypass_via_is_not_duplicated(self):
track = pcbnew.PCB_TRACK(self.board)
track.SetStart(escapes.vector((0, 0)))
track.SetEnd(escapes.vector((1, 0)))
track.SetLayer(pcbnew.F_Cu)
track.SetWidth(pcbnew.FromMM(.2))
track.SetNet(self.net)
self.board.Add(track)
via = pcbnew.PCB_VIA(self.board)
via.SetPosition(track.GetEnd())
via.SetWidth(pcbnew.FromMM(.6))
via.SetDrill(pcbnew.FromMM(.3))
via.SetLayerPair(pcbnew.F_Cu, pcbnew.B_Cu)
via.SetNet(self.net)
self.board.Add(via)
self.board.BuildConnectivity()
self.assertTrue(escapes.connected_to_through_copper(self.board, self.pad))
def test_plated_connector_pad_already_reaches_planes(self):
self.pad.SetAttribute(pcbnew.PAD_ATTRIB_PTH)
self.pad.SetLayerSet(pcbnew.LSET.AllCuMask())
self.pad.SetDrillSize(escapes.vector((.3, .3)))
self.board.BuildConnectivity()
self.assertTrue(escapes.connected_to_through_copper(self.board, self.pad))
if __name__ == "__main__":
app = wx.App(False)
unittest.main()