[REQ] Component 'Name' Stripper
-
Looking for a plugin that strips components of their 'Names'.
These names can often be the same (when the definition is unique), and when working with other people's files I often have to clean up before I export to various materials lists.I tried TT Cleanup - but it didn't change anything.
I ended up opening the drawing on my old laptop and was able to window all components and do a space bar / delete in the 'Name' field in the entity information window. Oddly, this works on PC, but doesn't seem to work on Mac... -
bmike, no plugin needed just a single statement entered in the Ruby Console will do the trick.
Sketchup.active_model.entities.each{|e| e.name='' if e.is_a?(Sketchup;;ComponentInstance)}
Will remove any Name assigned to a component instance. The Definition Name can be changed but not erased.
-
@sdmitch said:
bmike, no plugin needed just a single statement entered in the Ruby Console will do the trick.
Sketchup.active_model.entities.each{|e| e.name='' if e.is_a?(Sketchup;;ComponentInstance)} >
Will remove any Name assigned to a component instance. The Definition Name can be changed but not erased.
Thanks, will give it a go!
I don't want to mess with the definition name - but I get into trouble when someone sends me a drawing with 100 'Posts' in it, an 80 of them are different from each other. Exports out to materials lists wrong.Is there a way to 'plugin'ize this so that I can pull it down from a menu, as opposed to keeping a bit of text handy?
-
Copy this code and paste into a pure text editor program,ie Notepad, and save
it to the Sketchup Plugins folder. Execute it by choosing Name Stripper from
the plugins menu.# require 'Sketchup' # if not file_loaded?(File.basename(__FILE__)) UI.menu('Plugins').add_item('Name Stripper') { Component_Name_Stripper.doit } file_loaded(File.basename(__FILE__)) end # module Component_Name_Stripper def self.doit Sketchup.active_model.entities.each{|e| e.name='' if e.is_a?(Sketchup;;ComponentInstance)} end end
-
Thank you!
I'll give it a go. Was just thinking about taking apart another .rb so I could tinker with it.
-
Did that, and this is what I get:
Error Loading File namestripper.rb undefined method ` ' for main;Object
-
Looks like you have a ` rather than a ' somewhere in the code
You must use a plain-text editor - like Notepad.exe.
It can't be a wordprocessor because that will/could 'format' text breaking the tight syntax required by Ruby...
Simple select all of the code and copy its text from the code-pane and paste into the empty file... -
Hmm. Pasted it into TextEdit on the Mac. Will try something else.
-
Here's the code in a .rb - compare it with yours...
Test both in turn in the Plugins folder, with a restart...
-
Thanks Tig!
Here's what I get when I pated them both into TextEdit on the Mac:
TIG; require 'Sketchup' if not file_loaded?(File.basename(__FILE__)) UI.menu('Plugins').add_item('Name Stripper') { Component_Name_Stripper.doit } file_loaded(File.basename(__FILE__)) end module Component_Name_Stripper def self.doit Sketchup.active_model.entities.each{|e| e.name='' if e.is_a?(Sketchup;;ComponentInstance)} end end Original; # require 'Sketchup' # if not file_loaded?(File.basename(__FILE__)) UI.menu('Plugins').add_item('Name Stripper') { Component_Name_Stripper.doit } file_loaded(File.basename(__FILE__)) end # module Component_Name_Stripper def self.doit Sketchup.active_model.entities.each{|e| e.name='' if e.is_a?(Sketchup;;ComponentInstance)} end end
-
Your copy is working fine directly placed in my Plugins folder... so, Thanks!
Advertisement