3D Truss Models
-
The one unfinished item that is still gnawing at me is the whole straight-skeleton algorithm. It's not going to leave me alone until I solve it, so maybe I will have to work on this some more, even if for purely academic reasons.
-
After staring at this image for almost 3 hours I think I've devised the straight skeleton algorithm:
It goes something like this:
1.) The user selects a pre-drawn face.
2.) Examine each vertex of the polygon and determine if it is an outside or inside corner based on the angle between the lines on each side of the vertex. Inside corners are always valleys, outside corners are always hips.
3.) Assign a vector from each point extending inward based on the lines on each side of the vertex. The vector direction will always be the same direction as the vector sum of adjacent lines to the vertex.
4.) Create a new array of points moving along the vectors some set increment, there will initially be the same number of points in the new array as the number of vertices in the polygon.
5.) With the new array check for two conditions:
a.) Hip meets hip: Check the distance between points in the array that belong to a hip line, if they are close then use the intersection of the two line to establish the beginning of a ridge.
b.) Saddle Condition: Check valleys with vectors that are negative of each other, there is a possibility that a saddle condition may exist, the details of how to do this are a bit complicated but with orthogonal roofs only 4 saddle condition orientations are possible.
6.) If hip meets hip then create a new ridge vector from ridge point 1 from step 5a. The vector direction will be in the same direction as the vector sum of the two hips. Move a point along the vector incrementally checking against the new array of points until the ridge point is close to one of these other points. The intersect of the ridge line and the valley or hip line will form the 2nd ridge point.
7.) If the intersecting point is on a hip (2 hips) then the ridge is terminal. If the intersecting point is on (2) two valleys then the ridge is again terminal. If the intersecting point is on a single valley then a new vector is created at the 2nd ridge point with the direction 90 degrees from the valley vector, this new vector forms a new hip or flying hip and is added to the new array of points.
8.) In the case of a saddle condition the ridge is non-terminal at both ends. Flying hips will extend from both ridge end points at 90 degrees from each valley.
9.) Repeat steps 4 thru 8 until all points are exhausted from array.What was missing from my original algorithm was the identification of the saddle condition. It took a visual cue (the zigzag nature of the typical saddle) for me to realize that the saddle condition followed a specific pattern and could be easily quantified and a relatively simple check devised.
-
Go Medeek
I am currently backer #2 to date and proud to support Medeek given his:
- Engineering experience
- Energy and enthusiasm
- Spirit of never say "die"
Medeek will not let down his supporters and I wish him "Good luck" with his Kickstarter.
It is "value for money" to SketchUcation users and others who pledge if the target is reached.
(for Kickstarter link refer to Medeek posting above by medeek » Fri Jun 30, 2017 6:00 am) -
Here we go again:
https://www.kickstarter.com/projects/128644708/medeek-construction-plugin-library
After a dismal turnout for the original truss plugin campaign I never thought I would consider another kickstarter campaign. However, I have recently been contacted by various companies/organizations seeing if I could further develop the plugins so they could use them on a almost daily basis. Based on these conversations I can see there is a real need for this type of modeling and the momentum appears to be picking up.
Another critical piece is my own level of knowledge and skill set with the SketchUp API. After spending the last two years working through the truss plugin I feel that I've finally reached a point on the learning curve where I am able to bring a lot to bear and ultimately push the development to a critical mass.
My limiting factor now is only my time and in order to devote more time to the project I need some backing.
-
Added my (continued) support to your Kickstarter campaign!
-
Thank-you, to everyone who is supporting me on this latest Kickstarter Campaign. I'm approaching it with guarded optimism.
There is so much more that needs to be done I almost don't know where to start some days.
This morning I was thinking about a face/polygon tool for the floor joist / floor truss feature in the plugin. I now have all of the widgets in my tool belt to make this happen. That one should actually be a fairly easy endeavor, I might hit it hard this weekend and see if I can knock it out.
The potential complication with a polygon outline and floor trusses is how best to handle the chase that typically runs through the middle third of the truss. With a polygon outline you will have multiple groups of trusses at different spans, does the central chase typically line up across all these various truss spans. Any clarification or examples on what is typically seen in construction would be helpful.
With I-joists and solid sawn floor joists no such problem exists so it is a simple matter to set this up now that I have the boolean operation problem licked.
-
I was about to start work on the Wall Plugin and then the straight skeleton sucked me back in. The implementation is probably going to take some time since I'm in uncharted territory but should prove interesting.
-
Medeek Const Library - Kickstarter Status at: 1 Jul
https://www.kickstarter.com/projects/128644708/medeek-construction-plugin-library
-
I've been looking at some floor truss layouts and it appears that within a given truss set or assembly the chase will line up across multiple spans as I have shown here:
View model here:
https://3dwarehouse.sketchup.com/model/25d2af3a-a5e6-498f-b2eb-8f4b773927ca/Floor-Truss-Study-3
Generating a new truss component for each separate span is not too difficult, similar to generating a new step down hip truss component every 24". One thing to note is that a polygon outline will only work for floor trusses if the angles are all orthogonal, at least the bearing walls where the trusses terminate.
I'm a little unclear how to deal with the ladder trusses at the transition between different spans, perhaps someone has a 3D model or pictures giving me some clarity in these areas.
It took me about 15 minutes to create this complex floor truss set using the rectangular floor truss tool (3 separate truss sets) and the trim tool, not terrible but it would be so much better if I could achieve the same result in a matter of seconds with no manual editing.
Cutting holes in the floor and having the hole cutting tool able to regen the proper trusses is also a hot item related to this discussion. That would make the floor truss feature actually functional as a real world design tool.
Another issue is multiple chases within a truss set. One central chase seems the most typical but two chases positioned within the central third of the truss span also appears to be quite common. So far I have not seen more than two chases in a given floor truss span, probably for good reason. The ability to create two chases rather than just one is now on the "todo" list.
-
Tutorial 5: Hip Truss Sets (24:32 min.)
-
On my Kickstarter campaign there was a recent comment regarding the pricing of my plugins. I have been giving this some thought recently and I thought I might also share my remarks on the board as well:
I agree that there is certainly an argument that I charge too little for these plugins and I have wrestled some with this problem. Others have also privately messaged me or emailed me with similar remarks and recommended that I bump my prices, sometimes tenfold.
The current reasoning behind my low pricing structure can be summarized with the following points:
1.) All of these plugins are currently in a developmental phase. Unfortunately, I have not been able to exert my full time efforts at this development so progress has been slow. I find it hard to charge a "fair amount" for a product that in my mind is still flawed and imperfect. My "todo" list is currently about 60 items and written out covers about 2 pages. To charge a "professional" price requires that one provide a "professional" service or product, I don't feel like I'm there yet.
2.) I have looked at some of the competition such as Pluspec and others who charge considerably more than I do. Again the sophistication of the their product exceeds my own so the price differential is warranted. But more importantly I'm not a huge fan of pricey design software, that is what has led me to SketchUp in the first place. The SketchUp community in general has adopted this mindset (in my opinion) and I don't feel that they would get behind an expensive solution.
3.) I am also trying to keep the plugin within the reach of the casual user (DIY'er), someone who simply wants to model up a single house or garage for their own personal use. In some cases the trial version of the plugin(s) will work for that but I have recently limited it quite strictly so any serious design work will require a registered license.
4.) I have also considered a subscription model, but my own distaste of that licensing mode has kept me from going down that road. Once your purchase a software you should be able to use it indefinitely as it stands. Additional payment should only be required if you are requesting an update or added functionality.
5.) What better way to discourage copy cats and the competition to price it too low as to make it worth their while. No one in their right mind will try to recreate what I have done with trusses when the payback is so little and the effort is so large.
With all of that being said I do think that the sweet spot, which still meets the requirements of the above points, may still be a bit higher than what I am currently charging. I need to find the correct amount to charge so that the above points are carefully balanced with the fact that I need to be able to justify the amount of time and effort I spend in developing these products.
-
Good points. Nathan. I like your approach, Keeping it powerful but simple.
-
Medeek (aka Nathaniel Wilkerson)
I agree with your arguments Medeek.
As your software develops and has gained a "foothold" you can always
offer the "Pro Version" which will have applications suited for professional users
but at a "higher price".I also think you just "love construction engineering" and want to share it with the world
By dropping your "pebble" into the universe who knows where it will lead.Keep up the good work!
Your Kickstarter is "best value for money yet"! -
If I ever do build my office I was thinking of doing some sort of cedar siding and then putting my logo or some of my other designs on the exterior:
View model here:
https://3dwarehouse.sketchup.com/model/1bc480bd-0bc9-4f5a-b6fe-441d73c84183/Medeek-Office-with-Logo
Some of my other designs are here:
-
Medeek Const Library - Kickstarter Status at: 8 Jul
https://www.kickstarter.com/projects/128644708/medeek-construction-plugin-library
-
Version 1.9.4 - 07.08.2017
- Added energy/raised heels for triple howe truss (3 variant: wedge, slider and vertical w/ strut).
- Metal plate connectors now enabled for triple howe trusses.
Below would be a typical example of a 60' span using a triple howe truss.
However, in most cases where the design calls for taller walls one would probably go with a steel building or CMU block walls. This was the case on a building I designed about 10 years ago (Wasatch Building Supply, Utah) that had 20 ft. walls. Its too bad I don't have an interior photo showing the trusses inside the warehouse roof, its quite a sight to behold.
https://www.google.com/maps/@40.3417866,-111.7390708,82m/data=!3m1!1e3?hl=en
-
I'm trying to roll a new revision of the plugin but the Extension signing page is not working:
https://extensions.sketchup.com/en/developer_center/extension_signature
It won't generate the 2015 and earlier encryption for some reason, any one else notice this problem?
-
@medeek said:
...I'm not a huge fan of pricey design software, that is what has led me to SketchUp in the first place. The SketchUp community in general has adopted this mindset (in my opinion) and I don't feel that they would get behind an expensive solution.
3.) I am also trying to keep the plugin within the reach of the casual user (DIY'er), someone who simply wants to model up a single house or garage for their own personal use. In some cases the trial version of the plugin(s) will work for that but I have recently limited it quite strictly so any serious design work will require a registered license.
4.) I have also considered a subscription model, but my own distaste of that licensing mode has kept me from going down that road. Once your purchase a software you should be able to use it indefinitely as it stands. Additional payment should only be required if you are requesting an update or added functionality.
5.) What better way to discourage copy cats and the competition to price it too low as to make it worth their while. No one in their right mind will try to recreate what I have done with trusses when the payback is so little and the effort is so large.
just a few ideas i had, after reading your post:
you only think about the price user would have to pay for using your plugins, but it is not the only parameter; there is another one, as important, and it is how much money the user can make by using your plugin; so that the real price of your plugin is not the price the user pays, but the difference between the money he makes minus the price he paid
this leads me to another idea: writing code is fun, but it may be contradictory to the goal of making a business through coding; one have to be clear: if really it is about making a business through coding, development should be focused on what makes added value for the user, so that he might be willing to pay for the plugin.
your plugin is very specific to wood structure in USA; i work as a structural engineer in Europe, so i have some knowledge about wood structures, but i don't understand the words you use to explain the specificites of your plugin. If you want to make your audience larger, maybe a good idea would be to use more generic words and concepts.
Those are just ideas, i don't pretend anything, but i am puzzled by the contradiction between the amount of work you put in this plugin, and the low audience you get so far
-
Version 1.9.5 - 07.11.2017
- Added energy/raised heels for quad fink truss (3 variant: wedge, slider and vertical w/ strut).
- Metal plate connectors now enabled for quad fink trusses.
This concludes the updates needed for common trusses. I still have a number of updates for all the other truss types to bring them up to speed.
-
Medeek Const Library - Kickstarter Status at: 15 Jul
https://www.kickstarter.com/projects/128644708/medeek-construction-plugin-library
Advertisement