Code Monkey home page Code Monkey logo

freecad-pcb's People

Contributors

gandy92 avatar jimparis avatar luzpaz avatar marmni avatar michalfapso avatar realthunder avatar syres916 avatar worker247 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freecad-pcb's Issues

what is it..???

Sorry, but I didn't see any description of what this module can do ?? what is it's purpose ?

Pcb Wb not compatabile with Python 3.11.x and above for FreeCAD 0.21.2 and above

In simple terms the setstate function that has worked fine in Python up to 3.10.x nolonger works in 3.11.x and above therefore the core code of FreeCAD had to be updated see http://github.com/FreeCAD/FreeCAD/commit/fbe2fef

Example error taken from Sheetmetal Wb but applies to many parts of this workbench:

  File "/usr/lib/python3.11/json/encoder.py", line 180, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
<class 'TypeError'>: Object of type FeaturePython is not JSON serializable
17:04:02  PropertyPythonObject::toString(): failed for <class 'SheetMetalCmd.SMViewProviderFlat'>
17:04:02  pyException: Traceback (most recent call last):
  File "/usr/lib/python3.11/json/__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/encoder.py", line 200, in encode
    chunks = self.iterencode(o, _one_shot=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/json/encoder.py", line 258, in iterencode
    return _iterencode(o, 0)
           ^^^^^^^^^^^^^^^^^

The lines in question:

/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/util.py:957:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/elements.py:1319:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/elements.py:3407:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/selectable.py:1887:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/schema.py:4240:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/sql/base.py:614:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/util.py:665:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/state.py:472:    def __setstate__(self, state_dict):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/collections.py:760:    def __setstate__(self, d):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/events.py:507:         :class:`.InstanceState.__setstate__`, containing the state
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/strategy_options.py:514:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/orm/strategy_options.py:653:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/_collections.py:205:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/_collections.py:339:                # dict subclass (seems to ignore __setstate__?)
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/langhelpers.py:643:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/util/langhelpers.py:745:                "__setstate__",
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:187:(and also restore them on __setstate__)::
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:195:        def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:340:Below we define both a ``__getstate__`` and a ``__setstate__`` that package up
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:349:        def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:745:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:779:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/mutable.py:942:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/associationproxy.py:937:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/ext/associationproxy.py:987:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:27:    # __setstate__.
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:41:        obj.__setstate__(state)
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:143:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/engine/result.py:732:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/cextension/resultproxy.c:54:    tmp = PyObject_CallMethod((PyObject *)obj, "__setstate__", "O", state);
/home/username/.local/share/FreeCAD/Mod/pcb/sqlalchemy/cextension/resultproxy.c:64:            "__setstate__ for BaseRowProxy subclasses must set values "
/home/username/.local/share/FreeCAD/Mod/pcb/PCBboard.py:128:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBboard.py:268:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:137:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:299:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:387:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:664:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:1458:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:1536:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/PCBobjects.py:1598:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBexplode.py:542:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBexplode.py:612:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBannotations.py:440:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBannotations.py:864:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:413:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:439:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:555:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBassembly.py:603:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBglue.py:209:    def __setstate__(self, state):
/home/username/.local/share/FreeCAD/Mod/pcb/command/PCBglue.py:345:    def __setstate__(self, state):

Missing compatibility with FreeCAD Link Stage / Link Daily Editions (Supported FreeCAD versions: 0.18-0.19)

We cannot use this workbench with realthunder's LinkDaily/LinkStage editions. Upon loading, there's an invalid error that says:

PCB Workbench: Error. Incompatible FreeCAD version. Supported FreeCAD versions: 0.18-0.19.

This has been going on for over a year. realthunder's branch is mostly kept up-to-date with FreeCAD master, which is currently 0.20. But this was not working even with older 0.19 mainline in FreeCAD master.

This is the only Workbench that prevents itself from loading with an erroneous check for a version.

Suggestions:

  • Remove the version check. It's not needed.
  • Or, move the Error to a Warning instead, and allow the workbench to load anyways.

Errors in FreeCAD V0.19

I had hoped to use this workbench / program to input *.BRD's into FreeCAD, view them and export as *.STEP files. I had to upgrade FreeCAD to V0.19 before the Add-in Manager would show available workbenches. I then installed the PCB workbench. But the first time I tried to open an Eagle *.BRD, I received the following error messages. Is there anything I can do to fix this? Please keep it simple as I have ZERO programming experience.

14:33:41 Traceback (most recent call last):
File "", line 1, in
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\PCBbrd.py", line 40, in
from PCBconf import *
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\PCBconf.py", line 31, in
from PCBfunctions import getFromSettings_Color_1, getFromSettings_Color
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\PCBfunctions.py", line 43, in
from PCBdataBase import dataBase
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\PCBdataBase.py", line 36, in
from sqlalchemy.ext.declarative import declarative_base
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\sqlalchemy_init_.py", line 9, in
from .sql import (
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\sqlalchemy\sql_init_.py", line 8, in
from .expression import (
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\sqlalchemy\sql\expression.py", line 33, in
from .visitors import Visitable
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\sqlalchemy\sql\visitors.py", line 28, in
from .. import util
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\sqlalchemy\util_init_.py", line 8, in
from .compat import callable, cmp, reduce,
File "C:\Users\jimc\AppData\Roaming\FreeCAD\Mod\pcb\sqlalchemy\util\compat.py", line 172, in
time_func = time.clock
<class 'AttributeError'>: module 'time' has no attribute 'clock'

Create PCB does not work on 18.4

Hi,

maybe I'm stupid, but I cannot creat a new PCB with freecad 18.4 and last BCB-Adon.
Is there any tutorila or Howto?
I need at frist an PCB-Layot for a HF-Design that ist not possile to be done in KiCAD.

Best regards
Frank

KiCad to FreeCAD. Arcs are not displayed.

Добрый день!
При открытии файла xxx.kicad_pcb не отображаются дорожки-дуги. Дорожка в KiCad нарисована инструментом "Route tracks", затем дабавлена длина с помощью инструмента "Tune length of a single track".

Вот как нарисовано в KiCad:
Screenshot from 2023-12-28 10-22-11

Вот как открыл в FreeCAD:
Screenshot from 2023-12-28 10-22-34

Вот информация о версиях программ:

Screenshot from 2023-12-28 10-26-34
Screenshot from 2023-12-28 10-26-43

SEGV loading Eagle BRD file

OS: Linux OpenSUSE 15.2 64bit
FreeCAD version 0.19
FreeCAD-PCB installed from Add-on Manager

I try to load PCB file and I get SEGV signal. Why?
Before upgrade to 15.2 I had FreeCAD 0.16 perfectly working.

Thank you in advance for any help.

Program received signal SIGSEGV, Segmentation fault.
#0  /lib64/libc.so.6(+0x394a0) [0x7f3adb8124a0]
#1  /usr/lib64/libexpat.so.1(XML_SetHashSalt+0x1b) [0x7f3aca4e846b]
#2  /usr/lib64/python3.6/lib-dynload/pyexpat.cpython-36m-x86_64-linux-gnu.so(+0x472f) [0x7f3a212ee72f]
#3  /usr/lib64/libpython3.6m.so.1.0(_PyCFunction_FastCallDict+0x90) [0x7f3adda7ab00]
#4  /usr/lib64/libpython3.6m.so.1.0(_PyCFunction_FastCallKeywords+0x50) [0x7f3adda7aec0]
#5  /usr/lib64/libpython3.6m.so.1.0(+0x12a582) [0x7f3addaec582]
#6  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x262e) [0x7f3addaef29e]
#7  /usr/lib64/libpython3.6m.so.1.0(+0x12a18f) [0x7f3addaec18f]
#8  /usr/lib64/libpython3.6m.so.1.0(+0x12a465) [0x7f3addaec465]
#9  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3d75) [0x7f3addaf09e5]
#10  /usr/lib64/libpython3.6m.so.1.0(+0x12a18f) [0x7f3addaec18f]
#11  /usr/lib64/libpython3.6m.so.1.0(+0x12a465) [0x7f3addaec465]
#12  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3d75) [0x7f3addaf09e5]
#13  /usr/lib64/libpython3.6m.so.1.0(+0x12a18f) [0x7f3addaec18f]
#14  /usr/lib64/libpython3.6m.so.1.0(+0x12a465) [0x7f3addaec465]
#15  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3d75) [0x7f3addaf09e5]
#16  /usr/lib64/libpython3.6m.so.1.0(+0x129fe6) [0x7f3addaebfe6]
#17  /usr/lib64/libpython3.6m.so.1.0(+0x12a25f) [0x7f3addaec25f]
#18  /usr/lib64/libpython3.6m.so.1.0(+0x12a465) [0x7f3addaec465]
#19  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3d75) [0x7f3addaf09e5]
#20  /usr/lib64/libpython3.6m.so.1.0(+0x129fe6) [0x7f3addaebfe6]
#21  /usr/lib64/libpython3.6m.so.1.0(+0x12a25f) [0x7f3addaec25f]
#22  /usr/lib64/libpython3.6m.so.1.0(+0x12a465) [0x7f3addaec465]
#23  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3d75) [0x7f3addaf09e5]
#24  /usr/lib64/libpython3.6m.so.1.0(+0x12a18f) [0x7f3addaec18f]
#25  /usr/lib64/libpython3.6m.so.1.0(+0x12a465) [0x7f3addaec465]
#26  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3d75) [0x7f3addaf09e5]
#27  /usr/lib64/libpython3.6m.so.1.0(+0x12a18f) [0x7f3addaec18f]
#28  /usr/lib64/libpython3.6m.so.1.0(+0x12a465) [0x7f3addaec465]
#29  /usr/lib64/libpython3.6m.so.1.0(_PyEval_EvalFrameDefault+0x3d75) [0x7f3addaf09e5]
#30  /usr/lib64/libpython3.6m.so.1.0(+0x129fe6) [0x7f3addaebfe6]
#31  /usr/lib64/libpython3.6m.so.1.0(PyEval_EvalCode+0x23) [0x7f3addaec123]
#32  /usr/lib64/libpython3.6m.so.1.0(+0x153a70) [0x7f3addb15a70]
#33  /usr/lib64/libpython3.6m.so.1.0(PyRun_StringFlags+0x75) [0x7f3addb17555]
#34  0x7f3addf776d4 in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /usr/lib64/FreeCAD/lib/libFreeCADBase.so+0x64
#35  0x7f3adee698bc in Gui::Command::_runCommand(char const*, int, Gui::Command::DoCmd_Type, char const*) from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0x8c
#36  0x7f3adee69a8f in Gui::Command::_doCommand(char const*, int, Gui::Command::DoCmd_Type, char const*, ...) from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0xff
#37  0x7f3aded985ec in Gui::Application::open(char const*, char const*) from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0x18c
#38  0x7f3adee7581c in StdCmdOpen::activated(int) from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0x55c
#39  0x7f3adee6d896 in Gui::Command::invoke(int, Gui::Command::TriggerSource) from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0x2f6
#40  0x7f3adc45fe35 in QMetaObject::activate(QObject*, int, int, void**) from /usr/lib64/libQt5Core.so.5+0x835
#41  0x7f3add2af822 in QAction::triggered(bool) from /usr/lib64/libQt5Widgets.so.5+0x42
#42  0x7f3add2b1e3c in QAction::activate(QAction::ActionEvent) from /usr/lib64/libQt5Widgets.so.5+0xcc
#43  /usr/lib64/libQt5Widgets.so.5(+0x30e03c) [0x7f3add42803c]
#44  /usr/lib64/libQt5Widgets.so.5(+0x31563b) [0x7f3add42f63b]
#45  0x7f3add4304b3 in QMenu::mouseReleaseEvent(QMouseEvent*) from /usr/lib64/libQt5Widgets.so.5+0x1b3
#46  0x7f3add2f6238 in QWidget::event(QEvent*) from /usr/lib64/libQt5Widgets.so.5+0x1c8
#47  0x7f3add43277b in QMenu::event(QEvent*) from /usr/lib64/libQt5Widgets.so.5+0xbb
#48  0x7f3add2b5f2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib64/libQt5Widgets.so.5+0x9c
#49  0x7f3add2be418 in QApplication::notify(QObject*, QEvent*) from /usr/lib64/libQt5Widgets.so.5+0x11c8
#50  0x7f3adee36978 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0x88
#51  0x7f3adc430328 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib64/libQt5Core.so.5+0x118
#52  0x7f3add2bca0f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) from /usr/lib64/libQt5Widgets.so.5+0x1df
#53  /usr/lib64/libQt5Widgets.so.5(+0x1f75f4) [0x7f3add3115f4]
#54  /usr/lib64/libQt5Widgets.so.5(+0x1f9d6a) [0x7f3add313d6a]
#55  0x7f3add2b5f2c in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib64/libQt5Widgets.so.5+0x9c
#56  0x7f3add2bd540 in QApplication::notify(QObject*, QEvent*) from /usr/lib64/libQt5Widgets.so.5+0x2f0
#57  0x7f3adee36978 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0x88
#58  0x7f3adc430328 in QCoreApplication::notifyInternal2(QObject*, QEvent*) from /usr/lib64/libQt5Core.so.5+0x118
#59  0x7f3adca37465 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) from /usr/lib64/libQt5Gui.so.5+0x745
#60  0x7f3adca387b5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) from /usr/lib64/libQt5Gui.so.5+0x135
#61  0x7f3adca1223b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib64/libQt5Gui.so.5+0xbb
#62  /usr/lib64/libQt5XcbQpa.so.5(+0x721da) [0x7f3acd3581da]
#63  /usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x154) [0x7f3ad6848624]
#64  /usr/lib64/libglib-2.0.so.0(+0x529c0) [0x7f3ad68489c0]
#65  /usr/lib64/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7f3ad6848a4c]
#66  0x7f3adc48d3af in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib64/libQt5Core.so.5+0x5f
#67  0x7f3adc42e57a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib64/libQt5Core.so.5+0x13a
#68  0x7f3adc437780 in QCoreApplication::exec() from /usr/lib64/libQt5Core.so.5+0x90
#69  0x7f3adeda3ef1 in Gui::Application::runApplication() from /usr/lib64/FreeCAD/lib/libFreeCADGui.so+0x15f1
#70  /usr/lib64/FreeCAD/bin/FreeCAD(+0x38a4) [0x55ebf9a618a4]
#71  /lib64/libc.so.6(__libc_start_main+0xea) [0x7f3adb7fd34a]
#72  /usr/lib64/FreeCAD/bin/FreeCAD(+0x45aa) [0x55ebf9a625aa]

Error when uploading brd file

When I try to just upload a .brd file, the following error pops up:

no element found: line 1, column 11
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\Iklon\AppData\Roaming\FreeCAD\Mod\pcb\PCBbrd.py", line 72, in open
importBRD(filename, wersjaFormatu[0])
File "C:\Users\Iklon\AppData\Roaming\FreeCAD\Mod\pcb\PCBbrd.py", line 241, in importBRD
plytka = plytkaPCB.generate(doc, groupBRD, filename)
File "C:\Users\Iklon\AppData\Roaming\FreeCAD\Mod\pcb\formats\eagle.py", line 422, in generate
board = self.getPCB()
File "C:\Users\Iklon\AppData\Roaming\FreeCAD\Mod\pcb\formats\eagle.py", line 374, in getPCB
for j in self.getWires(self.libraries[i['library']][i['package']], 20, [i['x'], i['y']]):
<type 'exceptions.KeyError'>: ('rcl" library_urn="urn:adsk.eagle:library:334',)

File open error

Cannot open pcb file

19:33:38 Traceback (most recent call last):
File "", line 1, in
File "C:\Users\user\AppData\Roaming\FreeCAD\Mod\pcb\PCBbrd.py", line 63, in open
wersjaFormatu = wersjaFormatuF(filename)
File "C:\Users\user\AppData\Roaming\FreeCAD\Mod\pcb\PCBbrd.py", line 188, in wersjaFormatuF
projektBRD = builtins.open(filename, "r").read()
File "C:\Program Files\FreeCAD 0.19\bin\lib\encodings\cp1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
<class 'UnicodeDecodeError'>: 'charmap' codec can't decode byte 0x98 in position 3066: character maps to

OS: Windows 10 Version 2009
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24267 +148 (Git)
Build type: Release
Branch: Branch_0.19.4
Hash: 476ecf091941bead59b14e44afa6064d5a66afa3
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.3
Locale: English/United States (en_US)

The same error with 0.20.2

Board Edges not Creating

When using FreeCAD 0.18 build 16110 and FC_0.18 PY_3.6 the board edges are not importin from KiCAD.

error importing PCB to FreeCad "Traceback (most recent call last)"

When I try to open a pcb (no matter which one)
I get the following error:

Traceback (most recent call last): File "<string>", line 1, in <module> File "/Applications/FreeCAD.app/Contents/Resources/Mod/PCB/PCBbrd.py", line 70, in open importBRD(filename, wersjaFormatu[0]) File "/Applications/FreeCAD.app/Contents/Resources/Mod/PCB/PCBbrd.py", line 230, in importBRD plytkaPCB = mainPCB(wersjaFormatu, filename) File "/Applications/FreeCAD.app/Contents/Resources/Mod/PCB/formats/PCBmainForms.py", line 94, in __init__ self.wersjaFormatu = KiCadv4_PCB(filename, self) File "/Applications/FreeCAD.app/Contents/Resources/Mod/PCB/formats/kicad_v4.py", line 101, in __init__ KiCadv3_PCB.__init__(self, filename, parent) File "/Applications/FreeCAD.app/Contents/Resources/Mod/PCB/formats/kicad_v3.py", line 95, in __init__ self.dialogMAIN = dialogMAIN(self.fileName) File "/Applications/FreeCAD.app/Contents/Resources/Mod/PCB/formats/kicad_v3.py", line 57, in __init__ self.layersNames = self.getLayersNames() File "/Applications/FreeCAD.app/Contents/Resources/Mod/PCB/formats/kicad_v3.py", line 81, in getLayersNames dane[106] = {"name": softLayers[self.databaseType][106]["name"], "color": softLayers[self.databaseType][106]["color"]} <class 'KeyError'>: ('name',)

And I have to clue what it could be. Do someone knows where this comes from?

I'm working on OSX with this versions:

Importing Allegro ECAD files to Free CAD software

I am planning to use Free CAD software for importing PCB files. My electrical CAD team uses Allegro software for rooting and placement. My doubt here is after installing PCB workbench, can I import files to Free CAD software and convert them to step files? My electrical CAD team can provide board files in IDF(emn, emp) and allegro .brd file format.

hide >NAME and >VALUE on PCB

Hello,

Not sure that it is a bug but I found no way to hide in the model the display of NAME and VALUE of parts from the settings in the database with the last version of FreeCAD-PCB. The "display" setting set to False change nothing. The behaviour is the same with FC0.19 or 0.20.2 either on Windows or Linux
here below some screenshots
image
image
image

Thank in advance for your answer and also for this great workbench extension!!

Best regards

KiCAD file only imports traces

I came across this addon trying to use a CNC to make a PCB design but I'm having trouble importing a PCB from KiCAD to get started.

image

The screenshot above shows the PCB in KiCAD's 3D viewer. However when I import into FreeCAD all I get are the traces. No pads, no holes, no board:

image

I tried various combinations of import options, first select all then picking just layers I want, but nothing seems to help. I'm running KiCAD 6.0.9 and FreeCAD 0.20.2. KiCAD PCB file attached below in case there's something wrong with that:
Midfield Box V2.zip

Database not converted

Hello all,

Thanks for the FC0.18 branch unfortunately it seems that the database conversion failed (according to some post on sourceforge, I suppose there is one...) for me.
The created database.db file is empty. If I create a new component, all it's OK.

No specific error message in the report windows.

I tried "FreeCAD-PCB_database" without success.

Best regards,

OS: Windows 10
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.18.4 (GitTag)
Build type: Release
Branch: releases/FreeCAD-0-18
Hash: 980bf9060e28555fecd9e3462f68ca74007b70f8
Python version: 3.6.6
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.3.0
Locale: French/France (fr_FR)

Support for other PCB formats?

Hi

I think great idea for EDA software to 'outsource' 3D part to proper CAD tools. Even though there's rudimentary support for 3D viewing within Horizon EDA, have you considered supporting that program?

Feature Request - Dereference attributes

In an Eagle design, I can create global attributes
image

Then on the PCB, I can place some text, perhaps in the top document layer, that references the attribute.
image

This is basically the same as the Name and Value on a component - other than where in the .brd structure it is.
FreeCAD-PCB does not dereference the attribute, so the silk screen on the PCB looks like this:
image

In the .brd XML, here's the global attributes definition:

...
</libraries>
<attributes>
<attribute name="PRODUCT" value="Power Supply"/>
<attribute name="VERSION" value="0.1"/>
</attributes>
<variantdefs>
...

And actually upward in the file is the reference to these attributes:

...
<board>
<plain>
<wire x1="0" y1="0" x2="127" y2="0" width="0" layer="20"/>
<wire x1="127" y1="0" x2="127" y2="76" width="0" layer="20"/>
<wire x1="127" y1="76" x2="0" y2="76" width="0" layer="20"/>
<wire x1="0" y1="76" x2="0" y2="0" width="0" layer="20"/>
<hole x="5.6" y="5.6" drill="3.8"/>
<hole x="5.6" y="70.4" drill="3.8"/>
<hole x="121.4" y="70.4" drill="3.8"/>
<hole x="121.4" y="5.6" drill="3.8"/>
<text x="16.8" y="6.6" size="1.778" layer="21">&gt;PRODUCT</text>
<text x="16.7" y="3" size="1.778" layer="21">&gt;VERSION</text>
</plain>
<libraries>
...

Is this an easy enhancement?

I am competent in software, but have never authored Python, so I find it esaier to read than to write. I was browsing into eagle.py, and in my version, starting at line 149:

    def getPCB(self, borderObject):
        dane = self.getSection('plain')
        
        for i in self.getWires(dane, 20):

It looks like it could use an iterator like:

        for i in self.getTexts(dane, 20):

But from here I'm a bit out of my area of expertise, and I don't see a method for debugging other than FreeCAD.Console.PrintWarning, so I think it will take me some time to stumble up against a few dead-ends before I find a path forward.

missing module named PCBcheckFreeCADVersion

Hi, I wanted to test the FreeCAD-PCB-FC_0.18 version, but the message comes immediately:

`Traceback (most recent call last):
File "", line 120, in InitApplications
File "", line 176, in
ImportError: No module named PCBcheckFreeCADVersion

During initialization the error No module named PCBcheckFreeCADVersion occurred in F:\FreeCAD18\Mod\PCB\InitGui.py
Please look into the log file for further information

global name 'PCBcheckFreeCADVersion' is not defined
Traceback (most recent call last):
File "", line 115, in Initialize`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.