News:

SMF - Just Installed!

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Medeek

#1051
Notice how the sheathing is now projecting underneath the gable overhangs:



Now I just need to get the cladding to behave similarly and then a few adjustments to the sub-fascia and gutters.
#1052
A couple of interesting gable roofs:



Looks like I have the roof primitive working for "interior" gables.  Now I just need to sort out the details for sheathing, cladding, sub-fascia and gutters.  An interior gable is defined as a gable roof plane with one or more corner angles of 270 degrees (orthogonal inside corner), hence an interior gable. 

For now I'm not going to allow interior dutch gables or half hips.  As long as the angles, at both corners, are 90 degrees then you will be able to place a dutch gable or half hip on that roof plane.  However, the gable is a little more flexible and will allow some interesting configurations, as shown.
#1053
When you raise the fascia line along a segment of the roof inevitably it must return to same level since a roof is a closed loop.  See model here:

https://3dwarehouse.sketchup.com/model/a87657fc-f488-47b9-9e40-b8767b4d4182/Roof-Study-11

I think I can make this work but I'm going to have to drastically change my algorithms to allow for unequal fascia/gutter lines. 

The other interesting thing with all of this is that the fascia line could step up and down multiple times around a roof.

Another observation is that only hip roof planes technically step up or down, gable roof planes/edges are controlled by the adjacent hips.
#1054
Another variation of the gable roof study:



Gables ad infinitum...

The one thing that jumps out here is that gable roof planes cannot be adjacent to each other (or other variants like dutch gable or half hip configurations), gable roof planes are separated by hip planes.  Additionally, I will limit the gable option to orthogonal roof planes only (corners must be 90 or 270 degrees).

There is always on more thing to add, at some point I hope to have conquered this beast.
#1055
My original restrictions on the placement of gable ends are too tight.  In order to created roofs where you may have a gable on a gable we need to relax things a bit or at least change up the conditionals:



This further complicates each building element or at least opens up possibilities which did not exist before so I will need to add additional logic for sheathing, cladding, sub-fascia and gutters.

Who said complex roofs were going to be easy.
#1056
The problem with complex roofs is that I am only scratching the surface right now.  There are quite a few permutations that are possible that are quite common with many residential designs that I still cannot handle with the current complex roof module.

Consider this relatively simple example:

https://3dwarehouse.sketchup.com/model/a9e1e39d-c816-4833-9cce-f277edf43366/Roof-Study-10

With this case the fascia is at two levels.  At the back corner on roof plane A you have what I call a 3/4 Hip (kind of hybrid between a half hip and a hip, one side is a hip and the other is technically a half hip).  This causes the fascia line to rise by 24".

Where roof plane E meets roof plane D, you have one roof plane dying into the other and creating a "Flying Valley" and the other roof plane terminates at the wall below (a partial gable end?).

I guess I was wrong there are "flying valleys" after all.

The problem with trying to construct this particular example with my proposed secondary roof module is that its a little more complicated than that.  Rather than two separate roof assemblies the roofs are technically merged.  Also the 3/4 Hip configuration kind of requires that the roof assemblies are one construct.

This example really has me scratching my head right now.

What does jump out at me is that when you are dealing with an inside corner (angle between walls is greater than 180 deg.) the roof planes die into each other creating a partial gable and a flying or hanging valley.

When you have an outside corner (angle between the walls is less than 180 deg.) you then end up with a 3/4 hip.  Two additional solutions might be a gable or half hip with unequal legs.  If you were to keep making the setback of the half hip larger eventually it would degenerate into the 3/4 hip where one leg is now a hip roof.
#1057
Version 2.5.6 - 10.11.2019
- Added gutters for complex roofs.



View model here:

https://3dwarehouse.sketchup.com/model/83e51761-40b1-496f-b7bf-f06341aec044/Complex-Roof-with-Gutters

On this particular model I've employed a vertical offset of 1" and a gutter extension of 1.5" with a K5 style gutter, other gutter styles available.

I have not enabled downspouts yet as I need to come up with a better system for handling these.  I think I have a new system figured out but I need to work on the details before I'm ready to implement it.
#1058
First look at a gutter fully wrapping a complex (hip) roof:



Note the 3/4" offset from the sub-fascia since I have soffit and fascia enabled.  The 3/4" thick fascia is not drawn yet, hence the gap.

I've also set my vertical offset to 1" for the gutter.
#1059
Tutorial 16 - Introduction to Complex Roofs (19:42 min.)



I did forget to mention the "Edit Outline" function which can be initiated by right clicking on the roof assembly.  However, if you have a number of customized roof planes the results may become unpredictable, especially if the the outline is dramatically changed.  The feature will need some further refinement.
#1060
I've also been giving some thought to gutters.  If there are no half hip or gable conditions the gutter will wrap completely around the roof.

Otherwise the gutter will be broken into one or more sections.

