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

    [Plugin] TT_Lib²

    Scheduled Pinned Locked Moved Plugins
    310 Posts 66 Posters 394.3k Views 66 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.
    • thomthomT Offline
      thomthom
      last edited by

      Version 2.1.1

      • Fixed bug: Ray.test (Workaround for SU8.0 bug)

      Thomas Thomassen — SketchUp Monkey & Coding addict
      List of my plugins and link to the CookieWare fund

      1 Reply Last reply Reply Quote 0
      • EscapeArtistE Offline
        EscapeArtist
        last edited by

        Thanks!

        1 Reply Last reply Reply Quote 0
        • thomthomT Offline
          thomthom
          last edited by

          Version 2.2.0

          • Added module: TT::Bounds

          Thomas Thomassen — SketchUp Monkey & Coding addict
          List of my plugins and link to the CookieWare fund

          1 Reply Last reply Reply Quote 0
          • thomthomT Offline
            thomthom
            last edited by

            Version 2.3.0

            • Added method: TT::Geom3d.spiral_sphere
            • Fixed: TT::Ray.test

            Thomas Thomassen — SketchUp Monkey & Coding addict
            List of my plugins and link to the CookieWare fund

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              Version 2.4.0

              • Added module: TT::Binary
              • Added class: TT::JSON
              • Added module: TT::GUI
              • Added class: TT::Window
              • Added class: TT::Inputbox
              • Added module: TT::System
              • Added module: TT::Locale
              • Added module: TT::Cursor

              Thomas Thomassen — SketchUp Monkey & Coding addict
              List of my plugins and link to the CookieWare fund

              1 Reply Last reply Reply Quote 0
              • B Offline
                bestmate
                last edited by

                Great job you do here Thomas, i do not how you find the a time ( amazing)
                I have the select curve tool and i have TT_lib in one folder,TT_lib selectcurve in another and in that in its own folder TT_lib2 and tt_select_curve on its own in the plug in folder with all the above . (that was complicated) i get a message cannot find ? could you help me please my fine friend ( ps great glasses) regards Phil

                1 Reply Last reply Reply Quote 0
                • pilouP Offline
                  pilou
                  last edited by

                  Maybe when you unzipp the file you have one path folder more
                  TT_Lib2-2.4.0) / TT_Lib2 /...
                  It was my case ! 😳
                  At any time I forget to keep only TT_Lib2/... !!! 😳 😳 😳
                  TT_Lib2-2.4.0 must be not taken because that make one path folder more 😒
                  And after with only in Plugins folder TT_Lib2/... all works fine 😎

                  That what i want and all works fine!
                  I Select all then Plugins/ Thomthom Plugins/Guide Tools/ CPoint at Arc Center and all points are drawn! ☀
                  Bravo ThomThom! 👍 (works fine in the V6)

                  http://forums.sketchucation.com/download/file.php?id=55871

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

                  1 Reply Last reply Reply Quote 0
                  • thomthomT Offline
                    thomthom
                    last edited by

                    @unknownuser said:

                    Great job you do here Thomas, i do not how you find the a time ( amazing)
                    I have the select curve tool and i have TT_lib in one folder,TT_lib selectcurve in another and in that in its own folder TT_lib2 and tt_select_curve on its own in the plug in folder with all the above . (that was complicated) i get a message cannot find ? could you help me please my fine friend ( ps great glasses) regards Phil

                    hm.. didn't notice this message until now.

                    As Pilou said, check that you have file files in the correct location. At the bottom of each page for them plugins there is an example of their footprint in the Plugins folder.

                    Thomas Thomassen — SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund

                    1 Reply Last reply Reply Quote 0
                    • pilouP Offline
                      pilou
                      last edited by

                      Hello Thomthom
                      Someone say thank you 😄

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

                      1 Reply Last reply Reply Quote 0
                      • thomthomT Offline
                        thomthom
                        last edited by

                        @unknownuser said:

                        Hello Thomthom
                        Someone say thank you 😄

                        😄 👍

                        Thomas Thomassen — SketchUp Monkey & Coding addict
                        List of my plugins and link to the CookieWare fund

                        1 Reply Last reply Reply Quote 0
                        • PixeroP Offline
                          Pixero
                          last edited by

                          I'm getting this error when starting SU.
                          LoadError.JPG

                          I have the latest version ov Selection Toys along with TT_Lib version 1 and 2.4.0.
                          SU 7.1 Windows.

                          1 Reply Last reply Reply Quote 0
                          • thomthomT Offline
                            thomthom
                            last edited by

                            SelectionToys does not use TT_Lib2 at all.

                            You need to ensure you have the correction version of TT_Lib (1.x) and that it's installed correctly.

                            Thomas Thomassen — SketchUp Monkey & Coding addict
                            List of my plugins and link to the CookieWare fund

                            1 Reply Last reply Reply Quote 0
                            • PixeroP Offline
                              Pixero
                              last edited by

                              Reinstalling the latest 1.x version helped.

                              By the way I'm tired of rearrangeing my toolbars once again. How does the save toolbar in SU8 work?

                              1 Reply Last reply Reply Quote 0
                              • thomthomT Offline
                                thomthom
                                last edited by

                                @pixero said:

                                By the way I'm tired of rearrangeing my toolbars once again. How does the save toolbar in SU8 work?

                                Poorly.

                                View->Toolbars->Save Positions
                                View->Toolbars->Restore Positions

                                I've found it to not work so well when adding/removing plugins with toolbars...

                                Thomas Thomassen — SketchUp Monkey & Coding addict
                                List of my plugins and link to the CookieWare fund

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

                                  Thom, have you generated docs for this lib? I appreciate that you are thinking in terms of re-use, and your code is clean and clear. Is this licensed so that other people can use it also?

                                  Hi

                                  1 Reply Last reply Reply Quote 0
                                  • thomthomT Offline
                                    thomthom
                                    last edited by

                                    @jim said:

                                    Thom, have you generated docs for this lib? I appreciate that you are thinking in terms of re-use, and your code is clean and clear. Is this licensed so that other people can use it also?

                                    I have some docs generated. But the comments are not complete. It's still taking shape and some things will be changed.
                                    I'll try to make a note on the modules that are WIP and include more examples. If you have questions about particulars just let me know and I can push them up on the update list.

                                    For the brave, here is the current output: http://www.thomthom.net/software/sketchup/tt_lib2/doc/ (for TT_Lib 2.5 mind you)

                                    (Anyone knows how to modify YARDs templates so the constant lists will be more compact?)

                                    Thomas Thomassen — SketchUp Monkey & Coding addict
                                    List of my plugins and link to the CookieWare fund

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

                                      Guess I could run yard myself... heh.

                                      Hi

                                      1 Reply Last reply Reply Quote 0
                                      • thomthomT Offline
                                        thomthom
                                        last edited by

                                        Just a preview of one of the GUI gizmos I'm working on.

                                        [flash=640,385:378bq4x9]http://www.youtube.com/v/hA0H_Txfjd4?fs=1&hl=en_US[/flash:378bq4x9]

                                        Code to generate the windows:

                                        
                                        #-----------------------------------------------------------------------------
                                        # Compatible; SketchUp 7 (PC)
                                        #             (other versions untested)
                                        #-----------------------------------------------------------------------------
                                        #
                                        # Thomas Thomassen
                                        # thomas[at]thomthom[dot]net
                                        #
                                        #-----------------------------------------------------------------------------
                                        
                                        require 'sketchup.rb'
                                        require 'TT_Lib2/core.rb'
                                        
                                        TT;;Lib.compatible?('2.4.0', 'Inputbox Test')
                                        
                                        #-----------------------------------------------------------------------------
                                        
                                        
                                        module TT;;Plugins;;InputboxTest
                                          
                                          ### CONSTANTS ### --------------------------------------------------------
                                          
                                          VERSION = '1.0.0'
                                          
                                          
                                          ### MENU & TOOLBARS ### --------------------------------------------------
                                          
                                          unless file_loaded?( File.basename(__FILE__) )
                                            m = TT.menu('Plugins').add_submenu('TT;;GUI')
                                            m.add_item('TT;;GUI;;Inputbox')     { self.test_inputbox }
                                            m.add_item('TT;;Plugins;;CleanUp')  { self.test_cleanup }
                                          end 
                                          
                                          
                                          ### MAIN SCRIPT ### ------------------------------------------------------
                                          
                                          def self.test_inputbox
                                            options = {
                                              ;title => 'TT;;GUI;;Inputbox',
                                              ;pref_key => 'TT;;GUI;;Inputbox',
                                              ;modal => true,
                                              ;accept_label => 'Save',
                                              ;cancel_label => 'Abort'
                                            }
                                            i = TT;;GUI;;Inputbox.new(options)
                                            i.add_control( {
                                              ;label => 'Hello',
                                              ;value => 'World',
                                              ;description => 'Lorem ipsum <b>dolor</b> sit amet.',
                                            } )
                                            i.add_control( {
                                              ;label => 'Checkbox1',
                                              ;value => true
                                            } )
                                            i.add_control( {
                                              ;label => 'Checkbox2',
                                              ;value => false
                                            } )
                                            i.add_control( {
                                              ;label => 'Integer',
                                              ;value => 123
                                            } )
                                            i.add_control( {
                                              ;label => 'Float',
                                              ;value => 1.23
                                            } )
                                            i.add_control( {
                                              ;label => 'Length',
                                              ;value => 1.23.m
                                            } )
                                            ms = Sketchup.active_model.materials
                                            i.add_control( {
                                              ;label => 'Dropdown List1',
                                              ;value => (ms.current) ? ms.current.display_name ; nil,
                                              ;options => ms.map { |m| m.display_name },
                                              ;description => 'Unordered ordered.'
                                            } )
                                            i.add_control( {
                                              ;label => 'Dropdown List2',
                                              ;value => (ms.current) ? ms.current.display_name ; nil,
                                              ;options => ms.map { |m| m.display_name },
                                              ;order => 1,
                                              ;natrual_order => true,
                                              ;description => 'Naturally ordered.'
                                            } )
                                            i.add_control( {
                                              ;label => 'List1',
                                              ;value => (ms.current) ? ms.current.display_name ; nil,
                                              ;options => ms.map { |m| m.display_name },
                                              ;order => -1,
                                              ;natrual_order => true,
                                              ;description => 'Naturally ordered reversed.',
                                              ;size => 5
                                            } )
                                            i.add_control( {
                                              ;label => 'List2',
                                              ;value => ms.to_a[0..1].map { |m| m.display_name },
                                              ;options => ms.map { |m| m.display_name },
                                              ;order => -1,
                                              ;natrual_order => true,
                                              ;description => 'Multiple Selection.',
                                              ;size => 5,
                                              ;multiple => true
                                            } )
                                            i.add_control( {
                                              ;label => 'Radioboxes1',
                                              ;value => 'Hello World',
                                              ;options => ['Hello World', 'Lorem Ipsum', 'Foo Bar'],
                                              ;type => TT;;GUI;;Inputbox;;CT_RADIOBOX
                                            } )
                                            i.add_control( {
                                              ;label => 'Radioboxes2',
                                              ;value => 'Monkeys',
                                              ;options => ['Cheese', 'Monkeys'],
                                              ;type => TT;;GUI;;Inputbox;;CT_RADIOBOX
                                            } )
                                            i.prompt { |results|
                                              puts 'Results returned;'
                                              p results
                                              #puts i.get_html
                                            }
                                          end
                                          
                                          
                                            def self.test_cleanup
                                            options = {
                                              ;title => 'TT;;Plugins;;CleanUp',
                                              ;pref_key => 'TT;;Plugins;;CleanUp',
                                              ;modal => true,
                                              ;accept_label => 'CleanUp',
                                              ;cancel_label => 'Cancel',
                                              ;align => 0.3
                                            }
                                            i = TT;;GUI;;Inputbox.new(options)
                                            i.add_control( {
                                              ;label => 'Scope',
                                              ;value => 'Local',
                                              ;options => ['Selected', 'Local', 'Model'],
                                              ;type => TT;;GUI;;Inputbox;;CT_RADIOBOX,
                                              ;group => 'General'
                                            } )
                                            i.add_control( {
                                              ;label => 'Validate Results',
                                              ;value => true,
                                              ;group => 'General'
                                            } )
                                            i.add_control( {
                                              ;label => 'Merge Coplanar Faces',
                                              ;value => true,
                                              ;group => 'Coplanar Faces'
                                            } )
                                            i.add_control( {
                                              ;label => 'Ignore Normals',
                                              ;value => false,
                                              ;group => 'Coplanar Faces'
                                            } )
                                            i.add_control( {
                                              ;label => 'Ignore Materials',
                                              ;value => false,
                                              ;group => 'Coplanar Faces'
                                            } )
                                            i.add_control( {
                                              ;label => 'Ignore UV',
                                              ;value => true,
                                              ;group => 'Coplanar Faces'
                                            } )
                                            i.add_control( {
                                              ;label => 'Remove Duplicate Faces',
                                              ;value => false,
                                              ;group => 'Faces'
                                            } )
                                            i.add_control( {
                                              ;label => 'Repair Split Edges',
                                              ;value => true,
                                              ;group => 'Edges'
                                            } )
                                            i.add_control( {
                                              ;label => 'Remove Lonely Edges',
                                              ;value => true,
                                              ;group => 'Edges'
                                            } )
                                            i.add_control( {
                                              ;label => 'Remove Edge Materials',
                                              ;value => false,
                                              ;group => 'Edges'
                                            } )
                                            i.add_control( {
                                              ;label => 'Smooth Edges by Angle',
                                              ;value => 0.0,
                                              ;group => 'Edges'
                                            } )
                                            i.prompt { |results|
                                              puts 'Results returned;'
                                              p results
                                              #puts i.get_html
                                            }
                                          end
                                          
                                          
                                          ### DEBUG ### ------------------------------------------------------------
                                          
                                          def self.reload
                                            TT;;Lib.reload
                                            load __FILE__
                                          end
                                        
                                        end # module
                                        
                                        #-----------------------------------------------------------------------------
                                        
                                        file_loaded( File.basename(__FILE__) )
                                        
                                        #-----------------------------------------------------------------------------
                                        
                                        

                                        Also thinking of adding more wrappers to create windows entirely from Ruby - buttons, lists, dropdowns etc...


                                        input_test.rb

                                        Thomas Thomassen — SketchUp Monkey & Coding addict
                                        List of my plugins and link to the CookieWare fund

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

                                          @thomthom said:

                                          Also thinking of adding more wrappers to create windows entirely from Ruby - buttons, lists, dropdowns etc...

                                          This approach will win. 👍

                                          Hi

                                          1 Reply Last reply Reply Quote 0
                                          • thomthomT Offline
                                            thomthom
                                            last edited by

                                            When I made Vertex Tools I had a similar system for the toolbar system. A set of classes that acted as wrappers for the controls. The main classes where Container and Control - they would have most of the code. From there it was easier to create sub-classes like toolbars and buttons. I then had a very nice abstract layer where I created a toolbar class - where I added Button objects.
                                            Complex systems though - but I hope to have a base system by the new year.

                                            Thomas Thomassen — SketchUp Monkey & Coding addict
                                            List of my plugins and link to the CookieWare fund

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 15
                                            • 16
                                            • 3 / 16
                                            • First post
                                              Last post
                                            Buy SketchPlus
                                            Buy SUbD
                                            Buy WrapR
                                            Buy eBook
                                            Buy Modelur
                                            Buy Vertex Tools
                                            Buy SketchCuisine
                                            Buy FormFonts

                                            Advertisement