Trying to come up with an intuitive method for specifying a secondary roof. My idea is for the user to select the wall corners (1) and (2) that the projecting (secondary) roof will be bearing on and then to select the roof plane of the primary roof that the secondary roof should intersect. Essentially three points/picks will specify the secondary roof.
When a secondary is created it will store the primary roof name it is intersecting with as well as the roof plane. Either of these can then be modified in the secondary roof menu in the case that the user wants to switch to a different primary roof or a different roof plane of a given primary roof.
When a secondary roof is edited or regenerated it will then re-analyze the entire geometry with the specified primary roof and roof plane in order to generate the secondary roof geometry. This will allow the user maximum flexibility (ie. moving primary and secondary relative to each other {x, y, or in z} as well as changing the primary).
Orthogonal intersections are nice but we can't count on them so from the get go the secondary tool will be designed with any arbitrary intersection angle in mind as well as intersections with a roof planes or gable ends of a gable roof (wall).
Additionally, the secondary roof may be symmetric or asymmetric so it makes sense to also allow for this possibility as well.
One could even go so far as to allow for intersection with more exotic primary roofs (eg. gambrel, arched, polynesian etc...) however at this point I think I will limit myself to just a single pitched roof plane or wall plane.
There will be a separate tool for secondary hips and one for secondary gables, the reason being the vast number of different parameters required for each type of roof and the different algorithms required as far as calculating the actual roof rafter geometry.
At this point I am mostly conceptualizing and trying to see if there are any major holes or flaws in this system or method of secondary roofs. I would be interested to hear your feedback on the matter and especially if you can see any major problems with my methodology, or have suggestions for something that may work even better.
As can be seen on my previous notes page (May 14), there are a few special cases that will also need to be dealt with:
1.) Secondary roof is non-orthogonal to the primary roof and its ridge coincides or meets a primary hip. In this case the secondary really should intersect the two planes on each side of the primary's hip.
2.) A hip roof secondary meets a gable wall such that the aspect ratio of the secondary precludes it from having a ridge board perpendicular to the gable wall. There is also potentially the non-orthogonal possibility but this would not be very common.
3.) Typical L-shaped hip roof where the valley and hip theoretically merge into a common roof.
If I can somehow pull this one off, it will be a bit of a game changer for the Truss plugin since it will then allow for much more complicated rafter roofs.
When a secondary is created it will store the primary roof name it is intersecting with as well as the roof plane. Either of these can then be modified in the secondary roof menu in the case that the user wants to switch to a different primary roof or a different roof plane of a given primary roof.
When a secondary roof is edited or regenerated it will then re-analyze the entire geometry with the specified primary roof and roof plane in order to generate the secondary roof geometry. This will allow the user maximum flexibility (ie. moving primary and secondary relative to each other {x, y, or in z} as well as changing the primary).
Orthogonal intersections are nice but we can't count on them so from the get go the secondary tool will be designed with any arbitrary intersection angle in mind as well as intersections with a roof planes or gable ends of a gable roof (wall).
Additionally, the secondary roof may be symmetric or asymmetric so it makes sense to also allow for this possibility as well.
One could even go so far as to allow for intersection with more exotic primary roofs (eg. gambrel, arched, polynesian etc...) however at this point I think I will limit myself to just a single pitched roof plane or wall plane.
There will be a separate tool for secondary hips and one for secondary gables, the reason being the vast number of different parameters required for each type of roof and the different algorithms required as far as calculating the actual roof rafter geometry.
At this point I am mostly conceptualizing and trying to see if there are any major holes or flaws in this system or method of secondary roofs. I would be interested to hear your feedback on the matter and especially if you can see any major problems with my methodology, or have suggestions for something that may work even better.
As can be seen on my previous notes page (May 14), there are a few special cases that will also need to be dealt with:
1.) Secondary roof is non-orthogonal to the primary roof and its ridge coincides or meets a primary hip. In this case the secondary really should intersect the two planes on each side of the primary's hip.
2.) A hip roof secondary meets a gable wall such that the aspect ratio of the secondary precludes it from having a ridge board perpendicular to the gable wall. There is also potentially the non-orthogonal possibility but this would not be very common.
3.) Typical L-shaped hip roof where the valley and hip theoretically merge into a common roof.
If I can somehow pull this one off, it will be a bit of a game changer for the Truss plugin since it will then allow for much more complicated rafter roofs.