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

    [Plugin] MaterialConsolidator

    Scheduled Pinned Locked Moved Plugins
    57 Posts 31 Posters 39.4k Views 31 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.
    • R Offline
      rv1974
      last edited by

      Hi TIG!
      I have some important suggestion. The majority of people working in the 3D field use some prefixes in the mats\layers\camera names. It's extremely helpful to differ my stuff from the others.I for example name all my assets in this way: zzz_blahblah. And everything is inserted in the initial template file.
      So what I'm asking for is ability to set the default nameprioty directly in the ruby file
      itself (just to set up it once and forget). In my case zzz_* formula would be dominant.
      What do you think?

      1 Reply Last reply Reply Quote 0
      • TIGT Offline
        TIG Moderator
        last edited by

        rv1974

        At the moment the first material in the database is used in preference to any other matches [the names are not considered just the position in the list], so if you have 'zzz_Material', 'zzz_Material1' and 'xxx_Material99' that are all exact matching 'clones' and 'zzz_Material' is the first one then everything becomes 'zzz_Material' and the others are purged...
        I can't see how we would use 'prefixes' to sort materials [at the moment, as I said, the name is ignored and its 'order of being created' is used] 😕

        TIG

        1 Reply Last reply Reply Quote 0
        • TIGT Offline
          TIG Moderator
          last edited by

          Here's v1.2 http://forums.sketchucation.com/viewtopic.php?p=295290#p295290
          The listing and sorting algorithms have been optimized for speed and command-line/console progress messages added...

          TIG

          1 Reply Last reply Reply Quote 0
          • R Offline
            rv1974
            last edited by

            @tig said:

            rv1974

            At the moment the first material in the database is used in preference to any other matches [the names are not considered just the position in the list], so if you have 'zzz_Material', 'zzz_Material1' and 'xxx_Material99' that are all exact matching 'clones' and 'zzz_Material' is the first one then everything becomes 'zzz_Material' and the others are purged...
            I can't see how we would use 'prefixes' to sort materials [at the moment, as I said, the name is ignored and its 'order of being created' is used] 😕


            order of being created is already a nice thing. The workaround is to embed a simple planes matrix with user common used materials applied into initial template.
            Thank you.

            1 Reply Last reply Reply Quote 0
            • R Offline
              rocorona
              last edited by

              @tig said:

              @gaieus said:

              @tig said:

              These are:-

              materialType
              color RGB
              transparency [alpha]

              What is a material "type"?
              I feel I'm missing something basilar, but I can't find this in the "modify material" window.

              1 Reply Last reply Reply Quote 0
              • TIGT Offline
                TIG Moderator
                last edited by

                @rocorona said:

                @tig said:

                @gaieus said:

                @tig said:

                These are:-

                materialType
                color RGB
                transparency [alpha]

                What is a material "type"?
                I feel I'm missing something basilar, but I can't find this in the "modify material" window.

                The materialType is accessible via the API - it returns values [0/1/2] depending on if the material is simply a 'plain-color', has a 'texture' or it has a texture and it has been 'colorized'... that's all... http://code.google.com/apis/sketchup/docs/ourdoc/material.html#materialType

                TIG

                1 Reply Last reply Reply Quote 0
                • R Offline
                  rocorona
                  last edited by

                  TIG, "thanks" for your reply, and "thanks" for your great and valuable work!

                  1 Reply Last reply Reply Quote 0
                  • E Offline
                    Ecuadorian
                    last edited by

                    I was thinking about this yesterday, as using FormFonts objects bloats my files with duplicate materials.

                    Thanks, TIG! 👍

                    -Miguel Lescano
                    Subscribe to my house plans YouTube channel! (30K+ subs)

                    1 Reply Last reply Reply Quote 0
                    • TIGT Offline
                      TIG Moderator
                      last edited by

                      Here's v1.3 http://forums.sketchucation.com/viewtopic.php?p=295290#p295290
                      It is now wrapped into its own class 'MaterialConsolidator'.

                      TIG

                      1 Reply Last reply Reply Quote 0
                      • H Offline
                        headshot
                        last edited by

                        GR8 !!!
                        TY.

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

                          thank you for this useful tool !

                          but one question:

                          how do i delete unused materials that result from objects imported by
                          the warehouse and which i dont use anymore?

                          to be more exactly, i tried out several warehouse objects to fit my needs
                          and mixed some of them. at the end i got 50+ textures loaded but maybe only
                          15 are in use. deleting all by hand would take some time.

                          did i get something wrong ?

                          cheers

                          http://www.frenchtouchstudio.com
                          manager/modeler

                          1 Reply Last reply Reply Quote 0
                          • TIGT Offline
                            TIG Moderator
                            last edited by

                            @staatsfeind said:

                            thank you for this useful tool !
                            but one question:
                            how do i delete unused materials that result from objects imported by
                            the warehouse and which i dont use anymore?
                            to be more exactly, i tried out several warehouse objects to fit my needs
                            and mixed some of them. at the end i got 50+ textures loaded but maybe only
                            15 are in use. deleting all by hand would take some time.
                            did i get something wrong ?
                            cheers
                            'Used' Materials are not 'purged'...
                            Erase all unwanted Component Instances OR go to the Component Browser and find the unwanted component, right-click its icon and pick 'Delete' - this removes it from the model/browser/data-base.
                            OR if there are no Instances left use Component Browser > Purge... pop-out to remove any unused Components
                            It's recommended that you also use Layer Browser > Purge... pop-out to remove any unused Layers [that might have been associated with Components that you have just purged]
                            NOW use Material Browser > Purge... pop-out to remove any unused Materials [that might have been associated with Components that you have just purged]

                            OR simply use Model Info > Statistics > Purge Unused... to purge them all in one go - this also includes a purge of unused Styles.

                            OR try my 'Purge' script which is similar but it lets you choose which kinds of thing to purge, and makes a 'report' of what's gone too...

                            TIG

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

                              hell you react fast ! ;D

                              thx for your answer, will give it a try.

                              http://www.frenchtouchstudio.com
                              manager/modeler

                              1 Reply Last reply Reply Quote 0
                              • brodieB Offline
                                brodie
                                last edited by

                                Great plugin, thanks TIG. Not one I'll likely use very often but I just had need of it and it worked perfectly.

                                -Brodie

                                steelblue http://www.steelbluellc.com

                                1 Reply Last reply Reply Quote 0
                                • D Offline
                                  DavidXJ98
                                  last edited by

                                  Thank you for this plugin... it's quite useful.

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

                                    Thanks TIG, I've got just the project for this.

                                    1 Reply Last reply Reply Quote 0
                                    • bagateloB Offline
                                      bagatelo
                                      last edited by

                                      I set keyboard shortcuts for all the plugins I use.

                                      Since this script takes a long time to complete their tasks in some files, I get confused sometimes I use the shortcuts, and inadvertently I press the shortcut for this plugin. You could insert an option to be given a warning to accept or not if we want to do cleaning?

                                      Another interesting option is the possibility of inserting a percentage level where materials are not identical, but similar would be united into one.

                                      It's possible to rename all the materials in words capitalized?
                                      If we could make a clean sweep in the names would also help.
                                      Why? Try it:
                                      http://www.den4b.com/?x=products&product=renamer

                                      While the cat's away, the mice will play

                                      1 Reply Last reply Reply Quote 0
                                      • TIGT Offline
                                        TIG Moderator
                                        last edited by

                                        First things last... 😉

                                        You cannot 'rename' materials via the Ruby API unless you have Sketchup >= v8M1 [OR my SKMtools installed] because material.name=string doesn't exist as a method otherwise. If the method is available then this one-liner will rename ALL materials in the model using CAPITAL letters - otherwise you'll get an error message!

                                        Sketchup.active_model.materials.each{|m|m.name=m.name.upcase}
                                        

                                        The accuracy idea would apply to what exactly ? I expect Red, Green, Blue, Alpha ❓
                                        At the moment the code has several tests of equivalence like
                                        next if mat.color.red != m0.color.red
                                        You can edit the code [using a plain text editor like Notepad/Notepad++ etc] to apply an accuracy thus, where you'll define the accuracy as say per=0.01 [i.e. we'll accept it as a match if it's within 1%]. You can either hardcode the 'per' or you could get this from an added dialog as the tool runs... [see below]
                                        So now tweak the test[s]

                                        next if mat.color.red > m0.color.red*(1+per) or mat.color.red < m0.color.red*(1-per)
                                        

                                        Repeat this for RGB and A...

                                        To get the accuracy from a dialog add this at the start of the code on a new line immediately after ' initialize()'

                                        results=inputbox(["0.NNN; "],[0.01],"Material Consolidator Accuracy")
                                        return nil unless results
                                        per=results[0]
                                        

                                        you then enter the required accuracy in the format 0.01 =1%, 0.1 =10%, 0.5 =50% etc.
                                        Obviously if you use the dialog to set the accuracy you do not need a line that says per=... elsewhere in the code!
                                        If you cancel the dialog the material-consolidation is aborted.

                                        This accuracy dialog could act as your startup prompt... BUT if you don't implement it then add this line at the start of the code instead

                                        return nil if UI.messagebox("Consolidate All Materials ?",MB_YESNO,"")==7
                                        

                                        🤓

                                        TIG

                                        1 Reply Last reply Reply Quote 0
                                        • irwanwrI Offline
                                          irwanwr
                                          last edited by

                                          thank you for the plugin 😄

                                          1 Reply Last reply Reply Quote 0
                                          • G Offline
                                            Gabbiano
                                            last edited by

                                            Really a great plugin!
                                            Thank you TIG!

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

                                            Advertisement