Skip to content

Instantly share code, notes, and snippets.

@dreamr
Created July 21, 2011 21:34
Show Gist options
  • Save dreamr/1098274 to your computer and use it in GitHub Desktop.
Save dreamr/1098274 to your computer and use it in GitHub Desktop.
Solar Array Layout
==================
Legend
------
+-- measurements -----------------------+
| RS Rafter Spacing |
| |
|-- zones ------------------------------|
| TLC Top Left Corner Zone |
| TE Top Edge Zone |
| TRC Top Right Corner Zone |
| LE Left Edge Zone |
| RE Right Edge Zone |
| BLC Bottom Left Corner Zone |
| BE Bottom Edge Zone |
| BRC Bottom Right Corner Zone |
| |
|-- components -------------------------|
| PANELS: |
| 1, 2, 3, 4, 5, 6, 7, 8, 9 |
| |
| INTERLOCKS: |
| A, B, C, D, E, F, G, H |
| |
| LEVELING FEET: o |
| |
| GROUND ZEP: x |
| |
| Skirt: __________________ |
+---------------------------------------+
Example Layouts:
16 " RS
-------
TLC TE TRC
+------+-------------------------+------+
| o x G ----- o H ----- o o |
| +---------+ +---------+ +---------+ |
| | 7 | | 8 | | 9 | |
+ | | | | | | +
| +---------+ +---------+ +---------+ |
| o E ----- o F ----- o o |
| +---------+ +---------+ +---------+ |
LE | | 4 | | 5 | | 6 | | RE
| | | | | | | |
| +---------+ +---------+ +---------+ |
| o C ----- o D ----- o o |
| +---------+ +---------+ +---------+ |
+ | 1 | | 2 | | 3 | +
| | | | | | | |
| +---------+ +---------+ +---------+ |
| o A ----- o B ----- o o |
| ___________________________________ |
+------+-------------------------+------+
BLC BE BLC
24 " RS
-------
TLC TE TRC
+------+-------------------------+------+
| o x G ----- o H ----- o |
| +---------+ +---------+ +---------+ |
| | 7 | | 8 | | 9 | |
+ | | | | | | +
| +---------+ +---------+ +---------+ |
| o E ----- o F ----- o |
| +---------+ +---------+ +---------+ |
LE | | 4 | | 5 | | 6 | | RE
| | | | | | | |
| +---------+ +---------+ +---------+ |
| o C ----- o D ----- o |
| +---------+ +---------+ +---------+ |
+ | 1 | | 2 | | 3 | +
| | | | | | | |
| +---------+ +---------+ +---------+ |
| o A ----- o B ----- o |
| ___________________________________ |
+------+-------------------------+------+
BLC BE BLC
ZONES
=====
Zones can be selected. If the array was to be placed with the left edge
within the left edge zone of your roof, then you would click the LE line
to make it turn dark and active.
For a corner zone, or to fill a roof from edge to edge, simply click more
zone markers
Component Awareness
===================
Components need to know about each other so that rules can be kept,
an calculations can be made based on the inter-connectedness of the
array as a whole of pieces.
To accomplish this I am going to make components a lot smarter then
they are now. Currently they understand their x,y layout and their
width/height and not much else.
PANELS
======
Panel #1 knows this:
Adjacent Panels:
Top => #6
Right => #2
Bottom =>
Left =>
Edges => [Left, Bottom] (clicked on mounting area)
Corner => Left Bottom (automatic because we selected 2
perpendiculars)
Now that Panel #1 knows that stuff it makes it very easy to walk
from panel to panel in any direction. And we can simply rotate the
panels and interlocks and skirt 90deg to accommodate E-W/N-S. More
on that later, but there will be a Transposer, it's job is just to
swap array values to make x=y, and y=x.
INTERLOCKS
==========
Interlock (a) knows this:
Connections:
TopLeft => #6
TopRight => #7
BottomLeft => #1
BottomRight => #2
This means many things, but a key point to take away here is this;
the interlocks used to be laid as a sheet based on x,z and some
fuzzy math.
They will now get their x,y directly from the panels
connected to them and will not be laid separately, but as part of
panels. This also means we can just rotate and get our interlocks
in the right place.
This also allows our rules (like grounding) to be based not on math
but instead by running a "circuit checker" starting at #1 and make
sure we can reach every panel in the array. This is important when
the user starts mucking around with the positioning like an installer
might.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment