sketchucation logo sketchucation
    • Login
    Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
    ⚠️ Important | Libfredo 15.6b introduces important bugfixes for Fredo's Extensions Update

    Beginner Ruby Problmes

    Scheduled Pinned Locked Moved Developers' Forum
    13 Posts 3 Posters 1.7k Views 3 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

      @arkman said:

      Awesome! I have one more request. How could I get a list of layers in the model to define what layer it lives in. I can get a list but I can't get it to show the layers in the model or place that newly created group on the layer.

      Thanks!!!!

      You can get a list? But you can't get it to show the layers in the model...
      I'm not quite following you. What list are you "getting"? You mean a list in the inputbox?

      All the layers are under Skethcup.active_model.layers
      http://code.google.com/apis/sketchup/docs/ourdoc/layers.html

      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

        
        #-----------------------------------------------------------------------------
        require 'sketchup.rb'
        #-----------------------------------------------------------------------------
        
        module AM_Named_Group
        	
        	unless file_loaded?('am_named_group.rb')
        		# Add menu items.
        		plugins_menu = UI.menu('Edit')
        		plugins_menu.add_item('Make Named Group')	{ self.named_group }
        	end
        	
        	def self.named_group
        		model = Sketchup.active_model
        		sel = model.selection
        
        		# Don't do anything if the selection is empty.
        		return if sel.empty?
        
        		# Build an array of the layer names.
        		layers = model.layers.to_a.collect { |l| l.name }
        		# Ask user for group name.
        		list = ['', layers.join('|')]
        		prompts = ['Group Name; ', 'Layer; ']
        		defaults = [model.definitions.unique_name('Group#1'), model.active_layer.name]
        		input = UI.inputbox(prompts, defaults, list, 'New Group')
        
        		# Check if the user cancelled.
        		return if input == false
        		
        		# Get data from result array into variables
        		group_name, group_layer = input
        		
        		# Make it into one Undoable action
        		model.start_operation('Make Named Group')
        		
        		# The add_group method can be buggy when you pass on entities to it's argument. But there's
        		# no real options.
        		group = model.active_entities.add_group(sel)
        		name = model.definitions.unique_name(group_name)
        		# We set the name we will see in the Entities window.
        		group.name = name
        		# We set the definition name as well. If you convert the group to a component, this is the
        		# name it will get.
        		group.entities.parent.name = name
        		# Set group layer
        		group.layer = model.layers[group_layer]
        		
        		# Select the new group
        		sel.clear
        		sel.add(group)
        		
        		model.commit_operation
        	end
        end
        
        #-----------------------------------------------------------------------------
        file_loaded('am_named_group.rb')
        #-----------------------------------------------------------------------------
        
        

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

        1 Reply Last reply Reply Quote 0
        • A Offline
          Arkman
          last edited by

          Ok, sorry that was unclear.

          I can add a list to the inputbox but I cant get that list to show the layers in the model. I can make a list with just random terms that I picked. Like below.

          list = ["item1|item2"]

          So I guess my question is "How do I get a list in the inputbox that shows all the layers in the model?" I found that help file you showed me but I dont know how to use that. I tried:

          list = [Sketchup.active_model.layers]

          That didn't work. I'm not really sure how to get the list to use that Skethcup.active_model.layers

          Once the list displays the layers in the model, how do I make the object go onto the layer selected in the inputbox?

          Thanks for all your help. Sorry for all the questions.

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

            @arkman said:

            list = [Skethcup.active_model.layers]

            That didn't work. I'm not really sure how to get the list to use that Skethcup.active_model.layers

            That's because Skethcup.active_model.layers is a collection of Layer objects. You need to collect all the layer names from each object. You see an example in the code I posted.

            (And Skethcup was mis-spelled)

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

            1 Reply Last reply Reply Quote 0
            • A Offline
              Arkman
              last edited by

              Incredible! Thank you so much. You just made my life a lot easier!

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

                Maybe I should post it as a downloadable plugin?

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

                1 Reply Last reply Reply Quote 0
                • A Offline
                  Arkman
                  last edited by

                  That would probably be extremely helpful. I know a lot of people that could use something like this.

                  Thanks again!!

                  Josh

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

                    Posted it in a separate plugin for easy searching: http://forums.sketchucation.com/viewtopic.php?f=180&t=23582

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

                    1 Reply Last reply Reply Quote 0
                    • S Offline
                      Scott M
                      last edited by

                      Ththomthom I am Just starting out learning Ruby I made a plugin to create a simple rectangle based on the tutorial and would like to insert the name group module you posted could you give me some pointers?

                      https://www.youtube.com/user/ecabinetstips

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

                        There are some sticky thread in the Developer section where links to various best-practices is posted.

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

                        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