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

    [Plugin] Simple Glazing tool

    Scheduled Pinned Locked Moved Plugins
    19 Posts 9 Posters 15.9k Views 9 Watching
    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.
    • T Offline
      tomot
      last edited by

      I see no ruby gurus willing to take a nibble yet? 😄

      Once the rectangle has been picked, its co-ordinates are defined
      by $pt0 thru $pt3 (see below)

      #------create a new set of points from the original 3 point pick
      $pt0=Geom::Point3d.new($pts[0][0], $pts[0][1], $pts[0][2])
      $pt1=Geom::Point3d.new($pts[1][0], $pts[1][1], $pts[1][2])
      $pt2=Geom::Point3d.new($pts[2][0], $pts[2][1], $pts[2][2])
      $pt3=Geom::Point3d.new($pts[3][0], $pts[3][1], $pts[3][2])

      I can then create the required code that makes the glazing,
      give it a transparent color, followed by "pushpull'ing" the thickness of the glass
      whose value is $ggthick (see below)

      #------create the Glazing
      group=entities.add_group
      entities=group.entities
      base=entities.add_face($pt0, $pt1, $pt2, $pt3)
      base.material=Sketchup::Color.new(163,204,204) #change the RGB Color numbers here
      base.material.alpha = 0.6
      base.pushpull $ggthick

      All of the above will produce glazing in any plane xy, xz, yz.

      However in order to set the glazing back from an xy plane, I need a z offset
      equally for glazing on an xz plane needs a y offset, and for glazing on an yz plane
      requires an x offset.

      If I was producing a static glazing ruby where the glazing was always located at 0,0,0
      then I could provide the offset option via $wwthick which is the "Glass Setback from face value.
      as follows:

      $pt3=Geom::Point3d.new($pts[3][0], $pts[3][1], $pts[3][2]-$wwthick)
      but this will not work for the other 2 planes.

      Is there a 3d point in Ruby that is not tied to the world co-ordinate system, but rather
      to a local co-ordinate system?

      or is there a way to do a double pushpull one for the offset and one for the glazing thickness,
      and then erasing the first sheet of glass?

      TIA!

      [my plugins](http://thingsvirtual.blogspot.ca/)
      tomot

      1 Reply Last reply Reply Quote 0
      • J Offline
        Jim
        last edited by

        @unknownuser said:

        Is there a 3d point in Ruby that is not tied to the world co-ordinate system, but rather
        to a local co-ordinate system?

        Entities added to a group are relative to the Group's origin and axes.

        Hi

        1 Reply Last reply Reply Quote 0
        • T Offline
          tomot
          last edited by

          Jim I don't know what I'm going to do with that piece of information
          in a practical way to solve this problem.

          As the attached pic shows, at present the glazing is flush with each face
          of the 2 opening the glazing is installed into.
          I would like to have the option of letting the user pick an offset back from
          the face as is shown in the opening on the left side of the cube.


          cube.png

          [my plugins](http://thingsvirtual.blogspot.ca/)
          tomot

          1 Reply Last reply Reply Quote 0
          • J Offline
            Jim
            last edited by

            Well, you know the normal of the glass, just move the group forward or backward along the normal.

            In other words, apply a transformation to the final group in the + or - direction along the base face normal.

            Hi

            1 Reply Last reply Reply Quote 0
            • TIGT Offline
              TIG Moderator
              last edited by

              Aren't you re-inventing Windowizer without a frame ? Currently you must enter something, but 0.1mm makes the frames effectively nothing...

              TIG

              1 Reply Last reply Reply Quote 0
              • D Offline
                dtrarch
                last edited by

                tomot

                Very clever tool and thanks.
                As it creates a group it is very easy to move back and forth.
                Good enough as it stands.

                dtr

                1 Reply Last reply Reply Quote 0
                • T Offline
                  tomot
                  last edited by

                  @tig said:

                  Aren't you re-inventing Windowizer without a frame ? Currently you must enter something, but 0.1mm makes the frames effectively nothing...

                  Not at all! Windowizer asks for 4 sided face to be selected first. While I use the "pick 3 point rectangle" method.
                  This is not a criticism of how Windowizer works, it has more to do with my workflow.
                  I design structures in SU using walls and slabs that have thickness. Then I punch openings in them for windows, doors, stairs etc., later I fill in those openings with the required components.

                  I find the "pick 3 points rectangle' method the most natural way to fill in an opening. If I were to use Windowizer, I have to fill in the opening prior to running the script.

                  However, I would be more interested in getting the setback problem solved.
                  While Jim's comments make a lot of sense, I can't get the code to work.

                  aargh!

                  [my plugins](http://thingsvirtual.blogspot.ca/)
                  tomot

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    tomot
                    last edited by

                    @dtrarch said:

                    tomot

                    Very clever tool and thanks.
                    As it creates a group it is very easy to move back and forth.
                    Good enough as it stands.

                    dtr

                    Thanks! But after I have moved about 30 windows back 3" from the face. I
                    feel like my Grey matter is leaving for greener pastures.

                    [my plugins](http://thingsvirtual.blogspot.ca/)
                    tomot

                    1 Reply Last reply Reply Quote 0
                    • J Offline
                      Jim
                      last edited by

                      Hi tomot,

                      Here is a snippet of your plugin with the transformation.

                      
                      
                          base.pushpull $ggthick
                          self.reset
                          normal = base.normal
                          normal.length = 2 # how far?
                          tr = Geom;;Transformation.translation(normal.reverse)
                          group.transform! tr
                          model.commit_operation
                      end
                      
                      
                      

                      Hi

                      1 Reply Last reply Reply Quote 0
                      • T Offline
                        tomot
                        last edited by

                        Jim, please accept my great appreciation, with a reply HUG!

                        so here is the the attached update:


                        WindowGlass.rb

                        [my plugins](http://thingsvirtual.blogspot.ca/)
                        tomot

                        1 Reply Last reply Reply Quote 0
                        • N Offline
                          nomeradona
                          last edited by

                          clever and useful indeed.. thanks

                          visit my blog: http://www.nomeradona.blogspot.com

                          1 Reply Last reply Reply Quote 0
                          • F Offline
                            Fletch
                            last edited by

                            I asked a long time ago for windowizer to have ability to have "0" as the frame, and have it be left out completely... but all I remember getting was a "good idea Fletch"... while never seeing it implemented... I'm still waiting.

                            until then... this could be useful - thanks for sharing!... and true about the workflow... sometime nice to just draw interactively.

                            Fletch
                            Twilight Render Cross-platform Plugin for SketchUp on PC or Mac

                            1 Reply Last reply Reply Quote 0
                            • R Offline
                              RickW
                              last edited by

                              @fletch: Yeah, unfortunately, that happens a lot more than I would like. More ideas than time to implement...

                              RickW
                              [www.smustard.com](http://www.smustard.com)

                              1 Reply Last reply Reply Quote 0
                              • J Offline
                                JGA
                                last edited by

                                Tomat, thanks very much for the tool.
                                RickW, Windowizer is one of the most useful tools available. However, could it be adapted to provide an inner frame of a window? I currently push pull through the wall, repair the faces & then use windowizer on both sides of the wall.

                                Regards,
                                JGA

                                1 Reply Last reply Reply Quote 0
                                • T Offline
                                  tomot
                                  last edited by

                                  @jga said:

                                  However, could it be adapted to provide an inner frame of a window?

                                  Yes I have a working copy, with glazing, frame and exterior trim however, I still have
                                  a few bugs to resolve, before posting it.

                                  [my plugins](http://thingsvirtual.blogspot.ca/)
                                  tomot

                                  1 Reply Last reply Reply Quote 0
                                  • F Offline
                                    Fletch
                                    last edited by

                                    @Rick,
                                    ah well... c'est la vie... 😄

                                    Fletch
                                    Twilight Render Cross-platform Plugin for SketchUp on PC or Mac

                                    1 Reply Last reply Reply Quote 0
                                    • T Offline
                                      tomot
                                      last edited by

                                      @fletch said:

                                      @Rick,
                                      ah well... c'est la vie... 😄

                                      In fairness to RickW, he has produced some amazing code.
                                      I think he was the first one to create a dialog box in Ruby.
                                      Without which all input Rubies could not exist.

                                      [my plugins](http://thingsvirtual.blogspot.ca/)
                                      tomot

                                      1 Reply Last reply Reply Quote 0
                                      • 1 / 1
                                      • First post
                                        Last post
                                      Buy SketchPlus
                                      Buy SUbD
                                      Buy WrapR
                                      Buy eBook
                                      Buy Modelur
                                      Buy Vertex Tools
                                      Buy SketchCuisine
                                      Buy FormFonts

                                      Advertisement