element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Autodesk EAGLE
  • Products
  • More
Autodesk EAGLE
EAGLE User Chat (English) Invite testing of hershey-text.ulp
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Autodesk EAGLE to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 12 replies
  • Subscribers 179 subscribers
  • Views 1542 views
  • Users 0 members are here
Related

Invite testing of hershey-text.ulp

autodeskguest
autodeskguest over 11 years ago

Hello,

 

TL;DR: I invite you to help me improve a ULP to render Hershey fonts for

PCBs in EAGLE.  See the ULP downloads section of the Cadsoft website or:

http://www.avon-tech-solutions.co.nz/hershey.html or

https://github.com/nallison/hershey-text-eagle

GROUP the text to render then RUN hershey-text.ulp

 

 

Longer story.

 

Many will recall various threads on how some of us would like "pretty

text" on our pcb "artworks" rather than just using the default vector

font.  For example:

"EAGLE 6 vector font (was: Teaser peek at Version 6 XML Format)",

15-Sep-2011, eagle.userchat.eng

"Addition of a new standardized font", 18-Jan-2012, user.suggest.eng

 

Having used "other" CAD applications that produced more visually

appealing fonts in the silkscreen, I've always wanted to develop a

"Pretty Text" ULP for my pcb design work.  A few weeks ago I discovered

an Inkscape extension that uses Hershey fonts for engraving.  I already

knew about the copy-text-as-wire.ulp and I thought it would be possible

to combine these approaches for EAGLE.

 

So, I've written hershey-text.ulp to render text in Hershey fonts using

wires.  My goal was to convert smashed reference designators (tNames) or

text on any copper, stop, milling or silkscreen layer into any Hershey

font.  I wanted to be able to adjust the slope and stroke (wire) width.

  Rather than render text directly on the layer, the default ULP options

"automagically" make a package of the wires comprising the Hershey font

and then add it to the board at the text insertion point.  Of course,

directly rendering it in the board is possible.

 

I've modified a copy of the futural.jhf simplex font to produce

eagles.jhf that also includes some characters from the extend ascii

range present in the EAGLE fonts: 169 copyright, 176 degree, 177

plus-minus, 181 micro, 216 diameter, 219 Ohm/omega.

 

I have produced gerber outputs using rowmant.jhf and eagles.jhf fonts

that I think are satisfactory but I've not sent the boards to be

manufactured yet.  I choose to put the Hershey text on user layers, e.g.

121, 125, etc, and change the CAM job layer settings to match this.

 

I offer the ULP in the hope it might be useful for others.  I invite

other EAGLE users to test it and suggest improvements.  I developed this

ULP in v5.10 and v5.12 Professional on WinXP.  I have made some

preliminary tests on Debian7 with v5.12 Professional and v6.5.0 Light

and I invite you to test using recent versions and/or the GNU/Linux and

Mac platforms.

 

The new text alignment and multi-line facilities of V6 are not currently

supported in the ULP.  I've a conceptual solution but have not started

developing or testing it yet.

 

hershey-text.ulp meets my current needs.  However, I have some ideas to

improve the ULP for others and will do my best to support the ULP as my

commitments allow.   I have also made ULP my first attempt at using

GitHub for a project.  Initially I envisage some incremental

improvements will be available on the GitHub site and only major

advances would be submitted to the Cadsoft ULP downloads area.

 

Comments and suggestions welcome.

 

Kind regards,

Neil

--

Neil Allison

Avon Technical Solutions Ltd

Christchurch, New Zealand

 

  • Sign in to reply
  • Cancel