Downspouts are more of an issue.  With a complex roof the positioning of downspouts needs to be more customizable.  I would like to implement a system where the user can select standard locations to position downspouts along a gutter run.  For instance at either end or at the middle, this should provide enough flexibility for most situations.
#1061
I'm now at the stage where I am beginning to work through my algorithms for the actual framing of the roof (ie. rafters, ridges, hips and valleys).  I begin by breaking down the edges of the roof so that I can determine which are hips, valleys, rakes, flying hips etc...  I also want to actually label each as such so when it comes time to dump all of this into the estimating module there is some order to it.



If you look closely at a roof primitive and the edges that constitute that primitive, immediately a number of things jump out at you:

1.)  All of the horizontal edges that are at the same Z height as the top fascia line are roof perimeter edges or "fascia edges".  We do have to make an exception for the half hip though, since its fascia edge will be elevated above the eave height. 

2.) All of the edges with vertices below the fascia Z height are irrelevant and we won't be needing those.

3.)  If we look at all the edges coming off of the perimeter vertices (we can find those easily enough by comparing against our perimeter points array) it is apparent that the inside angle between two fascia edges will determine whether the edge is a valley or a hip.  If the angle is less than 180 deg. then it is a hip.  if the angle is greater than 180 deg. it is a valley.  If the edges belong to a gable or half hip roof plane then they will be rake edges, rather than hips or valleys.

4.)  Next we grab all of the remaining edges where the height of the start and end vertices are equal.  These will form ridges.  An exception must be made for dutch gable and the half hip.  So it is best that we eliminate those edges first.

5.) Fortunately, there are no such thing as flying valleys, only flying hips.  By process of elimination the remaining edges will all be flying hips.  Flying hips are interesting because they always begin where a valley and ridge intersect and they end either intersecting another hip/flying hip at a ridge or at a peak with possibly multiple hips coming together at a point.

We basically dump each edge in the primitive into a hash so we have ourselves a quick lookup table for each edge that we can access it for future operations (ie. cutting rafters).

When the roof corner angles are all orthogonal (90 deg. or 270 deg.) the algorithm for the rafter framing should be fairly simple.  However when you throw in non-orthogonal angles (ie. octagon roofs) things become more complicated and there needs to be some logic to deal with these scenarios specifically.

Another reason that I need to classify the edges is that the width of the valleys, hips and ridges may not be equal, which will impact the trimming of the rafters as they intersect these members.

And that is all the magic there is to it.  I think the key breakthrough I had back in May (when I figured out my straight skeleton algorithm) was that I realized that once I somehow generated the roof primitive the rest would easily fall out.  Previously, I was trying to mathematically calculate  all of these vertices and edges, which turned out to be incredibly difficult and ultimately a dead end.

I now have a coherent plan of attack.
#1062
I'm starting to see the number of new licenses per month accelerating.  This tells me that the plugin(s) are becoming more widely known, and also as they further mature, they are becoming an ever more viable alternative to other similar design softwares.  Now is the time to step on the gas and pick up the pace of the development even further.  Nothing scares me more than providing an inferior or defective product to my customers, and I realize that the plugins are still far from the polished, comprehensive and professional tools that I would like to see them become. 
#1063
I think the complex roof will be a welcome addition once I have moved the ball a bit further.  Testing the plugin suite combined with the complex roofs is quite satisfying but it does make me realize that so much more still needs to be done, not only with the roofs but also with the walls and other features (ie. porches, decks, steps etc...)



View model here:

https://3dwarehouse.sketchup.com/model/27993846-6a5c-48be-a762-bc139be925ac/Test-House-5

As they say the devil is in the details and there can be a lot of details with these residential (and commercial) structures.

I'm now 4 years into these plugins (the first iteration of the Truss plugin was released on 10/07/2015), well technically only 1.5 years full time.  I think I've made a fairly sizable dent, but looking at what still remains to be done, I'm not sure I even see an end in sight.

I beginning to warm up to the idea that I may need some programming help (perhaps even partners).  If you're familiar with the SketchUp API and interested in possibly getting involved in the development of these plugins, give me a shout I would be interested in talking with you.
#1064
Version 2.5.5 - 10.10.2019
- Added sub-fascia and rakeboards for complex roofs.





View model here:

https://3dwarehouse.sketchup.com/model/33431c47-70f0-4fd9-9456-057bd4747255/Complex-Roof-with-Sub-fascia-and-Rake

I've eliminated the FLUSH option and only kept the BEVEL and DROP option for sub-fascia.  I don't know that the FLUSH option ever really made any sense.  If enough people complain I can always bring it back.

We have enough "real" geometry now to show the basic outline of the roof.  I will next go after the soffit and fascia and then the gutters.  I'm still thinking about downspouts, a method to customize their placement makes the most sense.

I may have to take a break from the code for a couple of days (not really excited about that) as I have some traveling to do.
#1065
Version 2.5.4b - 10.09.2019
- Fixed a bug with non-orthogonal roof plane labels for complex roofs.
- Resolved some minor bugs and stability issues with half hip and dutch gable roof options with complex roofs.



View model here:

https://3dwarehouse.sketchup.com/model/f09f35f6-eb27-4a3e-8d49-3f6af9856ad2/Turret-Test-2

If you are BETA testing the complex roof module I highly advise upgrading to this latest version as it addresses a problematic stability issue I was having with dutch gable roofs.