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

    On 28/03/2014 11:56 a.m., Neil Allison wrote:

     

    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

     

    Nice work Neil

     

    I do notice that you use 10000 in the line

      "int MM_TO_UNITS = 10000;"

     

     

    That was correct for V5 and earlier but v6 uses 1/320000mm (0.003125µ)

    I used 320000 with v6.5 and the result is a better height /position

    match to the original text.

     

    You may care to test for the version and use the appropriate units.

     

    HTH

    Warren

     

     

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

    On 03/29/2014 01:05 AM, warrenbrayshaw wrote:

    On 28/03/2014 11:56 a.m., Neil Allison wrote:

     

    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

     

    Nice work Neil

     

    I do notice that you use 10000 in the line

    "int MM_TO_UNITS = 10000;"

     

     

    That was correct for V5 and earlier but v6 uses 1/320000mm (0.003125µ)

    I used 320000 with v6.5 and the result is a better height /position

    match to the original text.

     

    You may care to test for the version and use the appropriate units.

     

    Or one could use the built-in functions u2mm() and mm2u() to convert

    from/to internal units.  They're documented in the ULP manual - just

    search for "Unit Conversions".

     

        - Chuck

     

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

    On 03/29/2014 01:05 AM, warrenbrayshaw wrote:

    On 28/03/2014 11:56 a.m., Neil Allison wrote:

     

    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

     

    Nice work Neil

     

    I do notice that you use 10000 in the line

    "int MM_TO_UNITS = 10000;"

     

     

    That was correct for V5 and earlier but v6 uses 1/320000mm (0.003125µ)

    I used 320000 with v6.5 and the result is a better height /position

    match to the original text.

     

    You may care to test for the version and use the appropriate units.

     

    Or one could use the built-in functions u2mm() and mm2u() to convert

    from/to internal units.  They're documented in the ULP manual - just

    search for "Unit Conversions".

     

        - Chuck

     

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

    Quote:

    Nice work Neil

     

    I do notice that you use 10000 in the line

    "int MM_TO_UNITS = 10000;"

     

     

    That was correct for V5 and earlier but v6 uses 1/320000mm

    (0.003125µ)

    I used 320000 with v6.5 and the result is a better height

    /position

    match to the original text.

     

    You may care to test for the version and use the appropriate

    units.

     

    Or one could use the built-in functions u2mm() and mm2u() to convert

    from/to internal units.  They're documented in the ULP manual - just

    search for "Unit Conversions".

     

        - Chuck

     

     

    Neil is working in units so he needs to go from mm to units. New functions

    for that arrived with v6 but they were not in v5 which is what the ULP was

    written for.

     

    Warren

     

    --

    Web access to CadSoft support forums at www.eaglecentral.ca.  Where the CadSoft EAGLE community meets.

     

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

     

    I do notice that you use 10000 in the line

      "int MM_TO_UNITS = 10000;"

     

     

    You may care to test for the version and use the appropriate

    units.

     

    Thank you for the helpful suggestion.  Fixed, available from the github

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

     

    (I'd rather not clutter the Cadsoft ULP download area with multiple

    revisions of the ULP while its going through multiple changes suggested

    by the community.)

     

     

    Or one could use the built-in functions u2mm() and mm2u() to convert

    from/to internal units.  They're documented in the ULP manual - just

    search for "Unit Conversions".

     

         - Chuck

     

    Thanks for reporting these functions.  You've prompted me to review the

    v6 release notes to see what I'm missing by remaining on v5.

     

    New functions for that arrived with v6 but they were not in v5 which is

    > what the ULP was written for.

     

    Agreed, v5 suits most of my design needs at present.  Is anyone still

    using v4 - it doesn't have ingroup() ULP function.

     

    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

    Neil Allison schrieb:

     

    Thank you for the helpful suggestion.  Fixed, available from the github

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

     

    (I'd rather not clutter the Cadsoft ULP download area with multiple

    revisions of the ULP while its going through multiple changes suggested

    by the community.)

     

    This is the perfect way to do it.

     

    Thanks for reporting these functions.  You've prompted me to review the

    v6 release notes to see what I'm missing by remaining on v5.

     

    New functions for that arrived with v6 but they were not in v5 which is

    what the ULP was written for.

     

    Agreed, v5 suits most of my design needs at present.  Is anyone still

    using v4 - it doesn't have ingroup() ULP function.

     

    I think V4 users are a rather small number today. But I think many

    people are still using V5. I also did not update to V6 since it wouldn't

    provide any benefits for my work, and additionally all my urgent issues

    weren't addressed at all. image

     

    So thank you for explicitly supporting V5.

     

    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