Created
July 20, 2011 22:18
-
-
Save dreamr/1096072 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Array Virtualization | |
### General Rules | |
Calculate based on a normalized MountingArray and SolarArray | |
* This will be the base x and y coordinates with no missing panels | |
* Everything is calculated in Landscape and flipped 90deg for Portrait | |
Represent the MountingArea in the codebase | |
Represent the SystemComponents in the codebase | |
Build SolarArray based on MountingVariables (minus the footing) | |
Center the SolarArray on the MountingArea | |
Mounting Space in panels + 1/2 | |
Track how many rafters in MS based on RafterSpacing | |
Min Cant is 2" (inside or outside panel) | |
Max Cantilever is 1/3 of the allowable spacing from EngCalc | |
Calculate Left Cantilever | |
* MountingArea vs SolarArray vs RafterSpacing | |
Calculate Right Cantilever | |
* Simply from the left! | |
Build the virtual SolarArray | |
Place MountingFeet onto the MountingArea | |
Overlay the SolarArray | |
Check Rules | |
* Shift Array if needed! | |
Apply ZSII-Bigfoot and ZSII-BlackDog modules (components, rules and operations) | |
UI should have option to hide skirt from display | |
UI should show the skirt by default | |
UI overrides do not effect the visual representation of the array | |
## Algebra | |
* MAL = Mounting Area Length | |
* SP = Panel Spacing (1/2") | |
* AR = Available Rafters | |
* PL = Panel Length | |
* PH = Panel Height | |
* TPL = Total Panel Length | |
* TPH = Total Panel height | |
* PIR = Panels in Row | |
* PIC = Panels in Column | |
Given a mounting area of 20'x20' and a rafter spacing of 16" we have 3 rows and 6 columns, ala: | |
Panel Rows | |
PL SP TPL | |
64.5" + 0.5" = 65" | |
MAL TPL PIR | |
240" / 65" = 3 (floor it) | |
Panel Columns | |
PH SP TPH | |
38.7" + 0.5" = 39.2" | |
MAH TPH PIC | |
240" / 39.2" = 6 (floor it) | |
Rafters Available | |
MAL RS AR | |
240" / 16" = 15 | |
The Array Builder (AB) should do it exactly like an installer would to create the initial array. This is the perfect fittable array. | |
1) Take the Mounting Area Widths and Heights (MA) and divide them | |
by the spaced_module widths and heights to find out how many | |
we can fit in the MA. | |
a) A Spaced Module (SM) includes the 0.5" gap on the right side | |
unless the SM is a right outer edge module | |
2) Start at the bottom left of the Mounting Area (MA) and finds the first | |
rafter according to the Build Rules (BR) (which takes into account and | |
provides access to system stuff like components and rules) | |
3) Mark the x location and find the y location by centering the Solar | |
Array's (SA) height against the Mounting Area's (MA) height and again | |
marking the y location | |
4) At the first x/y location the AB drops the bottom left foot. | |
5) Now, according to the Build Rules (BR), the AB drops feet in a row to | |
the end. | |
6) Now we move our y position and duplicate our row above the first. | |
7) We can now lay a panel in the real world but here we wont. | |
8) Since we are dealing with a perfect array, we can clone those rows on up | |
based on the size of the Spaced Panel (SP) width (again, compensating | |
for the outside right column) | |
9) We now place all of our Spaced Panels (SP) down in order according to the | |
BR on the first row, and then clone upwards to complete the panels | |
10) Based on where the SPs and the Leveling Feet (LF) are we can now appl | |
the BRs again to place the interlocks in place based on where the panels | |
and feet are | |
We now render this. Any additions or shifts are from this build. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment