sketchucation logo sketchucation
    • 登入
    ℹ️ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    3D Truss Models

    已排程 已置頂 已鎖定 已移動 Plugins
    1.5k 貼文 31 Posters 869.7k 瀏覽 30 Watching
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • medeekM 離線
      medeek
      最後由 編輯

      I've been thinking about connecting roofs together, for example a gable roof connecting to another building where the roof meets the wall. For this type of scenario it might be useful to have an option for a cutoff end (gable end with no overhang etc... I'm not sure exactly what to call this.

      P.S.

      It's funny where my thoughts take me when I take a breather from the code, I guess even when I'm on break I'm still contemplating what needs to be done with these plugins. I just realized that I can enable one additional option in addition to all the other options (ie. gable, dutch gable, half hip). I will call this a "CONNECTION". Basically you will be able to connect one roof to another (secondary roof). However, rather than having a separate module for the secondary roof I just realized that with the connection option complex roofs can become secondary roofs, so an additional module is not necessary.

      I will need to give this considerably more thought but I think this direction I need to go. There will need to be some options for connection type (another roof, a wall or a roof and a wall). I will need to explore the possibilities, this is going to get interesting.

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

      1 條回覆 最後回覆 回覆 引用 0
      • medeekM 離線
        medeek
        最後由 編輯

        If things weren't complicated enough with complex roofs, they just got a lot more complicated.

        Rather than having two or three different types of connections I think it makes more sense to sub divide it into two additional options and then a connection is simply a connection. You end up with two additional options: TERMINAL and CONNECTION

        With terminal it is very similar to a gable end however the roof just ends, no overhangs, no outlookers etc... This would be used when framing the roof up to a wall that is parallel to the roof edge. Theoretically this same type of roof could be achieved with the CONNECTION option however it would remove the requirement for selecting a primary roof (or solid) to connect to, and just simply end the roof in a squared off fashion.

        The CONNECTION option is a bit more interesting. To get the results that we want we need to make this end treatment as general as possible. One could potentially connect to any group or component in the model or to another Medeek complex roof assembly. I will need a tool within a tool which allows the user to select the primary roof/object that they would like to connect to.

        1. If the selected group is a Medeek roof assembly then the primary roof will also store that it is being connected to by a secondary roof, and the secondary roof will list the instance name of the primary roof it is connecting to.

        2. If the selected group or component (must be a solid) is a non-Medeek roof assembly it will also store and list the instance name of the primary object that the roof is connecting to.

        Here are shown a couple of possible connection scenarios:

        http://design.medeek.com/resources/trussplugin/images/truss_su554_800.jpg

        Connecting to another complex roof at an oblique angle and below the fascia line.

        http://design.medeek.com/resources/trussplugin/images/truss_su553_800.jpg

        Connecting to a non-Medeek roof (solid group).

        To keep this option from completely spiraling out of control we must make the assumption that the only roof planes impacted by the connection will be the two adjacent and orthogonal roof planes that are either side of the connection roof edge (the connecting roof plane technically does not exist). I'm sure there will be users who try to subvert this requirement in certain design situations, so some logic to check this limitations may need to be implemented.

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

        1 條回覆 最後回覆 回覆 引用 0
        • medeekM 離線
          medeek
          最後由 編輯

          When you are connecting a roof into an arbitrary solid (ie. walls) you may end up with something like this:

          http://design.medeek.com/resources/trussplugin/images/truss_su555_800.jpg

          View model here:

          Link Preview Image
          3D Warehouse

          3D Warehouse is a website of searchable, pre-made 3D models that works seamlessly with SketchUp.

          favicon

          (3dwarehouse.sketchup.com)

          You will notice I've modified the roof primitive to emphasize the gable overhang. The key takeaway is that a roof connection should be treated like a gable end condition but with a certain amount subtracted away. That way if you do have a situation like the one shown, you will get your rakeboard etc... The trick of course is too make sure the logic is smart enough to identify these potential configurations and then adjust for them.

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

          1 條回覆 最後回覆 回覆 引用 0
          • medeekM 離線
            medeek
            最後由 編輯

            First look at roof sheathing:

            http://design.medeek.com/resources/trussplugin/images/truss_su556_800.jpg

            I've exploded the model so you can get a better idea of all the elements in the assembly.

            Note, that the roof outline group will always be at the same Z height as your input points or (top of wall plate).

            Due to overhangs and your roof pitch the roof primitive may extend below the outline, hence the reason I hide the roof primitive layer when initiating the edge move tool or roof plane edit tool.

            For cladding I still need to do some work due to the roof extension parameter, this complicates the geometry slightly since the cladding is not based on the same face (edge points) as the sheathing is.

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

            1 條回覆 最後回覆 回覆 引用 0
            • medeekM 離線
              medeek
              最後由 編輯

              First look at cladding with the cladding extension active:

              http://design.medeek.com/resources/trussplugin/images/truss_su557_800.jpg

              As you can see asymmetric roofs tend to complicate things slightly but regardless the correct lateral extension is achieved (0.75"). I will need to go back into the other rafter roof modules and correct this feature, I don't think I have it quite right.

              Because of the possibility of fascia and the cladding extension parameter, the cladding becomes a bit more involved not only for hip roofs but also along the rake edges of dutch gables, gables and half hips. All of these roof end conditions have unique solutions when it comes to cladding, and unfortunately it requires a fair bit of logic and coding on my part to make it happen.

              The interesting thing about what I do is not so much about the programming, but more the manipulation of the data and the topological and geometric problems I am able to solve, with nothing more than a well written API, some ruby code, and at times some serious mental contortions. I have certainly become well acquainted with the Geom module in the SketchUp API.

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

              1 條回覆 最後回覆 回覆 引用 0
              • medeekM 離線
                medeek
                最後由 編輯

                That cladding extension parameter was a real pain. However, as you can see in the image below it is now working for the half hip configuration:

                http://design.medeek.com/resources/trussplugin/images/truss_su558_800.jpg

                Cladding is now complete, thankfully

                I'm thinking about working on the roof plane labels next and then on to the sub-fascia.

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

                1 條回覆 最後回覆 回覆 引用 0
                • medeekM 離線
                  medeek
                  最後由 編輯

                  First look at labels with cladding and sheathing:

                  http://design.medeek.com/resources/trussplugin/images/truss_su559_800.jpg

                  View model here:

                  Link Preview Image
                  3D Warehouse

                  3D Warehouse is a website of searchable, pre-made 3D models that works seamlessly with SketchUp.

                  favicon

                  (3dwarehouse.sketchup.com)

                  I need to add a scale factor for the text size which will allow the user to adjust the size of the text for the labels. I actually need this for the entire plugin, not just this module.

                  The other issue is ordering the roof planes which may or may not be the same as the number of roof edges. Note, that sometimes roof edges are collinear and if their other parameters are the same (ie. pitch, overhang etc...) the roof planes will merge into one. For example take roof plane "N" in the model shown, it is bounded by two separate eave edges.

                  The ordering of roof planes gets a little bit interesting in these cases but all one can do is one's best to bring as much order to the chaos as possible.

                  Each label is centered on its respective roof plane (via the bounds.center method), sometimes this works out and sometimes it doesn't. I don't really have any ideas on a better algorithm for the time being.

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

                  1 條回覆 最後回覆 回覆 引用 0
                  • medeekM 離線
                    medeek
                    最後由 編輯

                    Starting to work on the sub-fascia module. Everything is pretty clear to me except for the half hip. I actually have never added a half hip roof type to the plugin until now. My proposed solution for a half hip with sub-fascia is:

                    http://design.medeek.com/resources/trussplugin/images/truss_su560_800.jpg

                    I think it makes the most sense to bevel cut the rakeboard as shown so that the bottom edges of rakeboard flush up. Please feel free to comment or suggest and alternative solution.

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

                    1 條回覆 最後回覆 回覆 引用 0
                    • medeekM 離線
                      medeek
                      最後由 編輯

                      Version 2.5.4 - 10.08.2019

                      • Added cladding for complex roofs.
                      • Added labels for complex roofs.

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

                      1 條回覆 最後回覆 回覆 引用 0
                      • medeekM 離線
                        medeek
                        最後由 編輯

                        Looking at some of Larry Belk's roofs this morning got me thinking about those crazy octagon shaped turrets often employed on upper end houses. It seems they are rather popular these days, and I would imagine quite fun to frame up.

                        I honestly wish I was living in an area where a lot of this type of house building and framing is going on. It would be very educational to visit a few of these job sites and observe how things are going together and ask a few (many) questions.

                        The image below shows what solution (upper octagon) the complex roof module will come up with when the octagon is integral with the rest of the roof (all one assembly):

                        http://design.medeek.com/resources/trussplugin/images/truss_su561_800.jpg

                        View model here:

                        Link Preview Image
                        3D Warehouse

                        3D Warehouse is a website of searchable, pre-made 3D models that works seamlessly with SketchUp.

                        favicon

                        (3dwarehouse.sketchup.com)

                        However, the solution you will probably want is the lower octagon turret where the octagon outline is fully preserved.

                        When the plugin creates the roof primitive it will only at a maximum have as many roof planes as there are roof edges (eaves). The straight skeleton algorithm cannot add in additional roof planes that do not border a roof edge, this is just the way it works mathematically, there is nothing I can do about this behavior.

                        I will need to give this type of situation some more careful thought and consideration. I have a few ideas up my sleeve already but the implementation is always the crux of the problem.

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

                        1 條回覆 最後回覆 回覆 引用 0
                        • medeekM 離線
                          medeek
                          最後由 編輯

                          One thing I haven't considered yet are roof returns (gable and half hip):

                          http://design.medeek.com/resources/trussplugin/images/truss_su562_800.jpg

                          However if you are going to go to the trouble to put a return on the half hip you will probably also do a lower return at the fascia line as well:

                          http://design.medeek.com/resources/trussplugin/images/truss_su563_800.jpg

                          Eventually half hips will need to have an option for returns: Upper, Lower or Both

                          Also note that the pitch of the lower roof return equals the pitch of the half hip but this may not always be the case. Also the lower roof return may have three possible configurations: Full, Hip or Gable.

                          The complexity of complex roofs knows no bounds.

                          View model here:

                          Link Preview Image
                          3D Warehouse

                          3D Warehouse is a website of searchable, pre-made 3D models that works seamlessly with SketchUp.

                          favicon

                          (3dwarehouse.sketchup.com)

                          I don't want to get lost in the weeds right now so I'm not going to implement roof returns for gable and half hip roof ends just yet. This will have to be work for a later date. However, it was worth exploring and considering the possibilities.

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

                          1 條回覆 最後回覆 回覆 引用 0
                          • medeekM 離線
                            medeek
                            最後由 編輯

                            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.

                            http://design.medeek.com/resources/trussplugin/images/truss_su564_800.jpg

                            View model here:

                            Link Preview Image
                            3D Warehouse

                            3D Warehouse is a website of searchable, pre-made 3D models that works seamlessly with SketchUp.

                            favicon

                            (3dwarehouse.sketchup.com)

                            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.

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

                            1 條回覆 最後回覆 回覆 引用 0
                            • medeekM 離線
                              medeek
                              最後由 編輯

                              Version 2.5.5 - 10.10.2019

                              • Added sub-fascia and rakeboards for complex roofs.

                              http://design.medeek.com/resources/trussplugin/images/truss_su565_800.jpg

                              http://design.medeek.com/resources/trussplugin/images/truss_su566_800.jpg

                              View model here:

                              Link Preview Image
                              3D Warehouse

                              3D Warehouse is a website of searchable, pre-made 3D models that works seamlessly with SketchUp.

                              favicon

                              (3dwarehouse.sketchup.com)

                              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.

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

                              1 條回覆 最後回覆 回覆 引用 0
                              • medeekM 離線
                                medeek
                                最後由 編輯

                                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...)

                                http://design.medeek.com/resources/trussplugin/images/truss_su567_800.jpg

                                View model here:

                                Link Preview Image
                                3D Warehouse

                                3D Warehouse is a website of searchable, pre-made 3D models that works seamlessly with SketchUp.

                                favicon

                                (3dwarehouse.sketchup.com)

                                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.

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

                                1 條回覆 最後回覆 回覆 引用 0
                                • medeekM 離線
                                  medeek
                                  最後由 編輯

                                  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.

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

                                  1 條回覆 最後回覆 回覆 引用 0
                                  • medeekM 離線
                                    medeek
                                    最後由 編輯

                                    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.

                                    http://design.medeek.com/resources/trussplugin/images/truss_su551_800.jpg

                                    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.

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

                                    1 條回覆 最後回覆 回覆 引用 0
                                    • medeekM 離線
                                      medeek
                                      最後由 編輯

                                      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.

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

                                      1 條回覆 最後回覆 回覆 引用 0
                                      • jujuJ 離線
                                        juju
                                        最後由 編輯

                                        @medeek said:

                                        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.

                                        Are you going to provide an interface where parameters will be set, to be adhered to, for the sizing of gutters and downpipes (thus relating to number of) based on the plan area (not actual, but measured perp from above) of the roof served?

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

                                        1 條回覆 最後回覆 回覆 引用 0
                                        • medeekM 離線
                                          medeek
                                          最後由 編輯

                                          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.

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

                                          1 條回覆 最後回覆 回覆 引用 0
                                          • medeekM 離線
                                            medeek
                                            最後由 編輯

                                            First look at a gutter fully wrapping a complex (hip) roof:

                                            http://design.medeek.com/resources/trussplugin/images/truss_su568_800.jpg

                                            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.

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

                                            1 條回覆 最後回覆 回覆 引用 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 74
                                            • 75
                                            • 3 / 75
                                            • 第一個貼文
                                              最後的貼文
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement