Simple semi-auto placement of parts in pcb
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://
+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
- Started by
- Completed by