diff --git a/dev_schematics.py b/dev_schematics.py index 0b868702..c59f2153 100644 --- a/dev_schematics.py +++ b/dev_schematics.py @@ -64,7 +64,7 @@ def add_to_sys_path(path): with add_to_sys_path(root_dir / "examples"): - from mcu import App + from iterative_design_nand import App app = App() diff --git a/src/faebryk/exporters/schematic/kicad/transformer.py b/src/faebryk/exporters/schematic/kicad/transformer.py index 5e27be13..a47dfc4c 100644 --- a/src/faebryk/exporters/schematic/kicad/transformer.py +++ b/src/faebryk/exporters/schematic/kicad/transformer.py @@ -639,7 +639,13 @@ def _(obj: C_rect) -> BoundingBox | None: @get_bbox.register @staticmethod def _(obj: C_circle) -> BoundingBox: - radius = Geometry.distance_euclid(obj.center, obj.end) + if obj.radius is None: + radius = Geometry.distance_euclid(obj.center, obj.end) + elif obj.end is None: + radius = obj.radius + else: + raise ValueError("Circle has both radius and end") + return Geometry.bbox( (obj.center.x - radius, obj.center.y - radius), (obj.center.x + radius, obj.center.y + radius), diff --git a/src/faebryk/libs/kicad/fileformats_sch.py b/src/faebryk/libs/kicad/fileformats_sch.py index ca9c91f6..2edf6962 100644 --- a/src/faebryk/libs/kicad/fileformats_sch.py +++ b/src/faebryk/libs/kicad/fileformats_sch.py @@ -69,9 +69,10 @@ class E_type(SymEnum): @dataclass(kw_only=True) class C_circle: center: C_xy - end: C_xy stroke: C_stroke fill: C_fill + radius: Optional[float] = None + end: Optional[C_xy] = None @dataclass(kw_only=True)