-
Notifications
You must be signed in to change notification settings - Fork 150
Open
Labels
Description
I attempted to generate a KiCAD5 schematic to later import it into KiCAD9.
(Netlist and SVG generation works just fine.)
The culprit seems to be a Part class that doesn't have a Part.draw attribute anymore:
KICAD9_SYMBOL_DIR="/usr/share/kicad/symbols" python main.py
WARNING: KICAD6_SYMBOL_DIR environment variable is missing, so the default KiCad symbol libraries won't be searched. @ [/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap_external>:999=>/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap>:488]
WARNING: KICAD_SYMBOL_DIR environment variable is missing, so the default KiCad symbol libraries won't be searched. @ [/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap_external>:999=>/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap>:488]
WARNING: KICAD8_SYMBOL_DIR environment variable is missing, so the default KiCad symbol libraries won't be searched. @ [/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap_external>:999=>/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap>:488]
WARNING: KICAD7_SYMBOL_DIR environment variable is missing, so the default KiCad symbol libraries won't be searched. @ [/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap_external>:999=>/home/user/code/3rdparty/skidl/pi-digital-io/<frozen importlib._bootstrap>:488]
Traceback (most recent call last):
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/skidlbaseobj.py", line 63, in __getattr__
return self.__getattribute__("fields")[key]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
KeyError: 'draw'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/user/code/3rdparty/skidl/pi-digital-io/main.py", line 116, in <module>
generate_schematic(tool="kicad5")
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/circuit.py", line 1318, in generate_schematic
tool_modules[tool].gen_schematic(self, **kwargs)
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/tools/kicad5/gen_schematic.py", line 723, in gen_schematic
preprocess_circuit(circuit, **options)
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/tools/kicad5/gen_schematic.py", line 666, in preprocess_circuit
calc_part_bbox(part)
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/tools/kicad5/gen_schematic.py", line 631, in calc_part_bbox
bare_bboxes = calc_symbol_bbox(part)[1:]
^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/tools/kicad5/bboxes.py", line 113, in calc_symbol_bbox
for obj in part.draw:
^^^^^^^^^
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/part.py", line 612, in __getattr__
return SkidlBaseObject.__getattr__(self, attr)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/code/3rdparty/skidl/skidl/src/skidl/skidlbaseobj.py", line 65, in __getattr__
raise AttributeError
AttributeError
Source:
if __name__ == "__main__":
... your circuit ...
generate_schematic(tool="kicad5")
- gentoo
- Python 3.12.11
- SKiDL master branch at 48da23
PS: Thank you so much for all your work on this awesome project!