sketchucation logo sketchucation
    • 登入
    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!
    🔌 Smart Spline | Fluid way to handle splines for furniture design and complex structures. Download

    [Plugin] TextureRandomizer

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

      Copyright 2012 (c) TIG
      All Rights Reserved.
      THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
      WARRANTIES,INCLUDING,WITHOUT LIMITATION,THE IMPLIED WARRANTIES OF
      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

      TextureRandomizer.rb place it in the ../Plugins/ folder

      Usage: TextureRandomizer

      Used for randomizing textured materials like timber-grain on selected plank
      faces etc...

      Preselect at least ONE face that has a front material with a texture.
      Note if a selection contains other things they are ignored.

      Activate the Tool:-
      'TextureRandomizer' in the Plugins menu.
      OR type in the Ruby Console
      TextureRandomizer.new
      plus <enter>

      From v1.2...
      If there are any groups/component-instances in the selection, and they
      contain textured-faces a dialog asks if you want to include those faces
      too, answer 'No' to process selected faces only or 'Yes' to process all
      textured-faces, including those inside other selected objects...
      It does not 'mine' down beyond the selected context - so nested groups are
      never affected.

      From v1.3...
      If there are non-unique groups in the accepted selection then you are asked
      if you want to make them unique, so that their randomized-textures are also
      unique... [groups should be 'unique', BUT Sketchup can have more than one
      instance of a group !!]
      If there are multiple instances of the same component in the accepted
      selection then you are asked if you want to make them unique, so that their
      randomized-textures are also unique... [use this with care as the advantage
      of components - edit one, edit all - is lost by making instances unique!]

      A dialog appears with the following initial defaults:

      Position UX max: 0
      Position UX min: 0
      Position VY max: 0
      Position VY max: 0

      These numbers are in 'current units' - e.g. 100, 1cm or 1".
      They can be +ve or -ve; min=-50mm to max=50mm will nudge randomly between
      these two extremes; such small values to nudge textures 'across the grain'
      will probably work best for timber-grain textures; larger nudges along the
      grain might be more effective - experiment...
      Using 0 for all values does not re-position the texture at all.

      Scale UX max: 1
      Scale UX min: 1
      Scale VY max: 1
      Scale VY min: 1

      These numbers represent the scale-factor, so 1.1 is +10%.
      They can be +ve or -ve; using a -ve value will 'mirror' all textures on
      that axis.
      Using 1 for all values does not scale the texture at all.
      Any value used must be more that 0.01 or less than -0.01, a value of 0 will
      be adjusted to 0.01; please remember that a tiny texture will probably be
      unrecognizable; and although there is no 'upper limit' a scaling-factor
      greater than ~100 would probably make the texture unrecognizably large !
      Using small difference ranges [e.g. min=0.9 max=1.1] will probably give the
      best results for timber-grain etc.

      Random Mirroring UX: No
      Random Mirroring VY: No

      Choose either 'Yes' or 'No'...
      With 'No' then there is no 'mirroring' on that axis.
      With 'Yes' the texture will be randomly 'mirrored' about that axis using
      the scaling-factors set above; so with '1' set for all scaling and 'Yes'
      you'll get 'mirroring' for ~50% of the selected faces' textures, randomly.

      Rotation max: 0
      Rotation min: 0

      The Rotation is in degrees.
      The values can be +ve or -ve.
      Using 0 for both angles does not rotate the texture at all.
      Any value > 360 will revert to an equivalent value below 360.
      Any value < -360 will revert to an equivalent value above -360.
      Small ranges like max=1 and min=-1 will probably give the best results for
      timber-grain etc.

      All faces' material textures are now randomized to the parameters.

      It is a 'one step' undoable change.

      The previously used parameters are reused for the tool's dialog if it is
      activated later in that same session.

      TIP: Using the same value for the 'max' AND 'min' settings will make that
      change with no randomization, e.g. set UXmax=1 and UXmin=1 will jump all of
      the selected faces' textures across by +1 unit.

      Donations:
      info @ revitrev.org via PayPal.com PayPalButton ###
      Versions:
      1.0 20120320 First Release.
      1.1 20120320 Stupid typo fixed.
      1.2 20120320 Option to include textured-faces inside selected
      groups/components.
      1.3 20120320 Non-unique groups and instances are now spotted, and you are
      asked if you want to change them.

      Get the latest version from the PluginStore
      https://sketchucation.com/pluginstore?pln=TextureRandomizer

      TIG

      1 條回覆 最後回覆 回覆 引用 0
      • V 離線
        Vicspa
        最後由 編輯

        Thanks TIG 👍

        1 條回覆 最後回覆 回覆 引用 0
        • massimoM 離線
          massimo Moderator
          最後由 編輯

          Thanks TIG. 👍
          However it does absolutely nothing here, no dialogue appears. 😄
          I got this in the ruby console:

          Error; #<ArgumentError; Cannot convert "1.0" to Length>
          C;/Program Files (x86)/Google/Google SketchUp 7/Plugins/TextureRandomizer.rb;121;in `to_l'
          C;/Program Files (x86)/Google/Google SketchUp 7/Plugins/TextureRandomizer.rb;121;in `dialog'
          C;/Program Files (x86)/Google/Google SketchUp 7/Plugins/TextureRandomizer.rb;114;in `new'
          C;/Program Files (x86)/Google/Google SketchUp 7/Plugins/TextureRandomizer.rb;96
          C;/Program Files (x86)/Google/Google SketchUp 7/Plugins/TextureRandomizer.rb;96;in `call'
          
          1 條回覆 最後回覆 回覆 引用 0
          • A 離線
            AcesHigh
            最後由 編輯

            Awesome TIG! I am sure this can be used by a lot of people to leave their projects more realistic!

            1 條回覆 最後回覆 回覆 引用 0
            • TIGT 離線
              TIG Moderator
              最後由 編輯

              Here's v1.1 http://forums.sketchucation.com/viewtopic.php?p=392834#p392834

              I fixed a stupid typo [and some incorrect 'default values'] that meant it didn't work if you use a ',' as a decimal point instead of a '.' is fixed...
              [I hope this address's massimo's report]

              TIG

              1 條回覆 最後回覆 回覆 引用 0
              • pilouP 離線
                pilou
                最後由 編輯

                Does this a variation of only one texture or several textures ?

                Frenchy Pilou
                Is beautiful that please without concept!
                My Little site :)

                1 條回覆 最後回覆 回覆 引用 0
                • TIGT 離線
                  TIG Moderator
                  最後由 編輯

                  It affects ALL textured materials on ALL selected faces [fronts].
                  So if you want to tweak one particular face+material combo then 'select by same material' before running the tool...
                  Otherwise it randomizes everything !
                  Any selected non-faces, or faces with non-textured materials, are ignored anyway...

                  TIG

                  1 條回覆 最後回覆 回覆 引用 0
                  • massimoM 離線
                    massimo Moderator
                    最後由 編輯

                    Now seems to work fine. Thank you. 😄
                    It would be nice if it worked also with groups...

                    1 條回覆 最後回覆 回覆 引用 0
                    • TIGT 離線
                      TIG Moderator
                      最後由 編輯

                      @massimo said:

                      Now seems to work fine. Thank you. 😄
                      It would be nice if it worked also with groups...
                      A textured-material applied to a group is non-editable.
                      Only textured-materials applied directly onto to faces are editable.
                      If you mean it working on textured-faces that are inside groups, then if you edit the group/component you can randomize the textures on selected faces within the edit session...
                      It would be possible to add extra code to process selected textured-faces AND textured-faces inside selected groups/components...
                      Does this method appeal to anyone else ?

                      TIG

                      1 條回覆 最後回覆 回覆 引用 0
                      • massimoM 離線
                        massimo Moderator
                        最後由 編輯

                        @unknownuser said:

                        It would be possible to add extra code to process selected textured-faces AND textured-faces inside selected groups/components...

                        That's what I meant.

                        1 條回覆 最後回覆 回覆 引用 0
                        • TIGT 離線
                          TIG Moderator
                          最後由 編輯

                          Here's v1.2 http://forums.sketchucation.com/viewtopic.php?p=392834#p392834
                          If there are any groups/component-instances in the selection, and they
                          contain textured-faces a dialog asks if you want to include those faces
                          too, answer 'No' to process selected faces only or 'Yes' to process all
                          textured-faces, including those inside other selected objects...
                          It does not 'mine' down beyond the selected context - so nested groups are
                          never affected.

                          TIG

                          1 條回覆 最後回覆 回覆 引用 0
                          • pilouP 離線
                            pilou
                            最後由 編輯

                            Cool effect! ☀

                            Before use your plug above
                            [REQ]
                            Does it possible to apply to a selection of faces some textures randomly from the Texture library ?

                            Frenchy Pilou
                            Is beautiful that please without concept!
                            My Little site :)

                            1 條回覆 最後回覆 回覆 引用 0
                            • massimoM 離線
                              massimo Moderator
                              最後由 編輯

                              Great. 👍
                              Now the problem is that all the selected groups are "randomized" in the same way (I've tried with an array of the same textured group). So at the end you have... a different uniformity. 😄

                              1 條回覆 最後回覆 回覆 引用 0
                              • EarthMoverE 離線
                                EarthMover
                                最後由 編輯

                                Nice plugin TIG. Thanks! Possible to add an option for color variation by HSB? Perhaps random slide by percent for Hue,Saturation or black value. Would be great for leaves, brick, stones, etc.

                                3D Artist at Clearstory 3D Imaging
                                Guide Tool at Winning With Sketchup
                                Content Creator at Skapeup

                                1 條回覆 最後回覆 回覆 引用 0
                                • TIGT 離線
                                  TIG Moderator
                                  最後由 編輯

                                  @massimo said:

                                  Great. 👍
                                  Now the problem is that all the selected groups are "randomized" in the same way (I've tried with an array of the same textured group). So at the end you have... a different uniformity. 😄
                                  This is NOT a problem with the tool, rather one with the model itself.
                                  So this is not entirely true. 😮
                                  If groups are multiple instances of the same group-definition they are just like component-instances of the same component-definition, so all changes to one will look just the same across all instances.
                                  BUT if groups are unique because they have been edited [equivalent to what you can do with component-instances and 'make-unique' in the context-menu]... then the texture changes WILL be unique to each unique instance of the group.
                                  So in essence what you are saying is, "Multiple copies of a group which refer to the same group-definition [which you can see in the 'Entity Info' count!] will display the same random-texture changes, because they are all 'clones'..." - which is exactly as you should expect. 😒
                                  So you need to edit the groups [without making any significant changes] which will make them unique, and then redo the texture-randomization and then each one will get a unique texture randomization...
                                  To make your groups unique you can try this simple one-liner in the Ruby Console, use it on a preselected set of entities which include the groups you want to 'make unique'...

                                  Sketchup.active_model.selection.each{|e|e.make_unique if e.class==Sketchup;;Group and e.entities.parent.instances[1]}
                                  

                                  You might get messages about '...deprecated methods...', but just ignore these as there's a long standing balls-up in the API ! 🤓

                                  TIG

                                  1 條回覆 最後回覆 回覆 引用 0
                                  • TIGT 離線
                                    TIG Moderator
                                    最後由 編輯

                                    @earthmover said:

                                    Nice plugin TIG. Thanks! Possible to add an option for color variation by HSB? Perhaps random slide by percent for Hue,Saturation or black value. Would be great for leaves, brick, stones, etc.
                                    This would require a new textured-material [which is of course quite possible] - but this specific tool only randomizes the position/scale/mirroring/rotate of the one textured-material without changing it in any other way except for its UV-mapping...

                                    TIG

                                    1 條回覆 最後回覆 回覆 引用 0
                                    • massimoM 離線
                                      massimo Moderator
                                      最後由 編輯

                                      Ok, ok...As I suspected. Now your one-liner works like a charm. Any possibility to "incorporate" it in the plugin perhaps as an option? 😄

                                      1 條回覆 最後回覆 回覆 引用 0
                                      • TIGT 離線
                                        TIG Moderator
                                        最後由 編輯

                                        Here's v1.3 http://forums.sketchucation.com/viewtopic.php?p=392834#p392834
                                        If there are non-unique groups in the accepted selection then you are asked
                                        if you want to make them unique, so that their randomized-textures are also
                                        unique... [groups should be 'unique', BUT Sketchup can have more than one
                                        instance of a group !!]
                                        If there are multiple instances of the same component in the accepted
                                        selection then you are asked if you want to make them unique, so that their
                                        randomized-textures are also unique... [use this with care as the advantage
                                        of components - edit one, edit all - is lost by making instances unique!]

                                        TIG

                                        1 條回覆 最後回覆 回覆 引用 0
                                        • pilouP 離線
                                          pilou
                                          最後由 編輯

                                          Give a random colors to a volume is easy with the Random Painter by Chris Fullmer
                                          but random textures from the Library of textures?

                                          Frenchy Pilou
                                          Is beautiful that please without concept!
                                          My Little site :)

                                          1 條回覆 最後回覆 回覆 引用 0
                                          • EarthMoverE 離線
                                            EarthMover
                                            最後由 編輯

                                            Thanks for the reply. I guess it would be best served as a separate plugin called "Texture Variator" or something similar where one could enter the number of variations desired and the range of HSB, thus producing copies and replacing the existing. Texture Randomizer as you have created it works great in my tests and again I thank you for your efforts and generosity! It is a handy addition to your texture toolset which I use everyday. 👍

                                            3D Artist at Clearstory 3D Imaging
                                            Guide Tool at Winning With Sketchup
                                            Content Creator at Skapeup

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

                                            Advertisement