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

    Beginner Ruby Problmes

    Scheduled Pinned Locked Moved Developers' Forum
    13 Posts 3 Posters 1.5k 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.
    • A Offline
      Arkman
      last edited by

      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!!!!

      1 Reply Last reply Reply Quote 0
      • 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