Grasshopper

algorithmic modeling for Rhino

Hey,

I'm working on a file in which I would like to draw a network from a list of adjacency relations (netlist from Eagle/altium), in which each adjacent node is also actually adjacent in the XY plane (2d) so that the line connecting the two nodes never intersect another node line. Basically it's a electrical circuit that Im trying to draw the nets of, so everything really happens between the two points "GND" and "VCC", which is supply voltage and ground.

Here is a pic of the theoretical problem to the left, and what I would like to achieve to the right. 

I have got as far as translating the list adjacent relations as lines between random points. but feel lost as to how I can get the connecting points to end up adjacent to each other. I have made some tests with kangaroo springs between the points, but it takes alot of tuning even to get a quite simple list to work out.

Im starting to think about if there is a way to procedurally draw the points instead and get rid of the random pointcloud that Im trying to work with now. Attached is a sketch of what im working on, and how I have been trying to tackle it.

Any ideas about how I can close in on this issue would be amazing! Many thanks!!

Views: 972

Attachments:

Replies to This Discussion

You mean a printed circuit? (meaning (a) min (if possible) diagonals and (b) rather fixed "groups" of "from"/"to" routes).

Other than that, this is not a very simple problem not to mention that is rather unsolvable without code. In the old days Hewlett Packard had the best software for printed circuits (others closed the gap since).

http://www.electroschematics.com/2249/pcb-design-software/

http://predictabledesigns.com/pcb-design-software-which-one-is-best/

Hey Peter, thanks for your quick response!

Yes, Im looking to draw a PCB in grasshopper (altough a highly unusual one ;)), but not to create the schematic. Im using Eagle and /or altium for that, giving me the list that describes the relations. What I want grasshopper to do is to take that list of the different nets and their routing and draw points or to move points in a pointcloud so that their adjacency matches that of the list. This is an example of what such a list can look like:

GND;C5,R2,R6.
N$1;C1,C2,R3.
N$2;C2,C3,R4.
N$3;C3,C4,R5,T1.
N$4;C5,R6,T1.
N$5;C1,R1,R2,T1.
N$17;C4,R7.
VCC;R1,R3,R4,R5.

Some extra clarification:

the first object of every line is the net, which I would like to draw as a point or circle, separated by a ";" from the components connected to that net. Components occur in several nets describing which is adjacent to which, they are represented as lines between the nets. These lines cant intersect one another for this idea to work out. I can draw the lines in a random point cloud, but my problems is to move the points, or draw the points in a manner so that they don't intersect.

Im not quite grasping what you said about diagonals and groups?

Unfortunatly im not a master with VB :/ I've been trying to look for discussions on similar problems as I thought it would be quite common to have a list describing adjacency and wanting to display that graphically, but without luck. Any ideas about what to search for?

No ... random pt cloud is the route to nowhere on that.

I could give this a spin (this w/e maybe) unless some other good Samaritan does it first That said components is not my forte (so expect some C# for that).

But even assuming that is done ... what are you going to do with that?

Hi,

just a idea...

If you have the points that belong together, you can build/draw the lines between the points.

If you know the polygon, you can build a center.

Check for crossing but not connected lines. If you find the "bad" line set end point = center

Code needed for a suitable solution...

This is a "variation" of a classic HAC: hierarchical cluster analysis (imagine 666 "nodes", for instance). Obviously may (or may not) yield a solution (that's the reason that boffins invented the multilayered PCB).

BTW: Spoke with a good friend (an ex H/P top dog) on PCB matters. He said that this is the best these days (and "cheap" as well - he works at home with a 14K+ version):

http://www.altium.com/altium-designer/overview

Thanks for reaching out for me! :) Im trying to do it this way to work with the graphical aspects, so conventional PCB design is more or less what Im trying to escape. For instance it could be interesting to make a PCB in which the area of the nets describe the current flowing through them, or the shape of them the direction of current etc.

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service