OneKiwiTech / kicad-length-matching

Track Length Calculator
MIT License
22 stars 6 forks source link

`0.1.2` issues #2

Closed eeintech closed 2 years ago

eeintech commented 2 years ago

Installed from KiCad PCM.

Issue 1 - Displayed version

Version installed was 0.1.2 but pluging window version shows 0.1.1

image

image

Issue 2 - Net classes not loading

I have set net classes in board settings: image

And my board has no DRC errors: image

But the pluging does not load tracks after clicking "Load Setting" button: image

What am I missing? Thanks!

eeintech commented 2 years ago

Actually, I have tried other projects and settings are loaded.

Please let me know how to debug the project that has issue, thanks!

thanhduongvs commented 2 years ago
  1. you can debug by function:
    import logging
    logging.debug("mesg")
  2. you can view long in file debug.log Screenshot from 2022-08-05 20-45-45
  3. If you can share your project. I will debug your project. then I improve my plugin
thanhduongvs commented 2 years ago

Nets has 1 pad connected => Error. please check your schematic. It is bug my plugin.

eeintech commented 2 years ago
  1. you can debug by function:
import logging
logging.debug("mesg")
  1. you can view long in file debug.log Screenshot from 2022-08-05 20-45-45
  2. If you can share your project. I will debug your project. then I improve my plugin

This is the trace I'm getting:

Traceback (most recent call last):
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/controller/controller.py", line 36, in OnLoadClick
    self.model.compare_data()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/model/model.py", line 95, in compare_data
    self.init_data()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/model/model.py", line 82, in init_data
    ref2 = pads[1].reference
IndexError: list index out of range
debug.log
------------
08-05 10:27:43 root 1:mesg
08-05 10:27:43 root 1:mesg
08-05 10:27:43 root 1:mesg
08-05 10:27:43 root 1:mesg

Sorry cannot share my project :confused:

thanhduongvs commented 2 years ago

@eeintech Please update version 2022.08.06 Screenshot from 2022-08-05 21-50-13

thanhduongvs commented 2 years ago

Error msg in bottom Screenshot from 2022-08-05 21-52-36

eeintech commented 2 years ago

Thanks @thanhduongvs I do have nets that are connected to a single pad, can your plugin handle those?

eeintech commented 2 years ago

@thanhduongvs I corrected some single pad nets and now I have a new error:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pcbnew.py", line 836, in <lambda>
    __setattr__ = lambda self, name, value: _swig_setattr(self, wxPoint, name, value)
  File "/usr/lib/python3/dist-packages/pcbnew.py", line 71, in _swig_setattr
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)
  File "/usr/lib/python3/dist-packages/pcbnew.py", line 52, in _swig_setattr_nondynamic
    if (name == "thisown"):
RecursionError: maximum recursion depth exceeded in comparison

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/controller/controller.py", line 40, in OnLoadClick
    self.model.get_track_length()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/model/model.py", line 142, in get_track_length
    info = track_data.find_min_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/lengthtrack.py", line 68, in find_min_track
    return findtrack.get_min_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 396, in get_min_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  [Previous line repeated 27 more times]
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 308, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  [Previous line repeated 21 more times]
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 308, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  [Previous line repeated 6 more times]
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 308, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  [Previous line repeated 12 more times]
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 308, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  [Previous line repeated 12 more times]
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 308, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 301, in find_next_track
    self.find_next_track()
  [Previous line repeated 886 more times]
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 299, in find_next_track
    self.check_track()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 272, in check_track
    self.find_hole_pad()
  File "/home/francois/.local/share/kicad/6.0/3rdparty/plugins/vn_onekiwi_kicad-length-matching/onekiwi/kicad/findtrack.py", line 251, in find_hole_pad
    if pad.GetPosition() == current_point:
  File "/usr/lib/python3/dist-packages/pcbnew.py", line 13573, in GetPosition
    return _pcbnew.PAD_GetPosition(self)
SystemError: <built-in function PAD_GetPosition> returned a result with an error set
thanhduongvs commented 2 years ago

It is a bug from layout. Maybe, It loop infinity in this function:

def find_hole_pad(self):
    self.find.temps.clear()
    current_point = self.find.current_point
    current_layer = self.find.current_layer
    for pad in self.hole_pads:
        if pad.GetPosition() == current_point:
            self.status = 'run'
            index_data = self.data.index
            self.data.items[index_data].holes.append(Hole('pad', current_layer))
            self.find.hole_index = len(self.data.items[index_data].holes) - 1
            self.find.is_hole = True
            self.find.current_layer = ANY_LAYER
eeintech commented 2 years ago

It is a bug from layout

What do you mean?

thanhduongvs commented 2 years ago

It is a bug from layout

What do you mean?

Maybe, It is a bug from read track in my plugin

eeintech commented 2 years ago

Ok do you have any idea how to fix it?

thanhduongvs commented 2 years ago

If you can share your project (or minimum not working). Maybe, I find bug then fix it

eeintech commented 2 years ago

Sorry I didn't respond, I don't think it is worth looking more into and unfortunately I cannot share my design. Keep up the great work!