• Login
sketchucation logo sketchucation
  • Login
🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th 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 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
                    • J Offline
                      juju
                      last edited by 7 Dec 2015, 07:40

                      @medeek said:

                      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.

                      Coding related queries will probably be addressed a lot faster if you post them in the developers section of the forum?

                      http://sketchucation.com/forums/viewforum.php?f=180

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

                      1 Reply Last reply Reply Quote 0
                      • M Offline
                        medeek
                        last edited by 7 Dec 2015, 13:22

                        Version 1.1.8 - 12.07.2015

                        • Added Gable Rafter Roof.
                        • Advanced options enabled for gable rafter roofs (sub-fascia, outlookers, sheathing, and rakeboards).
                        • New submenu item and toolbar icon added for rafter roof type.
                        • Plugin divided into multiple files for ease of management.

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

                        Structural outlookers for this type of a roof are still somewhat of a question. If they are horizontal it makes sense to notch the gable rafter but what if they are vertical?

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

                        1 Reply Last reply Reply Quote 0
                        • M Offline
                          medeek
                          last edited by 9 Dec 2015, 04:14

                          Version 1.1.8 - 12.08.2015

                          • Structural Outlookers enabled for gable rafter roofs (vertical & horizontal).

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

                          Notice in this case I have left the gable rafter in place but notched clean through it, so essentially it is blocking. However, I have also given the option for removing the gable rafter entirely. You will also notice that the gable rafter is the same depth as the outlookers, when you choose "CUSTOM" for the gable end rafter it allows one to specify the depth of this rafter.

                          When structural outlookers are used in a vertical orientation it is common practice to have them bear directly on the double top plate of the gable wall (balloon framed to roof). If there is some configuration that is standard in your neck of the woods that I am missing please let me know. I am currently providing three different configurations for the gable end rafters.

                          I think I am ready to now attack the gable rafter roof with glulam beam.

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

                          1 Reply Last reply Reply Quote 0
                          • M Offline
                            medeek
                            last edited by 9 Dec 2015, 08:16

                            Admittedly the user interface is still very rough around the edges. One thing I've started working on is making the default values assume the last values inputted by the user. The code is fairly simple but updating all of the different menus is tedious because I have quite a few truss types now. This should make creating multiple truss sets in a document even quicker since parameters like roof pitch, overhangs and heel heights are typically the same for a given structure.

                            To test this functionality currently, download the latest version 1.1.8 and test the common truss types (Imperial Units). I will be updating all menus so that this functionality is present.

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

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

                              I'm wondering with my rafter roof if I should provide an option to draw ceiling joists?

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

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

                              1 Reply Last reply Reply Quote 0
                              • P Offline
                                pcmoor
                                last edited by 10 Dec 2015, 00:09

                                option to draw ceiling joists? That would be great and a collar tie and ridge tie option. Better still give the option to place them at a given height.

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

                                  Adding in ceiling joists is not a big deal but I don't want to add features that only complicate the plugin and the user experience. I could also make an option to offset the ceiling joist off of the wall top plate for a "raised" ceiling joist.

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

                                  1 Reply Last reply Reply Quote 0
                                  • M Offline
                                    medeek
                                    last edited by 10 Dec 2015, 14:06

                                    I'm getting ready to add in Glulam beams for rafter roofs. However, as I'm sorting out the details I'm trying to determine what would be the best way of modeling them. I would like to show the different plies but at the same time if someone wants to cut the beam, bevel it etc... I need to have it easily modifiable.

                                    At first I was going to make a component for a single ply and then copy multiple instances. The problem with that idea is a beveled cut would then be difficult to make.

                                    On a slightly different note I am wondering if there are standard metric sizes for Glulam Beams? I am using the 2015 AWC NDS Supplement for the standard US sizes. What similar standard exists for metric sizes?

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

                                    1 Reply Last reply Reply Quote 0
                                    • J Offline
                                      juju
                                      last edited by 10 Dec 2015, 14:29

                                      given the differing sizes used (just referencing what is available in South Africa, not to mention globally), it's possibly best to create options for how many laminates and give the sizing for it...

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

                                      1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        medeek
                                        last edited by 10 Dec 2015, 16:16

                                        The way I'm setting it up is the first menu takes you to an html web dialog (menu) that allows one to select from standard sizes from drop down menus. Then it automatically drops those values into the regular geometry UI were you can manually edit the depth, width and ply thickness of the glulam so the possibilities are infinite and complete customizable.

                                        I like the ability to offer a prompt that gives standard sizes since I feel that is where some of the value comes in my plugin. It saves the designer having to go to the books to look up an actual available size, its all right there at the click of a mouse.

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

                                        1 Reply Last reply Reply Quote 0
                                        • M Offline
                                          medeek
                                          last edited by 10 Dec 2015, 17:38

                                          Version 1.1.9 - 12.10.2015

                                          • Added Gable Rafter Roof with Glulam Beam (all advanced options enabled).

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

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

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

                                          Advertisement