anxb26 / fritzing

Automatically exported from code.google.com/p/fritzing
1 stars 1 forks source link

autoplace #188

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The pcb layer should force or at least encourage users to only place parts
within actual board bounds.  Not critical for alpha.  Eventually would be
nice to even have a configurable parameter to keep folks from placing
things too close to the edge of a board.

Original issue reported on code.google.com by brendan....@gmail.com on 16 Oct 2008 at 7:19

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago

Original comment by dirk.van...@gmail.com on 17 Oct 2008 at 9:34

GoogleCodeExporter commented 9 years ago

Original comment by dirk.van...@gmail.com on 17 Oct 2008 at 9:35

GoogleCodeExporter commented 9 years ago
there's no need for the user to have to drag and drop parts onto the
arduino when she first switches to pcb view.  The parts could automatically
be placed on the board (not intelligently placed, just placed). 

This is a little tricky if the user doesn't place the ardiuno early.  And
what if there are parts the user doesn't want on the board?  

Alternatively, we could have it be a menu item "place selected parts on the
arduino".  But I'm leaning toward solving the 90% case, which is that all
parts belong on the board in pcb view.  And if the user drags a part off
the board in pcb view, then don't autoplace it back--equivalent to the way
we deal with manually drawn traces.

Original comment by irasc...@gmail.com on 18 Nov 2008 at 10:34

GoogleCodeExporter commented 9 years ago
the 90% solution sounds good to me.  autoplace would be triggered on adding an
arduino or adding any other part to the sketch.  it's safe to assume that the 
parts
need to be on the board.

Original comment by brendan....@gmail.com on 20 Nov 2008 at 1:57

GoogleCodeExporter commented 9 years ago
jonathan is working on this

Original comment by brendan....@gmail.com on 7 Jan 2009 at 1:23

GoogleCodeExporter commented 9 years ago
Issue 679 has been merged into this issue.

Original comment by irasc...@gmail.com on 2 Jul 2009 at 9:02

GoogleCodeExporter commented 9 years ago

Original comment by irasc...@gmail.com on 28 Sep 2010 at 6:47

GoogleCodeExporter commented 9 years ago
One approach in the literature is to use simulated annealing to minimize a cost 
function.  A reasonable cost function would be total wire length.  Having said 
this, I can't predict how well this would actually work in practice.  But it 
probably wouldn't take more than a few days to try it out.

Original comment by irasc...@gmail.com on 8 Oct 2010 at 1:31

GoogleCodeExporter commented 9 years ago
Brendan suggests a cost function that is a combination of overall area plus the 
number of part crossings it takes to get from one connector to another (which 
is an estimate of how hard it would be to route that connection).  So two parts 
which are to be connected are better being placed next to each other than with 
some number of parts in-between.

Original comment by irasc...@gmail.com on 15 Oct 2010 at 9:10

GoogleCodeExporter commented 9 years ago
Optimal autoplacement can wait, but now that a rectangular board is placed in 
pcb view by default, by default, when parts are dropped in breadboard or 
schematic view, they should be placed on the board in pcb view (rather than 
just keeping the same x and y coordinate as is currently done).

So, marking this a defect instead of an enhancement.  Optimal autoplacement 
will be the enhancement.

Original comment by irasc...@gmail.com on 13 Feb 2011 at 6:32

GoogleCodeExporter commented 9 years ago
Torsten thinks a Kohenen map might be applicable to the optimal placement 
problem:

"Here's a pointer to the Kohonen map:
http://en.wikipedia.org/wiki/Self-organizing_map
Look at the second illustration, somtraining.svg. Imagine the blue blob is the 
circuit structure with its connections and the grid is the "folded" PCB."

other methods include simulated annealing and min-cut placement

Original comment by irasc...@gmail.com on 13 Feb 2011 at 8:21

GoogleCodeExporter commented 9 years ago
Placing parts on the board (without regard to routing) is a case of the 2d 
bin-packing problem.  I'm not sure how optimal it is, but the good old 
corner-stitch data structure from the autorouter can be used for bin packing 
problems.

Original comment by irasc...@gmail.com on 13 Feb 2011 at 10:18

GoogleCodeExporter commented 9 years ago
comment 14 is implemented so this is back to the hard problem of autoplacement.

Original comment by irasc...@gmail.com on 13 Feb 2011 at 12:38

GoogleCodeExporter commented 9 years ago
Just noticed that while we have semi-autoplacement in PCB view (placing parts 
next to each other instead of random), we don't have it yet in schematic view. 
This would be a nice enhancement, since it would make it much less daunting for 
beginners to look at this view.

Original comment by andre.knoerig@gmail.com on 8 Jan 2012 at 12:40

GoogleCodeExporter commented 9 years ago
Issue 1908 has been merged into this issue.

Original comment by irasc...@gmail.com on 27 Nov 2012 at 4:58

GoogleCodeExporter commented 9 years ago
could use the results of the autorouter toward autoplacement: if a net cannot 
be routed, it suggests a different placement

Original comment by irasc...@gmail.com on 18 Dec 2012 at 7:48

GoogleCodeExporter commented 9 years ago
Issue has moved to new issue tracker at github. Please continue the discussion 
at https://github.com/fritzing/fritzing-app/issues

Original comment by andre.knoerig@gmail.com on 23 Sep 2014 at 3:37