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

    [Plugin] Color by Slope

    Scheduled Pinned Locked Moved Plugins
    52 Posts 25 Posters 57.5k Views 25 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.
    • TIGT Online
      TIG Moderator
      last edited by

      When an author includes a file inside their own subfolder like TT's it's to keep a similar but separate code set.
      Don't worry about that one.
      Are you sure the require files are all really inside Plugins and not sidetracked by some 'Compatibility Files' OS trickery because you don't have FULL access rights to the Plugins folder ???

      TIG

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

        Ahh ... require files ...

        sketchup.rb is in ...google sketchup8\tools
        progressbar.rb is in ...google sketchup8\plugins
        offset.rb is in ...google sketchup8\plugins\ (additional require file in greeble_2.rb)

        I have administrative access to my computer.. is that what you mean ?
        I see all file extensions...ie, hidden etc.
        i keep my program files rooted under πŸ˜„
        majority of other files under user\username\documents .. user\username\downloads, etc.

        I noticed this (if it matters):
        single quotes in color_by_slope and color_by_Z
        require 'sketchup.rb'
        require 'progressbar.rb'

        double quotes in greeble_2.rb
        require "sketchup.rb"
        require "offset.rb"
        require "progressbar.rb"

        I here ya about the 'Compatibility Files' OS trickery stuff ... frustrating at times.
        in a few hours I'll do a complete fulll search to try and get to the bottom of this.

        or maybe it could just be my computer ... it does wonky things on occasion
        and it's about 100 degree (F) outside here today ... 😎

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

          Don't worry about 'xxx' and "xxx" these enclose a text string xxx - and they are often synonymous.
          Although 'escaped' characters [\n etc] behave differently inside them.

          A require statement is simply a way of ensuring that a file is loaded before the rest of the code. If it has already been loaded [for example by a script that loaded earlier] then it's skipped over this time. Some special functions are created by the sketchup.rb so it's often 'required' in scripts, the progressbar.rb adds a visual progressbar in the status text to show you how far along the processing has got.
          You don't need to worry about a required file's location.
          Sketchup's own files [like Sketchup.rb] are kept in the Tools folder.
          The vast majority of others go into Plugins folder, as directed by each tools installation notes...
          As Ruby files are auto-loaded as Sketchup starts a system array is read - $LOAD_PATH - by default this includes the path to the Plugins folder and then Tools folder - so 3rd party tools add extra paths to it at startup so that Sketchup loads files from additional locations as well. Files load in alphanumeric order so 'aaa.rb' loads before 'xxx.rb' from Plugins. Because 'sketchup.rb' loads later on from the Tools folder it's important that scripts loading from Plugins 'require' it so it's preloaded to be used by their code.
          Some rogue/misguided scripts add an old 'Sketchup.rb' file into Plugins. If so then please remove it; the only copy should be the one installed by Sketchup itself, and that must be in Tools.
          'Compatibility Files' can cause unexpected issues - ensure your security permissions to all files an subfolders within the Sketchup folder are set to 'FULL'. This is particularly important for the correct installation of scripts and their subfolders of helper files inside Plugins, and also not frgeting the Materials, Components and Styles folders, where you may wish to use 'save_as' for some aspects of your models, or to keep 'libraries' of others bits...

          TIG

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

            does this script work for 2013? I tried downloading from the extension warehouse and got some odd error messages. Next I tried the smustard download and installed in the plugin folder (along with progress bar plugin), restarted sketchup, checked my plugin section and do not see it any where. Am I missing something? I would love to try this out.
            thanks for any help you can shed

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

              What were the "odd error messages"?

              Etaoin Shrdlu

              %

              (THERE'S NO PLACE LIKE)

              G28 X0.0 Y0.0 Z0.0

              M30

              %

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

                I tried it again to get the direct quote and this time it worked. It may be that I tried the extension warehouse first then smustard. When looking at the smustard site it listed the prerequisite ruby (progress bar) which I installed.

                If this were true it would raise the question: does the extension warehouse (via SU) give a warning or list of prerequisite scripts?

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

                  Requires progressbar.rb probably ought to be included on the Extension Warehouse page. It should be indicated in the first post of the original thread here on SCF. The error message you got most likely would have indicated that progressbar.rb was missing as well.

                  Etaoin Shrdlu

                  %

                  (THERE'S NO PLACE LIKE)

                  G28 X0.0 Y0.0 Z0.0

                  M30

                  %

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

                    Thanks for the quick help, its working now and great for what I am doing

                    1 Reply Last reply Reply Quote 0
                    • Chris FullmerC Offline
                      Chris Fullmer
                      last edited by

                      Weird, I'll try to test the version on the warehouse. The one on the EW should not need progressbar though. I removed that dependency from that version. But maybe I introduced a bug in the process πŸ˜„

                      Lately you've been tan, suspicious for the winter.
                      All my Plugins I've written

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

                        @chris fullmer said:

                        Weird, I'll try to test the version on the warehouse. The one on the EW should not need progressbar though. I removed that dependency from that version. But maybe I introduced a bug in the process πŸ˜„

                        Hello Chris!
                        How it possible to do, what plug in coloring face by slope range?
                        For example 0-10 red; 10-20 orange; 20-30 yellow...............
                        I really need this function to analyses terrain by slope.

                        Thanks

                        1 Reply Last reply Reply Quote 0
                        • pilouP Offline
                          pilou
                          last edited by

                          Maybe "Color By" by Sdmitch? (not retested) 😳

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

                          1 Reply Last reply Reply Quote 0
                          • T Offline
                            tpl
                            last edited by

                            Hello Tig (and Chris),

                            Thank you to you both for the original colr by slope ruby and the modifications to it to show colors for various slope angles. I have found the rz. file but it is unclear what needs to be edited and replaced. Is a new color by slope plug in for the various angles available?

                            Thanks again,

                            TP Light - Now CA (previously UK)

                            @tig said:

                            Hope I'm not standing on any toes... πŸ˜•

                            ### edited/replace the code from here................
                            > faces = []
                            > flat = []
                            > angle = 0.0
                            > sel.each do |e|
                            >   faces << e if e.is_a? Sketchup;;Face
                            > end#do
                            > ### first set up some [r,g,b] colors for various slope angles
                            > ### we use them if they exist, but if not make them...
                            > if not color_00_20 = model.materials["color_00_20"]
                            >   color_00_20 = model.materials.add("color_00_20")
                            >   color_00_20.color= [120,0,0]
                            > end#if
                            > if not color_20_40 = model.materials["color_20_40"]
                            >   color_20_40 = model.materials.add("color_20_40")
                            >   color_20_40.color= [150,0,0]
                            > end#if
                            > if not color_40_60 = model.materials["color_40_60"]
                            >   color_40_60 = model.materials.add("color_40_60")
                            >   color_40_60.color= [180,0,0]
                            > end#if
                            > if not color_60_80 = model.materials["color_60_80"]
                            >   color_60_80 = model.materials.add("color_60_80")
                            >   color_60_80.color= [210,0,0]
                            > end#if
                            > if not color_80_90 = model.materials["color_80_90"]
                            >   color_80_90 = model.materials.add("color_80_00")
                            >   color_80_90.color= [240,0,0]
                            > end#if
                            > ### you can adjust the colors' rgb values to suit...
                            > ###
                            > faces.each do |e|
                            >   enorm = e.normal
                            >   flat = Geom;;Vector3d.new(enorm[0],enorm[1],0)
                            >   angle = (flat.angle_between enorm).radians ### angle in in degrees
                            >   ### now set up the tests for different angles
                            >   ### change these test ranges etc to suit your requirements...
                            >   if angle>=0.0 and angle<=20.0
                            >     color=color_00_20
                            >   elsif angle>20.0 and angle<=40.0
                            >     color=color_30_40
                            >   elsif angle>40.0 and angle<=60.0
                            >     color=color_40_60
                            >   elsif angle>60.0 and angle<=80.0
                            >     color=color_60_80
                            >   else ### angle>80.0
                            >     color=color_80_90
                            >   end#if
                            >   e.material = color
                            >   e.back_material = color
                            > end#do
                            > ### end of edit/replace.................
                            > 
                            

                            Make a backup copy of the original ruby script outside of the Plugins folder so it won't try load twice. If you mess up then you have the original to use again...

                            Now edit/replace the version that's still in the Plugins folder, as set out above [open with Notepad.exe or equivalent plain-text editor].
                            Save it and restart Sketchup - all slopes should now be colored in the angle-ranges and colors you've specified...
                            πŸ€“

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

                            Advertisement