Parents
  • autodeskguest
    autodeskguest over 11 years ago

    Neil Allison schrieb:

     

    TL;DR: I invite you to help me improve a ULP to render Hershey fonts for

    PCBs in EAGLE.  See the ULP downloads section of the Cadsoft website or:

    http://www.avon-tech-solutions.co.nz/hershey.html or

    https://github.com/nallison/hershey-text-eagle

    GROUP the text to render then RUN hershey-text.ulp

     

    Many thanks, this is a great idea to finally let us see some better text

    on our boards!

     

    However, the ULP obviously ignores text rotation, currently. Maybe that

    can be fixed.

     

    Another suggestion: instead of using a fixed stroke width, it might be

    better to use a percentual width (just as we are used with EAGLEs vector

    font). In my test case, I had a board with several very differently

    sized texts, and in the result part of them were much too fat while

    others were much too thin.

     

    MANY thanks,

    Tilmann

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • autodeskguest
    autodeskguest over 11 years ago

    Neil Allison schrieb:

     

    TL;DR: I invite you to help me improve a ULP to render Hershey fonts for

    PCBs in EAGLE.  See the ULP downloads section of the Cadsoft website or:

    http://www.avon-tech-solutions.co.nz/hershey.html or

    https://github.com/nallison/hershey-text-eagle

    GROUP the text to render then RUN hershey-text.ulp

     

    Many thanks, this is a great idea to finally let us see some better text

    on our boards!

     

    However, the ULP obviously ignores text rotation, currently. Maybe that

    can be fixed.

     

    Another suggestion: instead of using a fixed stroke width, it might be

    better to use a percentual width (just as we are used with EAGLEs vector

    font). In my test case, I had a board with several very differently

    sized texts, and in the result part of them were much too fat while

    others were much too thin.

     

    MANY thanks,

    Tilmann

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • autodeskguest
    autodeskguest over 11 years ago in reply to autodeskguest

    On 01/04/2014 03:06, Tilmann Reh wrote:

     

    However, the ULP obviously ignores text rotation, currently. Maybe that

    can be fixed.

     

    Yes, I have put it on my list of issues.

    https://github.com/nallison/hershey-text-eagle/issues/11

     

    Text rotation is currently supported when the "Make a Package in

    library" option is selected: when the package is added to the board, it

    is inserted with the same "angle" and origin setting as the text.  The

    "spin" setting is not (yet) supported.

     

    But perhaps you want to rotate the text directly without creating a

    package?   I think it is a worthwhile enhancement.

     

    Another suggestion: instead of using a fixed stroke width, it might be

    better to use a percentual width (just as we are used with EAGLEs vector

    font). In my test case, I had a board with several very differently

    sized texts, and in the result part of them were much too fat while

    others were much too thin.

     

    Yes, a very good idea thank you, I've added it to the issues list too:

    https://github.com/nallison/hershey-text-eagle/issues/12

     

    Thank you for taking the time to test and comment on this ULP.

     

    Regards,

    Neil

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 11 years ago in reply to autodeskguest

    Neil Allison schrieb:

     

    However, the ULP obviously ignores text rotation, currently. Maybe that

    can be fixed.

     

    Yes, I have put it on my list of issues.

    https://github.com/nallison/hershey-text-eagle/issues/11

     

    Text rotation is currently supported when the "Make a Package in

    library" option is selected: when the package is added to the board, it

    is inserted with the same "angle" and origin setting as the text.  The

    "spin" setting is not (yet) supported.

     

    But perhaps you want to rotate the text directly without creating a

    package?   I think it is a worthwhile enhancement.

     

    I did the test on a completely designed board. The text objects were

    either smashed part designators, or "stand alone" text information for

    the silkscreen.

     

    I didn't want to "make a package in library", I just wanted to get

    better readable text objects. So IMHO the ULP should just take the

    selected (grouped) text objects "as they are" and convert them to

    hershey - at the same position and rotation (and ideally also with the

    same spin). Of course one could group and rotate the hershey text

    afterwards, but for a "converter", this 1:1 behaviour is commonly expected.

     

    Another suggestion: instead of using a fixed stroke width, it might be

    better to use a percentual width (just as we are used with EAGLEs vector

    font). In my test case, I had a board with several very differently

    sized texts, and in the result part of them were much too fat while

    others were much too thin.

     

    Yes, a very good idea thank you, I've added it to the issues list too:

    https://github.com/nallison/hershey-text-eagle/issues/12

     

    Thank you for taking the time to test and comment on this ULP.

     

    Thanks for your support, and thanks for listening!

     

    Tilmann

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 11 years ago in reply to autodeskguest

    Hello Tilmann,

     

    Another suggestion: instead of using a fixed stroke width, it might be

    better to use a percentual width (just as we are used with EAGLEs vector

    font).

     

    Github is updated with a fix for this issue (#12).  As a default, the

    ULP now sets the hershey text stroke (wire) width separately for each

    text item in the group.  It calculates the width from (size * ratio) and

    so is the same as the wires that create the 'source' vector text.

     

    Checkbox and command line options allow one to revert to a fixed width

    for all text.

     

    Kind regards,

    Neil

    https://github.com/nallison/hershey-text-eagle

     

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 11 years ago in reply to autodeskguest

    Tilmann Reh wrote:

     

    I didn't want to "make a package in library", I just wanted to get

    better readable text objects. So IMHO the ULP should just take the

    selected (grouped) text objects "as they are" and convert them to

    hershey - at the same position and rotation (and ideally also with the

    same spin). Of course one could group and rotate the hershey text

    afterwards, but for a "converter", this 1:1 behaviour is commonly expected.

     

    I understand, I shall work on this next.

     

    For me, having the hershey text as a package for each vector text so all

    its wires are moved, rotated and mirrored as a single entity rather than

    as a group made slight position adjustments and text revisions (with

    UPDATE) easy.

     

    Regards,

    Neil

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 11 years ago in reply to autodeskguest

    On 01/04/2014 19:30, Tilmann Reh wrote:

     

    selected (grouped) text objects "as they are" and convert them to

    hershey - at the same position and rotation (and ideally also with the

    same spin).

     

    v1.2.0 available at github or our website honours position, mirror, spin

    and rotation when rendering directly into the board and/or into a package.

     

    Direct link to ULP on github:

    https://raw.githubusercontent.com/nallison/hershey-text-eagle/master/hershey-text.ulp

     

    I have tested in EAGLE 5.12.0 Professional/WinXP and EAGLE 6.5.0

    Light/Debian.

     

    I encourage reporting any problems or issues you find via the newsgroup

    or at https://github.com/nallison/hershey-text-eagle/issues.  In this

    case, you are welcome to send me a board file showing the problems to

    test via PM.  Perhaps send a "sanitised" copy of the .brd file with the

    just the silkscreen text copied with copy-silk-screen.ulp.

     

    Regards,

    Neil

    --

    Neil Allison

    https://github.com/nallison/hershey-text-eagle

    http://www.avon-tech-solutions.co.nz/hershey.html

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • autodeskguest
    autodeskguest over 11 years ago in reply to autodeskguest

    Neil Allison schrieb:

     

    v1.2.0 available at github or our website honours position, mirror, spin

    and rotation when rendering directly into the board and/or into a package.

     

    With my testcase it works like a charm. image

     

    Many, many thanks (for solving a problem that CadSoft should have

    addressed years ago...).

     

    Tilmann

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube