Code Monkey home page Code Monkey logo

freerouting's Introduction

FreeRouting

Java Based Printed Circuit Board Routing Software from FreeRouting.net written by Alfons Wirtz.

http://www.freerouting.net/fen/viewtopic.php?f=4&t=255

by alfons » Sat Mar 08, 2014 12:07 pm

Because I am no more maintaining the Freerouting project since 4 years and future Java versions may block my Freerouting Java Web Start application completely, I finally decided to open the source of the Freerouting project under the GNU public license version 3.

I have attached the complete source code of the Freerouting project. Please feel free downloading and using the sources according to the GPLv3 license.

Introduction:

This software can be used together with all host PCB design software systems containing a standard Specctra or Electra DSN interface. It imports .dsn-files generated by the Specctra interface of the host system and exports Specctra session files.(There exists also an interface to Cadsoft-Eagle.)

There are three modes for routing traces: 90 degree, 45 degree and free angle. The interactive router is production stable and unsurpassed in its free angle capabilities. An autorouter is currently under development and already stable in the conventional 45 degree mode.

After launching the router a window appears with buttons to display some router demonstrations, to open a sample design, or to open a design of your own.

After opening a design you can start the autorouter with the button in the toolbar on top of the board window.

The board editor has three different interactive states. You can switch between this states with the buttons Select, Route and Drag on the left of the toolbar.

In the beginning the board editor is in the select state. In this state you can select single board items by picking them with the left mouse button or select items in a rectangle by dragging the left mouse button. Only item types switched on in the select parameter sheet will be selected. After selecting some items the toolbar displays options for showing and manipulating these items. If you push the info button for example a window with text information about the selected items is displayed. After clicking a blue word in this text a new window with further information pops up. To return to the select state push the cancel button or click somewhere in the empty space of the board window.

By pushing the Route button you get into the state for interactive routing. In this state you can start a new trace by picking an item belonging to a net, for example a pin. Then you can follow the displayed airline with the mouse until you have reached the target item at the other end of the airline. The trace will be connected automatically to the target, if it is on the same layer. If you want to change to a different layer during interactive routing, select "change layer" and then the name of the new layer in the popup menu under the right mouse button. Then a via will be inserted, if that is possible, and a new trace starts on the new layer. You can also change the layer by pressing a number key.

After pushing the Drag button you get into the state for changing the location of vias, components or traces. In this state you can select vias or components and drag them with the left mouse button to a different location. The connected route is updated automatically. You can also move traces by pushing them from behind out of the empty space with the left mouse button pressed. That works on the current layer, which can be changed in the select parameter sheet. In this way you can make space for example to insert a new component.

For more information please use the online help in the board editor. From here you can download also a printable version of the online help.

If you have further questions or want some feedback, please sent an Email to support@ FreeRouting.net or visit our forum.

Additional steps for users of CadSoft-Eagle:

  1. Download the latest Eagle2freerouter ulp file

  2. Start Eagle and open in the control panel of Eagle for example the design my_design.brd.

  3. Choose in the Files pulldown-menu of Eagle the item "execute ULP" and select the Eagle2freerouter ulp file. A file with name my_design.dsn is generated.

  4. Start the router, push the "Open Your Own Design" button and select my_design.dsn in the file chooser.

  5. After making some changes to the design with the router select "export Eagle session script" in the Files pulldown-menu. A file with name my_design.scr is generated.

  6. Choose in the Files pulldown-menu of Eagle the item "execute Script" and select my_design.scr.

Here are some instructions how to run the Freerouting project in the NetBeans IDE.

  1. Go to the Java SE download web page of Oracle to download and install JDK 8 with NetBeans 8.0

  2. Start the NetBeans IDE and select File | New Project in the pull down menu.

  3. In this sheet select Java Project with existing sources.

  4. Add your downloaded Freerouting source code with Add Source Package.

  5. Build your new project in NetBeans.

  6. To get rid of the undefined's download and unzip the attached library jh.jar. It is the system library of the Java Help system.

  7. Right click on the name of your new project on the left of NetBeans and select Properties.

  8. In the Property sheet select Libraries on the left and add your jh.jar with Add JAR/Folder.

  9. Click on Web Start in the Property sheet and select Enable Web Start.

  10. Build the project again. The router should run now.

For optional parameters of the Freerouting outfile check the usage of the variable p_args in the source file gui/MainApplication.java.

freerouting's People

Contributors

nikropht avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freerouting's Issues

This code base needs a forum

I guess the question is which FreeRouting repository is currently the primary one, and how can all people interested in this get together.

Graphics do not display

System: Macbook with 10.9.3, uname -a:
Darwin magikarp.local 13.2.0 Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64

Java version: Oracle's own Java 8 update 11. java -version:
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

Built with NetBeans 8.0 Patch 2 for Mac, build 201403101706.

Issue: The graphics in the main routing screen do not display. Instead of seeing the board, the program draws only the gray background. Many of the UI buttons do not paint either but do still respond to mouse clicks. Otherwise the program seems to function normally.

Detail: In several drawing routines found in boardgraphics/GraphicsContext.java, the original author attempts to cast a Shape into a Rectangle which leads to an exception on my system. An example from line 130 of GraphicsContext.java:
Rectangle clip_shape = (Rectangle)p_g.getClip() ;

I was able to avoid an exception by changing the line to read:
Rectangle clip_shape = p_g.getClip().getBounds()

The same fix needs to be applied to lines 130, 273, 313, and 432. On my machine, fixing these lines brought the graphics back, everything looks normal.

Readme + jh.jar

The readme states:
6) To get rid of the undefined's download and unzip the attached library jh.jar. It is the system library of the Java Help system.
And it took me quite some time to realize that this is because it's pulled straight from a forum post where in the forum post he linked the library jar file. Please consider adding it to the repository!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.