sparkfunx / buzzard Goto Github PK
View Code? Open in Web Editor NEWSoftware tools for EAGLE silkscreen generation
Software tools for EAGLE silkscreen generation
Hi there,
I just discovered this nifty little tool yesterday and have been having loads of fun creating my own libraries of labels with the Python script.
However, I've noticed that the kerning between the letters of labels produced with the Python script and FredokaOne font can often be greater than those produced using the github.io tool. Is there any way to adjust this?
Cheers,
Adam
P.S. I think it'd be great to have some real-world examples showing how to execute a command to produce multiple labels. This took a few minutes to figure out as it wasn't immediately clear to me. For example:
python3 buzzard.py -o 'lib' -s 0.08 -f FredokaOne '[GND]','[3V3]','(SCL)','(SDA)','>!CS!<'
python buzzard.py "(R)" -u 0.1 -o lib
works
python buzzard.py "(R)" -u 0.9 -o lib
fails
I'm not sure I even need subsampling but wanted to capture the error while I had it.
When making a text-only label that's negated by a bang, the bar doesn't render.
In the Python branch some users may find they don't have all the required dependencies. Listing these in 'requirements.txt' would make it easier.
Here is a (potentially incomplete) list of requirements that I had to manually install:
svgpathtools
svgelements
freetype-py
bezier
(error installing on mac)I cannot figure out how to run this from Fusion 360 on macOS. I can browse for Buzzard.py from settings tab, the path shows up just normal (i.e. "/Users/crazor/repos/Buzzard"), however, all path seperators get stripped and I get an "Error: Command failed." button next to the OK button when I try to create a label. The error message says python "UserscrazorreposBuzzardbuzzard.py" -o lib -f FredokaOne
I tried different ways to specify the path, like escaping the slashes like \/
, using\\
, //
but no dice.
When the label is saved would it be possible to save the label as the given text?
"(B-]" and "(B+]" both become "#B##" after being sanitized.
Making a note here to either vary the 'safe' characters or tweak Owen's new serializer (both tags, in this case, are getting the same serial number, which gives Eagle a hard time)
Hello!
I tried to copy folder Buzzard-master from git ad its folder contents to c:\Program Files\KiCad\share\kicad\scripting\plugins\ (there are other working well plugins), then refresh plugin list and reopen kicad
Nothing changes.
I dont see Buzzard plugin icon on pcbnew like on these tweet
https://twitter.com/i/status/1348957557503578113
2- In the other options we have <>,/ \ on right and left, pls add also ) ( for right and left
Errors, lots of Errors. seems d:\git\buzzard\ turns into d:gitbuzzard and d:\git\buzzard\ works but Error: Command failed. and the error box only shows part of the python "d:\git\buzzard\buzzard.py" -o lib -l 1 -f FredokaOne
Since Eagle only works on Windows why am I getting these errors?
not a need but would be nice to include a shebang at the top of the script. this would enable calling Buzzard like this:
./buzzard.py
instead of like this (as is currently required):
python buzzard.y
the shebang should take the form:
#!/usr/bin/env python3
according to stack overflow
Hi,
It seems the provided v1.0.1 release package isn't working as expected.
Even though that's not the case in the github source code, the makeLabelGUI.ulp
file in the downloaded package sometimes refers to python buzzard.py
and sometimes to buzzard.exe
.
The downloaded package doesn't contain the buzzard.py
file, only buzzard.exe
.
Calling buzzard.exe seems to always fail with AttributeError: function 'FTC_CMapCache_Lookup' not found
. See the attached screenshot for an example.
Regards,
Nicolas
When using end styles labels with islands have bridges like those seen in stencilmaking.
The bridges seem to appear at inconsistent locations. Probably an artifact of the rendering process that is actually harmless. Though I don't have a solution in mind I think one approach would be to try to identify sections that are disconnected and render them individually (thanks cpt. obvious). Identifying isolated sections sounds tricky though
["oops" is not intended to be a dig - it just has lots of islands]
i include Buzzard as a submodule in my hardware designs (it is convenient!). however after generating labels i need to discard some changes within the submodule (to keep my commits focused). these are just *.pyc
files which are automatically generated. i think we can add them to the .gitignore
without issue.
When running makeLabel in EAGLE, the tag shape characters ()[]/\><
can't be escaped with a \
when creating a plain text label.
For example, running the command run makeLabel "[0x12 \(Default\)]"
creates a flag label as expected:
Whereas running the command run makeLabel "0x12 \(Default\)"
does not create a plain text label as expected:
Love this CLI Buzzard! Now I can finally get rid of having a library file per session on the web GUI.
I'd like to be able to keep a single script that is meant to generate all required buzzard labels. Right now I don't see options that would make this easy... the output gets stored as 'output.lbr' in the repo root and (I presume) it gets overwritten.
Writing a script would be possible, but it might be simpler/easier to build the command list handling right into Buzzard. I propose something like:
python buzzard.py --collection "buzzard_labels_collection.txt" -o lib
buzzard_labels_collection.txt:
"label1" -s 0.06 -a tl
"default label"
"fancy label" -f fredoka -s 0.5
Added perk: changes to buzzard labels used in a design are now easily viewed in source control software!
So here's a thought that has been on my mind and I just want to record it (in case I forget or die)
Maintaining Buzzard labels alongside an Eagle design is getting pretty streamlined. You can maintain a collection of labels, generate them into a library, and keep that library as part of the design. There's something that would make this even nicer - if the label names did not change when you insert a label somewhere within the library.
If this were possible then one could use "Library->Update All" to "refresh" the labels all across the board.
Currently this does work as long as you don't change the order of labels in your collection. (Because Eagle uses the name with the appended serial number to identify the part within the library)
It may be possible to use some sort of hash on the text of the label to generate a unique name that can persist. Of course, this is not without challenges:
Out of initial ideas, might come back to this later.
Hello,
Thank you for you great work.
I am facing to an issue (for me). If my label have the same number of char, labels have not the same width.
Do you have any idea how to fix that ?
I try both fonts but same behaviour, it seems to be due to different width of each letter ?
Thank you so much for your advice.
Eli can't write a valid collections.txt in VIM. We suspect this has to do with the parser and line endings but we are still working to confirm.
Not an issue with this library, but I did a fresh install of my OS and decided to update to python 3.9. Many of the library dependencies are not yet updated to support 3.9 including the very first one Bezier. Bezier at least (the only one I checked) does not list compatibility with 3.9 so it's expected behavior. Perhaps a note should be added to the README?
๐
To duplicate:
run makelabel "GND"
This will generate a label in default size.
run makelabel -s 0.08 "GND"
This will generate a larger label. As soon as the larger label is generated, the original label is replaced/increased in size by the current GND text.
Both labels have the Footprint "GND0" from library "output" so I can see why Eagle is getting confused. It would be nice to add a partial hash to the end of each footprint name when it's generated to make it unique from similar text.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.