Comments (9)
Could you please test again with the latest release.
from jlc-plugin-for-kicad.
I just installed the latest release and now BOM and position generation is broken when "exclude DNP.." is selected.
from jlc-plugin-for-kicad.
Can confirm the same on my machine and setup. No BOM or position files are being generated.
Win11
Kicad 8.1
Fabrication-Toolkit 4.30
from jlc-plugin-for-kicad.
Does some part get excluded or the entire files do not get generated?
Could you please test again with the 4.4.0 pre-release.
from jlc-plugin-for-kicad.
Unfortunately, I only get the following outputs on the 4.4 pre-release:
- gerber.zip
- netlist.ipc
- designators.csv
Just to check and be sure, I went back to 4.0 and there I still get the BOM output.
from jlc-plugin-for-kicad.
I traced the bug to here: #128
The added condition seems to misbehave, some more exploration needed.
from jlc-plugin-for-kicad.
@bennymeg
I traced the issue to the commit 88ae87b
skip_footprint = ((footprint.GetAttributes() & pcbnew.FP_EXCLUDE_FROM_POS_FILES)
or footprint.GetPadCount() == 0
or exclude_dnp
and (footprint_has_field(footprint, 'dnp')
or (footprint.GetValue().upper() == 'DNP')
or getattr(footprint, 'IsDNP', bool))
)
The issues I see:
getattr(footprint, 'IsDNP', bool)
is not called anymore. It wasgetattr(footprint, 'IsDNP', bool)()
but becamegetattr(footprint, 'IsDNP', bool)
and since it is a function reference and is notNone
- it evaluates toTrue
- not enough parentheses
How to fix:
skip_footprint = ((footprint.GetAttributes() & pcbnew.FP_EXCLUDE_FROM_POS_FILES)
or footprint.GetPadCount() == 0
or (exclude_dnp
and ((footprint_has_field(footprint, 'dnp')
or (footprint.GetValue().upper() == 'DNP')
or getattr(footprint, 'IsDNP', bool)())))
)
I've tested the fix on KiCAD v8.01 with the plugin 4.3.0 + fixes.
In the master branch the fix should look like below:
https://github.com/bennymeg/Fabrication-Toolkit/blob/master/plugins/process.py#L162
is_dnp = (footprint_has_field(footprint, 'dnp')
or (footprint.GetValue().upper() == 'DNP')
or getattr(footprint, 'IsDNP', bool)())
I.e. add parentheses to call the function returned by getattr()
from jlc-plugin-for-kicad.
Thank you @msalau, I'll fix it.
from jlc-plugin-for-kicad.
Fixed in v4.4.1
from jlc-plugin-for-kicad.
Related Issues (20)
- With version 4.2.0, production files are no longer created in their own subfolder named by date and time? HOT 1
- Output files do not follow JLCPCB recommendations HOT 1
- Kicad v8 & 4.2.0: No button on PCB view HOT 1
- No subfolder in production HOT 2
- Additional layers: can't select user-defined layers HOT 3
- Error on MacOS HOT 1
- KiCad 8.0.1 and Toolkit 4.2.0 no icon HOT 1
- User layers being exported into edge cuts gerber HOT 4
- feature: checkbox "exclude Through-Hole components"
- Copper layers are re-filled on export HOT 2
- Kicad V8, "index out of range HOT 2
- Compatibility on Mac 14.4.1, KiCad 8.0.1 & Fabrication Toolkit V4.3.0 HOT 2
- "JLCPCB Rotation Offset" is not working for positions.csv HOT 2
- Automatic Translation HOT 2
- BOM and position files are not created in V4.3.0 if checkbox is not pressed. HOT 1
- exclude component from bom only if labled "Exclude from bill of material" but not if "Exclude from board" HOT 4
- [Request] Use user-defined layer names in Additional Layers box
- BOM doesn't include the part that not on the board
- [Feature Request]: Add help for initial options HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jlc-plugin-for-kicad.