• Login
sketchucation logo sketchucation
  • Login
🤑 30% Off | Artisan 2 on sale until April 30th Buy Now

3D Truss Models

Scheduled Pinned Locked Moved Plugins
1.5k Posts 31 Posters 869.7k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    medeek
    last edited by 24 Nov 2015, 06:45

    Outlookers enabled under advanced roof options for Monopitch truss types.

    http://design.medeek.com/resources/images/truss_su21_800.jpg

    Also fixed all truss types so that the outlookers are measured from the bottom. I also added the option to include outlookers at the peak.

    Nathaniel P. Wilkerson PE
    Medeek Engineering Inc
    design.medeek.com

    1 Reply Last reply Reply Quote 0
    • M Offline
      medeek
      last edited by 24 Nov 2015, 08:18

      Does anyone have any good resources for working with dynamic components within the API? I really would like to make the top chords dynamic so that the overhang can be adjusted after the fact if necessary.

      Nathaniel P. Wilkerson PE
      Medeek Engineering Inc
      design.medeek.com

      1 Reply Last reply Reply Quote 0
      • M Offline
        medeek
        last edited by 25 Nov 2015, 11:18

        Version 1.1.4 - 11.25.2015
        Structural outlookers (vert. & horz.) enabled under advanced roof options for Common (Fink) truss type.
        Structural outlookers (vert. & horz.) enabled under advanced roof options for Common (Fink) truss type with raised heel (vertical w/ strut).

        http://design.medeek.com/resources/images/truss_su22_800.jpg

        Notice that when structural outlookers are selected the top chord of the gable end truss is dropped accordingly. This may look simple now that I've got it working (at least for one type of common truss) but the amount of logic required to make sure everything comes out right is somewhat mind boggling.

        Nathaniel P. Wilkerson PE
        Medeek Engineering Inc
        design.medeek.com

        1 Reply Last reply Reply Quote 0
        • P Offline
          pbacot
          last edited by 25 Nov 2015, 15:54

          Nice work. It is scary how much you are able to do and what goes into all this. The clean output is what we see--and so many options worked in.

          For texture I think you also have to look into ruby to find out how to orient it the way you want. It doesn't matter what texture you use.

          There are some good NPR wood textures in the Sketchucation store, but I am not sure if it contains one that would give you the fresh douglas fir look.

          MacOSX MojaveSketchUp Pro v19 Twilight v2 Thea v3 PowerCADD

          1 Reply Last reply Reply Quote 0
          • M Offline
            medeek
            last edited by 25 Nov 2015, 22:02

            Thank-you for the vote of confidence. Sometimes I feel like I am digging a bit deep when it comes to all of these options it certainly adds to the amount of code required and the complexity. Some options are also dependent on others so it becomes a tangled web that requires careful analysis to mare sure that certain options can still work when others are not enabled. The good news is that I've probably got most of the options added to the fink truss that I will ever add so further complexity should not be too much of a problem. Now it is just a matter of adding different truss types, and other related items, more breadth and less depth.

            If it can be mathematically modeled then it can be programmed into the plugin. What you are seeing on your screen or in SketchUp is a visual representation of a mathematical model of the truss group and associated framing.

            Nathaniel P. Wilkerson PE
            Medeek Engineering Inc
            design.medeek.com

            1 Reply Last reply Reply Quote 0
            • M Offline
              medeek
              last edited by 26 Nov 2015, 01:30

              Version 1.1.5 - 11.25.2015

              • Added Double Fink common truss type.
              • Structural outlookers (vert. & horz.) enabled under advanced roof options for Common (Double Fink) truss type.

              http://design.medeek.com/resources/images/truss_su23_800.jpg

              Nathaniel P. Wilkerson PE
              Medeek Engineering Inc
              design.medeek.com

              1 Reply Last reply Reply Quote 0
              • M Offline
                medeek
                last edited by 27 Nov 2015, 00:05

                Version 1.1.6 - 11.26.2015

                • Added Fan and Mod Queen common truss types.
                • Structural outlookers (vert. & horz.) enabled under advanced roof options for Common (Fan & Mod Queen) truss types.

                http://design.medeek.com/resources/images/truss_su24_800.jpg

                Four more common truss types still need to be added:

                • Double Howe (6/6)
                • Mod Fan (8/4)
                • Triple Fink (8/7)
                • Triple Howe (8/8)

                For very large buildings one could also consider:

                • Quad Fan (10/5)
                • Quad Fink (10/9)
                • Quad Howe (10/10)
                • Quin Fan (12/6) ...

                A quad fink truss (10/9) with a raised heel (slider):

                http://www.selecttrusses.com/wp-content/uploads/Ag1.jpg

                Nathaniel P. Wilkerson PE
                Medeek Engineering Inc
                design.medeek.com

                1 Reply Last reply Reply Quote 0
                • J Offline
                  juju
                  last edited by 27 Nov 2015, 07:31

                  Wow, seriously, wow. How is the manual coming along?

                  Save the Earth, it's the only planet with chocolate.

                  1 Reply Last reply Reply Quote 0
                  • M Offline
                    medeek
                    last edited by 27 Nov 2015, 19:47

                    What format would be the best for the manual? I am kind of thinking along the lines of HTML documentation similar to the way SketchUp help files are organized but I'm still thinking about this.

                    The biggest problem right now is the plugin has been rapidly progressing and evolving so its a bit hard to set out a manual that won't need major revisions/rewrite in the very near future.

                    I'm thinking though in another month or two I should have something together.

                    Nathaniel P. Wilkerson PE
                    Medeek Engineering Inc
                    design.medeek.com

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      pilou
                      last edited by 27 Nov 2015, 22:30

                      You must also think for Multi-languages of your UI ! 😉

                      Frenchy Pilou
                      Is beautiful that please without concept!
                      My Little site :)

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        medeek
                        last edited by 28 Nov 2015, 13:33

                        Valley Sets are here:

                        http://design.medeek.com/resources/images/truss_su25_800.jpg

                        Proceed with caution though I just put it together so it is still a bit rough around the edges. Further testing and refinement is necessary but it seems to be working fairly decently.

                        Currently the main roof plane and two points need to be selected rather carefully I'm not sure I can do much about that, if not I will need to document in some detail how to use this function.

                        Nathaniel P. Wilkerson PE
                        Medeek Engineering Inc
                        design.medeek.com

                        1 Reply Last reply Reply Quote 0
                        • M Offline
                          medeek
                          last edited by 28 Nov 2015, 22:10

                          @pilou said:

                          You must also think for Multi-languages of your UI ! 😉

                          I've been thinking about adding some global settings so one can set language, defaults and other misc. items.

                          Nathaniel P. Wilkerson PE
                          Medeek Engineering Inc
                          design.medeek.com

                          1 Reply Last reply Reply Quote 0
                          • M Offline
                            medeek
                            last edited by 29 Nov 2015, 10:50

                            I've addressed a few bugs with the valley set algorithm and tested it in as many configurations and orientations as possible. It it more solid now. I suggest downloading the latest version of 1.1.7 that I just uploaded to the server.

                            Note that the plane of the main roof that is selected needs to be a rectangular shape at the moment to properly register (1st point selected). I usually just select the top face of one of the top chords of the trusses. The second point should be at the centerline of the last truss of the secondary roof line and at the ridge (peak) of this truss, the third point is also at the ridge (peak) but at a point towards the main roof. I really need to put the manual together to document this feature and how to use it, or at least a video.

                            I also updated the geometry algorithm slightly so that it adds additional verts a 48" o/c when the valley trusses get too large. This is keeping in line with standard practice on these types of valley sets. I can also make this an input if someone requests that it be such.

                            This update was not that complicated (valley sets) other than trying to figure out how to place the set based only on a plane and two points. Obtaining this information and then figuring out the math and code to compute the vertical distance between the bottom of the first valley truss where it rests on the main roof plane and the peak of the secondary roof line was the slightly painful part. The actual geometry of the valley set was surprisingly easy to code.

                            The real challenge will begin when I try to add some hip sets, I may push that out for awhile.

                            Nathaniel P. Wilkerson PE
                            Medeek Engineering Inc
                            design.medeek.com

                            1 Reply Last reply Reply Quote 0
                            • M Offline
                              medeek
                              last edited by 29 Nov 2015, 23:21

                              Here is an example of a large valley set with a Monopitch Primary Roof and a Common Secondary Roof. Notice the pitch of the monopitch roof is 6:12 while the secondary roof is 12:12.

                              http://design.medeek.com/resources/images/truss_su26_800.jpg

                              Rather than calculate the overhang for the secondary roof it is just as easy to to trim the truss tails back and adjust the fascia so that it lines up with the fascia of the main roof after the fact.

                              Even with all the automation of certain tasks there is still a good bit of manual editing required when complex roof lines are involved however I find that SketchUp has a very intuitive interface for trimming solids and once the basic geometry is there the rest is usually not too much trouble.

                              Nathaniel P. Wilkerson PE
                              Medeek Engineering Inc
                              design.medeek.com

                              1 Reply Last reply Reply Quote 0
                              • M Offline
                                medeek
                                last edited by 30 Nov 2015, 03:19

                                With the main roof sheathing:

                                http://design.medeek.com/resources/images/truss_su27_800.jpg

                                http://design.medeek.com/resources/images/truss_su28_800.jpg

                                Nathaniel P. Wilkerson PE
                                Medeek Engineering Inc
                                design.medeek.com

                                1 Reply Last reply Reply Quote 0
                                • J Offline
                                  juju
                                  last edited by 30 Nov 2015, 14:58

                                  I think the most universal is probably to have the manual in PDF?

                                  Save the Earth, it's the only planet with chocolate.

                                  1 Reply Last reply Reply Quote 0
                                  • M Offline
                                    medeek
                                    last edited by 30 Nov 2015, 22:36

                                    I think I'll create in MS Word and then save it into PDF.

                                    Nathaniel P. Wilkerson PE
                                    Medeek Engineering Inc
                                    design.medeek.com

                                    1 Reply Last reply Reply Quote 0
                                    • M Offline
                                      medeek
                                      last edited by 6 Dec 2015, 23:21

                                      This revised code seems to work:

                                      
                                      module Medeek_Engineering_Inc_Extensions
                                      
                                      	module MedeekTrussPluginModuleLoader
                                      
                                      
                                      	require 'sketchup.rb'
                                      	require 'extensions.rb'
                                      	require 'langhandler.rb'
                                      
                                      	# Show the Ruby Console at startup so we can
                                      	# see any programming errors we may make.
                                      	# SKETCHUP_CONSOLE.show
                                      	
                                      
                                      
                                      
                                      	this_dir=File.dirname(__FILE__)
                                      	# Fix for ruby 2.0
                                      	if this_dir.respond_to?(;force_encoding)
                                      		this_dir=this_dir.dup.force_encoding("UTF-8")
                                      	end
                                      	PATH=this_dir
                                      	entries=Dir.entries(this_dir)
                                      	ext=".rbs"
                                      
                                      
                                      	# Add a toolbar item to launch our plugin.
                                      
                                      	toolbar = UI;;Toolbar.new "Medeek Truss"
                                           	
                                           	cmd = UI;;Command.new("Draw Roof Truss") {
                                      
                                      		Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_TRUSS.rbs"))
                                      		Medeek_Engineering_Inc_Extensions;;MedeekTrussPlugin;;MedeekMethods.roof_truss_family_menu
                                           	}
                                          		cmd.small_icon = "images/mdkplg_tool_icon16_2.png"
                                           		cmd.large_icon = "images/mdkplg_tool_icon24_2.png"
                                           		cmd.tooltip = "Medeek Truss"
                                          		cmd.status_bar_text = "Draw Roof Truss"
                                          		cmd.menu_text = "Roof Truss"
                                           		toolbar = toolbar.add_item cmd
                                           		# toolbar.show
                                      
                                      	cmd2 = UI;;Command.new("Draw Floor Truss") {
                                      
                                             		Sketchup.load(File.join(this_dir,"MEDEEK_FLOOR_TRUSS.rbs"))
                                      		Medeek_Engineering_Inc_Extensions;;MedeekTrussPlugin;;FloorTruss;;MedeekMethods.floor_truss_family_menu
                                           	}
                                          		cmd2.small_icon = "images/mdkplg_tool_icon16_3.png"
                                           		cmd2.large_icon = "images/mdkplg_tool_icon24_3.png"
                                           		cmd2.tooltip = "Medeek Truss"
                                          		cmd2.status_bar_text = "Draw Floor Truss"
                                          		cmd2.menu_text = "Floor Truss"
                                           		toolbar = toolbar.add_item cmd2
                                           		# toolbar.show
                                      
                                      	cmd3 = UI;;Command.new("Draw Truss Set") {
                                      
                                             		Sketchup.load(File.join(this_dir,"MEDEEK_TRUSS_SET.rbs"))
                                      		Medeek_Engineering_Inc_Extensions;;MedeekTrussPlugin;;TrussSet;;MedeekMethods.truss_set_family_menu
                                           	}
                                          		cmd3.small_icon = "images/mdkplg_tool_icon16_4.png"
                                           		cmd3.large_icon = "images/mdkplg_tool_icon24_4.png"
                                           		cmd3.tooltip = "Medeek Truss"
                                          		cmd3.status_bar_text = "Draw Truss Set"
                                          		cmd3.menu_text = "Truss Set"
                                           		toolbar = toolbar.add_item cmd3
                                           		# toolbar.show
                                      
                                      	cmd4 = UI;;Command.new("Draw Roof Rafters") {
                                      
                                             		Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_RAFTERS.rbs"))
                                      		Medeek_Engineering_Inc_Extensions;;MedeekTrussPlugin;;RoofRafters;;MedeekMethods.roof_rafters_family_menu
                                           	}
                                          		cmd4.small_icon = "images/mdkplg_tool_icon16_5.png"
                                           		cmd4.large_icon = "images/mdkplg_tool_icon24_5.png"
                                           		cmd4.tooltip = "Medeek Truss"
                                          		cmd4.status_bar_text = "Draw Roof Rafters"
                                          		cmd4.menu_text = "Roof Rafters"
                                           		toolbar = toolbar.add_item cmd4
                                           		toolbar.show
                                      
                                      
                                      	# Add a menu item to launch our plugin.
                                      
                                      	submenu = UI.menu("Plugins").add_submenu("Medeek Truss")
                                      	submenu.add_item(cmd)
                                      	submenu.add_item(cmd2)
                                      	submenu.add_item(cmd3)
                                      	submenu.add_item(cmd4)
                                      	
                                      
                                      
                                      	end
                                      end
                                      

                                      Nathaniel P. Wilkerson PE
                                      Medeek Engineering Inc
                                      design.medeek.com

                                      1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        medeek
                                        last edited by 6 Dec 2015, 23:24

                                        Now the largest file is only about 12,000 lines, a bit more manageable. If I spend some time cleaning it up and compressing redundant sections I can probably get it to half that amount.

                                        Nathaniel P. Wilkerson PE
                                        Medeek Engineering Inc
                                        design.medeek.com

                                        1 Reply Last reply Reply Quote 0
                                        • M Offline
                                          medeek
                                          last edited by 6 Dec 2015, 23:26

                                          Up until now I have maintained all of the code in one large file. However I keep adding more features so I need to split it out into multiple files to keep things manageable. My new load .rb file is attempting to use a method I found on another board but I'm getting a situation where the first click on the icon loads the plugin as it should however subsequent clicks on the menu or icon do nothing.

                                          The problem is that after the menu item runs once it will not fire again.
                                          Here is a snippet of the Medeek_Load.rb file :

                                          module Medeek_Engineering_Inc_Extensions
                                          
                                          	module MedeekTrussPluginModuleLoader
                                          
                                          	# Show the Ruby Console at startup so we can
                                          	# see any programming errors we may make.
                                          	# SKETCHUP_CONSOLE.show
                                          
                                          
                                          	this_dir=File.dirname(__FILE__)
                                          	# Fix for ruby 2.0
                                          	if this_dir.respond_to?(:force_encoding)
                                          		this_dir=this_dir.dup.force_encoding("UTF-8")
                                          	end
                                          	PATH=this_dir
                                          	entries=Dir.entries(this_dir)
                                          	ext=".rbs"
                                          
                                          
                                          	# Add a toolbar item to launch our plugin.
                                          
                                          	toolbar = UI::Toolbar.new "Medeek Truss"
                                          
                                          cmd = UI::Command.new("Draw Roof Truss") {
                                          
                                          		Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_TRUSS.rbs"))
                                          }
                                          	cmd.small_icon = "images/mdkplg_tool_icon16_2.png"
                                          	cmd.large_icon = "images/mdkplg_tool_icon24_2.png"
                                          	cmd.tooltip = "Medeek Truss"
                                          	cmd.status_bar_text = "Draw Roof Truss"
                                          	cmd.menu_text = "Roof Truss"
                                          	toolbar = toolbar.add_item cmd
                                          	# toolbar.show
                                          
                                          	cmd2 = UI::Command.new("Draw Floor Truss") {
                                          
                                          	Sketchup.load(File.join(this_dir,"MEDEEK_FLOOR_TRUSS.rbs"))
                                          }
                                          	cmd2.small_icon = "images/mdkplg_tool_icon16_3.png"
                                          	cmd2.large_icon = "images/mdkplg_tool_icon24_3.png"
                                          	cmd2.tooltip = "Medeek Truss"
                                          	cmd2.status_bar_text = "Draw Floor Truss"
                                          	cmd2.menu_text = "Floor Truss"
                                          	toolbar = toolbar.add_item cmd2
                                          	# toolbar.show
                                          
                                          	cmd3 = UI::Command.new("Draw Truss Set") {
                                          
                                          	Sketchup.load(File.join(this_dir,"MEDEEK_TRUSS_SET.rbs"))
                                          }
                                          	cmd3.small_icon = "images/mdkplg_tool_icon16_4.png"
                                          	cmd3.large_icon = "images/mdkplg_tool_icon24_4.png"
                                          	cmd3.tooltip = "Medeek Truss"
                                          	cmd3.status_bar_text = "Draw Truss Set"
                                          	cmd3.menu_text = "Truss Set"
                                          	toolbar = toolbar.add_item cmd3
                                          	toolbar.show
                                          
                                          	cmd4 = UI::Command.new("Draw Roof Rafters") {
                                          
                                          	Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_RAFTERS.rbs"))
                                          }
                                          	cmd4.small_icon = "images/mdkplg_tool_icon16_5.png"
                                          	cmd4.large_icon = "images/mdkplg_tool_icon24_5.png"
                                          	cmd4.tooltip = "Medeek Truss"
                                          	cmd4.status_bar_text = "Draw Roof Rafters"
                                          	cmd4.menu_text = "Roof Rafters"
                                          	toolbar = toolbar.add_item cmd4
                                          	toolbar.show
                                          
                                          
                                          	# Add a menu item to launch our plugin.
                                          
                                          	submenu = UI.menu("Plugins").add_submenu("Medeek Truss")
                                          	submenu.add_item("Roof Truss") { Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_TRUSS.rbs")) }
                                          	submenu.add_item("Floor Truss") { Sketchup.load(File.join(this_dir,"MEDEEK_FLOOR_TRUSS.rbs")) }
                                          	submenu.add_item("Truss Set") { Sketchup.load(File.join(this_dir,"MEDEEK_TRUSS_SET.rbs")) }
                                          	submenu.add_item("Roof Rafters") { Sketchup.load(File.join(this_dir,"MEDEEK_ROOF_RAFTERS.rbs")) }
                                          	
                                          
                                          
                                          	end
                                          end
                                          

                                          Nathaniel P. Wilkerson PE
                                          Medeek Engineering Inc
                                          design.medeek.com

                                          1 Reply Last reply Reply Quote 0
                                          • 1
                                          • 2
                                          • 6
                                          • 7
                                          • 8
                                          • 9
                                          • 10
                                          • 74
                                          • 75
                                          • 8 / 75
                                          8 / 75
                                          • First post
                                            153/1498
                                            Last post
                                          Buy SketchPlus
                                          Buy SUbD
                                          Buy WrapR
                                          Buy eBook
                                          Buy Modelur
                                          Buy Vertex Tools
                                          Buy SketchCuisine
                                          Buy FormFonts

                                          Advertisement