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

    [Plugin] Material Renamer

    已排程 已置頂 已鎖定 已移動 Plugins
    29 貼文 12 Posters 28.7k 瀏覽 12 Watching
    正在載入更多貼文
    • 從舊到新
    • 從新到舊
    • 最多點贊
    回覆
    • 在新貼文中回覆
    登入後回覆
    此主題已被刪除。只有擁有主題管理權限的使用者可以查看。
    • shannakaeS 離線
      shannakae
      最後由 編輯

      @jolran said:

      @unknownuser said:

      and when I add the component into my model it also brings in all the new generic colors that further clutter up my materials library..

      I hate to ask. You do do know you can purge unused materials ?

      In case not. In the Materialpalette, click the house to get to modelmaterials.
      The icons furthest to the right(blueish) click and choose purge unused.

      Otherwise there is maybe this:

      http://sketchucation.com/forums/viewtopic.php?t=17587

      or this ?

      http://sketchucation.com/forums/viewtopic.php?t=48933

      Take care.

      Thanks, i will look those up. I do know about purge un-used (but I did just learn about it the other day so you are not so far off 😉 )Thanks! I will look up the two topics and see if there is something there that works for me... I was looking at the open or create a collection section... and was going to explore how that might work for what I am trying to do...

      1 條回覆 最後回覆 回覆 引用 0
      • bagateloB 離線
        bagatelo
        最後由 編輯

        @bagatelo said:

        @tig said:

        @unknownuser said:

        ...it would be possible to get the base name for the materials from file skp name automatically?

        Yes, where the earlier code says
        m.name = "mat#{'%03d' % i}"
        change it to read
        m.name = "#{Sketchup.active_model.title}#{'%03d' % i}"

        GREAT!!! Thanks...

        Sketchup.active_model.start_operation('Rename Materials',true); Sketchup.active_model.materials.each_with_index { |m,i| m.name = "#{Sketchup.active_model.title}#{'%03d' % i}"; p m.name };Sketchup.active_model.commit_operation

        I want to add a shurtcut for this function. Can you make a plugin for me, please? 😳

        While the cat's away, the mice will play

        1 條回覆 最後回覆 回覆 引用 0
        • CadFatherC 離線
          CadFather
          最後由 編輯

          
          def matrename
          
          Sketchup.active_model.start_operation('Rename Materials',true); Sketchup.active_model.materials.each_with_index { |m,i| m.name = "- #{'%03d' % i}"; p m.name };Sketchup.active_model.commit_operation
          end
          
          if( not file_loaded? "TT_materials_renamer.rb" )
          UI.menu("View").add_item("Materials Rename") { matrename.new }
          file_loaded("TT_materials_renamer.rb")
          end
          
          1 條回覆 最後回覆 回覆 引用 0
          • bagateloB 離線
            bagatelo
            最後由 編輯

            @cadfather said:

            
            > def matrename
            > 
            > Sketchup.active_model.start_operation('Rename Materials',true); Sketchup.active_model.materials.each_with_index { |m,i| m.name = "- #{'%03d' % i}"; p m.name };Sketchup.active_model.commit_operation
            > end
            > 
            > if( not file_loaded? "TT_materials_renamer.rb" )
            > UI.menu("View").add_item("Materials Rename") { matrename.new }
            > file_loaded("TT_materials_renamer.rb")
            > end
            

            Great! Thanks!

            One thing that would be really interesting would be that this script index materials application in areas with higher per square meter first. Thus, a material that was on all the walls would be in first place. A material that was in small areas (a decorative object for example) would be the end of the numbering.

            While the cat's away, the mice will play

            1 條回覆 最後回覆 回覆 引用 0
            • H 離線
              harvey1
              最後由 編輯

              Is it possible for this plugin to allow one to rename individual materials. For example, let's say my model is imported into SU as Material 1, and I'd like to rename it Window, and Material 2 to be renamed Door, etc.

              1 條回覆 最後回覆 回覆 引用 0
              • P 離線
                Pherim
                最後由 編輯

                This plugin appears to be buggy for me... it seems to be applied as soon as Sketchup has started, so when I open a file by double-clicking it in explorer, the materials get renamed immediately. The same happens when I activate the plugin via the Sketchucation Plugin Store. Will leave it deactivated until the cause is found...

                1 條回覆 最後回覆 回覆 引用 0
                • JBJDesignsJ 離線
                  JBJDesigns
                  最後由 編輯

                  Currently, I have this plug-in disabled (i.e., "tt_materials_renamer.rb" to "tt.materials.renamer.rbDISABLE"). Is there a way to turn this option on or off as needed. Many of my projects are uploaded into Vue 10 Esprit for rendering. I've been "building" a database of materials from SU. When the files are automatically renamed to "mat00", "mat01", etc., it's near impossible to determine whether the material has been saved to it's converted ".mat" format. Your help is appreciated. Jo Ann 😄

                  ...you send them to school, you give them books, and they eat the pages...

                  1 條回覆 最後回覆 回覆 引用 0
                  • R 離線
                    rv1974
                    最後由 編輯

                    Beware: It runs silently in background on the file opening! I managed to spoil a couple of files with this one 😳
                    It should be written on the top.

                    1 條回覆 最後回覆 回覆 引用 0
                    • designerbursaD 離線
                      designerbursa
                      最後由 編輯

                      Plugin name and menu text

                      PLUGIN_NAME = 'Rename Materials by File Name'.freeze

                      Plugin class

                      class RenameMaterials
                      def self.rename
                      # Get the active model
                      model = Sketchup.active_model

                      # Get the file name and remove the extension
                      file_name = File.basename(model.path, ".*")
                      
                      # Get all materials in the model
                      materials = model.materials
                      
                      # Iterate through all materials and assign new names based on the file name
                      materials.each_with_index do |material, index|
                        new_name = "#{file_name}_#{format('%02d', index + 1)}"
                        material.name = new_name
                      end
                      
                      puts "Materials have been successfully renamed based on the file name."
                      

                      end
                      end

                      Menu item that activates the plugin

                      UI.menu('Plugins').add_item(PLUGIN_NAME) { RenameMaterials.rename }

                      1 條回覆 最後回覆 回覆 引用 0
                      • 1
                      • 2
                      • 2 / 2
                      • 第一個貼文
                        最後的貼文
                      Buy SketchPlus
                      Buy SUbD
                      Buy WrapR
                      Buy eBook
                      Buy Modelur
                      Buy Vertex Tools
                      Buy SketchCuisine
                      Buy FormFonts

                      Advertisement