3D Truss Models
-
Version 2.7.7 - 07.31.2020
- Fixed a bug with all assemblies when auto-assignment of materials is turned off in the global settings.
-
I've been giving some serious thought to the estimating module the last couple of days as I regroup and review my various todo lists.
I would like to spend a few days and update the estimating module to include rafter roofs. However, as I think about rafters and their lengths I am wondering what length exactly are we talking about? Do we want the actual (longest length of the member) or do we want a horizontal projection of the length? Typically both the top and bottom of a rafter has a bevel cut or even a compound bevel cut.
The ridge board on the other hand is very simple (generally). There are no beveled end cuts so things are straight forward.
-
I would think that for estimating you need the longest dimension of the rafter, then extrapolate to the nexthigher board length.
-
In a nutshell this is the basic algorithm for the rafter module for complex roofs:
Of course the devil is the details and there are a lot of details missing in this picture.
The overall picture seems simple enough however there are a number of special cases where rafters align with ridge boards and the over simplistic boolean subtraction algorithm will not suffice. I will need to try and account for all of those special cases.
The offset is a factor of the ridgeboard, hip rafter, valley rafter or flying hip rafter width. However, as you can see in the detail below when the roof planes are not the same (asymmetric) the offset will not be symmetric and must be calculated, hence the opposing roof plane (pitch) at that edge must be known/tracked. For a ridge board edge the offset will be given by:
offset = T/(1 + tanθ/tanA)
Since the offset is only a function of the ratio of the two opposing pitches this equation should also hold for hips and valleys as well. Note that when the angles are equal the equation degenerates to T/2 as one would expect.
Once all of the offsets are determined then it is merely a matter of generating the new points for the polygon drawn in blue highlighter. Once that polygon (points) is determined it becomes the cutting polygon for the rafters. Technically it is a boolean intersection rather than a subtraction, but that is all semantics.
-
pics took me back to my old drafting days
-
Version 2.7.8 - 10.09.2020
- Added a "Refresh Licensee Data" button within the License tab of the Global Settings.
-
Version 2.7.9 - 10.23.2020
- Fixed a "rounding error" bug for pyramid shaped hip rafter roofs.
-
Tutorial 19: Polygon Floor Workaround (21.46 min.)
Manual workaround until the upcoming Medeek Floor plugin is released.
-
View model used in Tutorial 19:
https://3dwarehouse.sketchup.com/model/f481ad29-cc0e-41d4-8d9d-661e30890e39/Polygon-Floor-Workaround
-
Version 2.8.0 - 02.10.2020
- Minor modification to the range of available pitches for valley truss sets.
-
Version 2.8.1 - 03.13.2021
- Standardized the naming convention of the plugin toolbars.
All of the Truss plugin toolbars will be prefixed with "Medeek", this will make it easier to find and sort through them, especially if you have a large number of extensions installed.
-
Version 2.8.2 - 03.24.2021
- Added additional pitches to the shed and shed w/ ledger draw menus.
-
Version 2.8.3 - 06.04.2021
- Added four additional parameters to the "User Interface" section of the General tab of the global settings. This allows the customization (colors) of the HTML menus and buttons.
This completes the user interface upgrade for all the major Medeek plugins. The Truss, Foundation and Electrical plugins are now up to par with the Wall plugin. Now on to bigger and better things, that task was very tedious but necessary.
-
Version 2.8.4 - 06.13.2021
- Added a "Regen" context menu item for all truss assemblies (eg. Common Trusses, Scissor Trusses, Timber Trusses etc...)
- Added an option for subtractive geometry into the General tab of the Global Settings.
- Sub-groups within truss assemblies can be made persistent and "subtractive" by naming these groups to (subtract1, subtract2, subtract3, etc...)
- Components within truss assemblies can also be made persistent and "subtractive" by naming the component instance to (subtract1, subtract2, subtract3, etc...)
Once I've tested this a bit a further and received more feedback I will enable the same subtractive option/feature for rafter roofs and complex roofs.
-
Version 2.8.4b - 06.13.2021
- Subtractive geometry can be constrained to only subtract from Sheathing and Cladding by setting the subtractive geometry parameter to "SHEATHING" in the global settings.
... and this is why feedback is important.
-
Version 2.8.5 - 06.14.2021
- Added stats (roof cladding) for common and monopitch truss roofs which can be analyzed within the Medeek Estimator (Wall Extension) module.
- Enabled net area calculations for roof sheathing and roof cladding statistics.
If cladding and/or sheathing is removed by subtractive geometry or features such as skylights, this information/data will be recorded and accounted for within the assembly. When the Medeek Estimator runs it will pick up the net and gross areas for cladding and sheathing and report the correct amounts. Previously only the gross areas were reported by the estimator.
-
The next few weeks is going to be primarily focused on the estimating module as it applies to truss and rafter assemblies.
With truss assemblies it is fairly cut and dried, I just need to report on basic items such as sheathing, cladding, drip edge and maybe listing how many common and gable trusses are in an assembly.
With rafter roofs however it becomes a lot more interesting (especially with an asymmetric hip roof) wherein each rafter length and quantity needs to be accounted for. Take for example the hip rafter roof below:
The various rafter/member types are:
Common, Hip, Hip Jack, Common (End), and Ridge Board
With a large roof the full listing will be quite large, especially when symmetry is not maintained.
My algorithm for determining the lengths of all the rafter types is fairly well defined and robust however the exact length of the hip rafter still eludes me. Since the primary concern is to determine the minimum length of the lumber required to construct the member I may just add on a simplified fudge factor so that it reaches this number however if possible I would prefer the exact length be calculated, as a matter of principle.
Based on my roof plane naming convention I can assign a label to each hip jack rafter (ie. JACK-BC1, JACK-BC2 etc...) The first letter will indicate the roof plane the jack is on and the second letter will indicate the roof plane that is adjacent to the jack. The number will indicate the order by length where #1 will be the longest jack in that series.
Each hip can also be labeled with two letters where the first letter indicate the roof plane to the left of the hip rafter and the second letter indicates the roof plane to the right of the hip rafter (ie. HIP-AC, HIP-CB etc...)
Common rafters will be designated similarly by roof plane: (ie. COMMON-A, COMMON-B, COMMON-C etc...) On roof planes C and D there will only be one common (end).
In a nutshell that will be my naming and counting convention for hip rafter roofs as far as the Medeek Estimator is concerned. If there are any problems with it then further refinement will be necessary. This same convention will be adopted for other rafter roof types as well as complex roofs.
Thoughts or concerns?
-
Version 2.8.6 - 06.18.2021
- Added a "Regen" context menu item for all rafter roof assemblies (eg. Gable, Hip, Shed etc...)
- Streamlined and improved the organization and naming convention of hip rafter roofs.
I originally coded the initial hip rafter roof module in Dec. of 2015, I then augmented this module with the asymmetric logic in May of 2019. As I was reviewing the code to determine how best to implement the Medeek Estimator with this type of roof it occurred to me that the symmetric variant of a hip roof is just a special case within the more complicated set of asymmetric roofs. I then condensed my code to only use the newer asymmetric roof modules when creating the geometry for the symmetric case (should have done it this way from the start).
Less code, simplified, efficient and now more organized. Also my statistical code will be the same regardless of the hip roof geometry so that just decreased my work by a half. Sometimes it pays to work smart and not hard.
-
Version 2.8.6b - 06.18.2021
- Streamlined and improved the organization and naming convention of gable rafter roofs.
- Enabled subtractive geometry for hip and gable rafter roofs.
-
Tutorial 20: Custom and Subtractive Geometry (17:18 min.)
Advertisement