element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • 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 Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • 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 Support (English) Two scripts to help layout a board from a multi-page schematic...
  • 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 2610 views
  • Users 0 members are here
  • board
  • eagle
  • ulp
  • layout
  • schematic
  • multi-page
Related

Two scripts to help layout a board from a multi-page schematic...

AnalogNotes
AnalogNotes over 11 years ago

Not sure "support" is the best place to put this, but then again, "user chat" doesn't seem to be any better...  image

 

Every design I've done has multiple schematic pages.  It's easier to work on a particular part of the schematic, plus it looks a lot better when creating graphics/pdfs/printing.  The difficulty appears when starting to layout the corresponding board.  When first creating the board, you get a big pile of parts arranged by the type of part, not by the section or page of the schematic.  It can take a while to deal with all these parts!  Here's an example:

image

I started to look at ULPs that might help.  Jorge Garcia of Cadsoft USA pointed me to the granddaddy of them all, autoplace.ulp (available on http://www.cadsoftusa.com/downloads/ulps as autoplace_v3.ulp) but it is over ten years old and has a couple bugs.  (For example, it writes commands to a script file that never gets called.)  If you type "autoplace" into the search box at the downloads link, you'll see a couple other scripts that look interesting.  Jim Meech uploaded two scripts, aps.ulp and apg.ulp a couple years back.  I downloaded them and gave them a try.  Jim's aps.ulp autoplaces parts one sheet at a time. Here's the output with the default settings:

image

This is better than autoplace.ulp, but I think there's still room for improvement.  Instead of iterating through each schematic sheet and either placing the parts, moving them out of the way, or setting a different location in the script, I decided I wanted my script to sort all of the parts in one step without me having to intervene.  I wrote arrange.ulp and uploaded it to the Cadsoft site ( http://www.cadsoftusa.com/downloads/file/arrange.ulp ).  Arrange.ulp goes through the entire schematic and arranges all the parts in separate piles, one for each page of the schematic.  Here's the output from my eighteen page schematic:


image

Page one is the bottom right, page two is to the left of it.  For this example I have the script set to five columns, so the pile above page one is page six.  With this arrangement, I can group and move all parts from each page easily.  Of course, now I've just divided my original problem into smaller problems.  Depending upon how complicated each page is, there may be a lot of parts in each pile, and to be honest, the way EAGLE works, it's a pain to use the mouse to grab each part from the stack one at a time and move it.  So, I wrote another ULP, distribute.ulp ( http://www.cadsoftusa.com/downloads/file/distribute.ulp ).  Select a pile of parts with the "group" command and run this script and those parts will be moved to a different area of the layout and spread out so that they're easier to select.  Here's the output from running distribute.ulp on the parts from the first pile, my schematic page one:

image

I think it's a lot easier to grab each component and place it on the board this way.

 

NOTES:  Don't run arrange.ulp more than once unless you're trying to completely redo your board from scratch!  The distribute.ulp can be run on any selected group.  Both scripts can be configured to place parts in any quadrant of the board layout that you like.  Since by default the board is created in the top right quadrant of the layout editor, I chose the top left quadrant for the arrange.ulp output, and the bottom right for distribute.ulp.  You can edit the scripts and change the XQuadrant and YQuadrant values to what you prefer.  It's best to have each script output to a different quadrant.  Also, I've heard that there's a problem with generating the scripts under Windows XP, but I don't have an XP system to use for testing.  I wrote these scripts on Windows Vista with EAGLE 5.

 

Let me know what you think!

 

Regards,

Doug

 

Message was edited by: Doug Wellington Element14 lost the first three images, so I reloaded them.

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

    Interesting post.

     

    The way I layout the components is as follows. I have a dual-monitor setup, one shows the board, the other shows the schematic.

    From the schematic I can decide which component I would like to place, for example, IC4.

     

    In the board, I type: "move ic4" <enter>

    No matter how many components there are, no matter how cluttered they are, no matter where it was located, the component I entered is immediately attached to the mouse cursor and ready to place where ever I like. No need to organize and/or look for components in the big pile.

    So far, this works best for me.

     

    Regards,

    Joop

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

    Interesting post.

     

    The way I layout the components is as follows. I have a dual-monitor setup, one shows the board, the other shows the schematic.

    From the schematic I can decide which component I would like to place, for example, IC4.

     

    In the board, I type: "move ic4" <enter>

    No matter how many components there are, no matter how cluttered they are, no matter where it was located, the component I entered is immediately attached to the mouse cursor and ready to place where ever I like. No need to organize and/or look for components in the big pile.

    So far, this works best for me.

     

    Regards,

    Joop

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
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