Simple semi-auto placement of parts in pcb

Registered by Aquila

Simple semi-auto placement of parts/components somehow like:

Menue items to choose from:
+all components
+all unplaced components
+selected components

CheckBox:
+View Component Placement
+Allow Components to be Rotated
+Allow SMD Components to Swap Side
+Don't Place Fixed Components
+Fix Components After Place

Input parametrics:
+Min. Space Beetween Components: xxxx (nm)
+Placement Grid: xxxx (nm)

enhanced with design rules like:
+keep some min./max. distances between certain different types of components
+group/ungroup some typical components together
+positioning on different layers

nice to have:
+creating individual design rules/parametrics

part placement:

single part:
+location:
  center coordinates (x,y)
  vector to each pad from center coordinate (x+a, y+b; x+a', y+b'….)
  coordinates (marker) of starting pad (rotation °)
  top/bottom of board (default) (layer)
+possible movements
  move center coordinates (x,y)+(x',y')
  rotate location of starting pad (rotation °) + degree
  top/bottom layer
+constraints
  allow/forbid tracks passing through part
  a) same layer
  b) multiple layer
+(no)connected pads within part
  a) same layer
  b) multiple layer
+(un)defined properties
  preferred length of tracks considering type of pads (signal, power, etc.)
  preference grouping order considering type of pads (default)
  belonging to a building block (power, µ-controller, io-section, …)

two parts:
+location:
  same as single part
+possible movements
  same as single part
+constraints
  same as single part
  allow/forbid overlapping 2 parts
  a) same layer (always)
  b) multiple layer
  allow/forbid grouping/ungrouping with other part (third parts)
  a) same layer
  b) multiple layer
  allow/forbid grouping/ungrouping of built blocks
  define min./max. Distance between 2 parts (default) depending on part type, size and group

general rules and constraints:
+board size
  regard board boarders/edges
  no. of board layers e.g. top/bottom
+obstacles (location)
  no pass through
  no move aside
  fixed located parts or built blocks
  preferred location of built blocks or edge parts like connectors
+vias
  amount of allowed vias
  allowed type of vias through/inside
+processing time
  grade of optimization
  weighing of alternative constraints
  algorithmical approach (Big Oh)

Rules
Assumption: Starting from a blank board, all parts are situated outside.

+Rough check, whether all parts fit from their size on to the board also regarding minimum distances or other constraints.
+select first part with most pads and place it in the middle of the board or set preferred place manually
+select second part with most pads connected to first part and place it next to first part regarding constraints
+and so on
+parts with equal amount of connections: prefer part with a) more signals b) more power c) more GNDs pads.

mathematical approach:
+practical simple placement algorithm until better solution emerge
+implementing open source geometric algorithms in the form of a C++ library from cgal or others:
http://www.cgal.org/
+fully MVC compliant

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Aquila
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.