• Login
sketchucation logo sketchucation
  • Login
πŸ”Œ Quick Selection | Try Didier Bur's reworked classic extension that supercharges selections in SketchUp Download

Problem with color

Scheduled Pinned Locked Moved Developers' Forum
14 Posts 4 Posters 287 Views 4 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.
  • C Offline
    Chris88
    last edited by 5 Dec 2011, 11:06

    Hi all,
    i need some help on a specific problem,
    when i start sketchup with my code by loading my script from the plugin folder or with the command "-Rubystartup" in the cmd, the cuboid will be drawn, but not colored.
    What i'm doing wrong?

    ` require 'sketchup.rb'

    def create_box

    model = Sketchup.active_model
    model.start_operation $exStrings.GetString("Create Box")	
    entities = model.active_entities  	
    group = entities.add_group
    entitites = group.entities
    

    width = 70 # 70
    depth = 60 # 60
    height = 25 # 25
    color = Sketchup::Color.new(255,240,187)

    pts = []
    pts[0] = [0, 0, 0]
    pts[1] = [width, 0, 0]
    pts[2] = [width, depth, 0]
    pts[3] = [0, depth, 0]
    base = entities.add_face pts	
    
    height = -height		
    area = base.area
    base.material = color	
    base.back_material = color
    base.pushpull(height)
    
    model.commit_operation
    

    end

    create_box`
    Thanks for help.

    P.S. when i execute my script(the same code) in RDE with the Sketchup-Bridge, the color is drawn.

    1 Reply Last reply Reply Quote 0
    • D Offline
      Dan Rathbun
      last edited by 5 Dec 2011, 13:00

      @chris88 said:

      What i'm doing wrong?

      SIMPLE

      Your ignoring what I told you to do before (in previous posts.)

      ALL YOUR code should be wrapped within your 'author' namespace ( module Chris88, or whatever is unique to you,) to protect it from other code.

      If the Examples are loading after your code, Examples/box.rb will redefine Object.create_box(), and if the Tools/make_pano_pm.rb is also loading, it will again redefine Object.create_box().

      Both of these Google supplied scripts, are examples of POORLY written code.

      I'm not here much anymore.

      1 Reply Last reply Reply Quote 0
      • T Offline
        TIG Moderator
        last edited by 5 Dec 2011, 13:50

        Apart from sloppy coding you are muddling up 'color' and 'material'.
        You make a color and then try to assign it to a face as if it were a material - that won't work
        Make a material.
        Give that material a color.
        Add the material to the face.
        mat=model.materials.add("MyLovelyMaterial") mat.color=[255,240,187] face.material=mat
        etc etc

        TIG

        1 Reply Last reply Reply Quote 0
        • C Offline
          Chris88
          last edited by 5 Dec 2011, 14:10

          @ Dan:
          well unfortunately this doesn't help,
          i have only one file with the aforementioned code.
          And if i wrapped it in a namespace, the problem isn't fixed. The cuboid is drawn colorlessly. Only the sketchup-bridge in RDE draw it with color, but it should do that from the plungins folder.

          1 Reply Last reply Reply Quote 0
          • T Offline
            thomthom
            last edited by 5 Dec 2011, 14:32

            @chris88 said:

            @ Dan:
            well unfortunately this doesn't help,
            i have only one file with the aforementioned code.
            And if i wrapped it in a namespace, the problem isn't fixed. The cuboid is drawn colorlessly. Only the sketchup-bridge in RDE draw it with color, but it should do that from the plungins folder.

            Maybe you can't create geometry like that immediacy as SU starts?
            What happens if you call your command from the Ruby Console, or activate it from a menu? Just a thought since your file calls your method as it loads with SU - maybe SU isn't ready.

            Thomas Thomassen β€” SketchUp Monkey & Coding addict
            List of my plugins and link to the CookieWare fund

            1 Reply Last reply Reply Quote 0
            • T Offline
              TIG Moderator
              last edited by 5 Dec 2011, 14:43

              You are wrongly applying a color as if it were a material, if you'd reread my post!

              On the question of it not working at startup why not add a test loop at the very start of your def, along the lines of
              unless Sketchup.active_model;until Sketchup.active_model.active_entities;end;end
              so it waits until there IS an active entities object to add geometry to ???

              TIG

              1 Reply Last reply Reply Quote 0
              • T Offline
                thomthom
                last edited by 5 Dec 2011, 14:53

                @tig said:

                On the question of it not working at startup why not add a test loop at the very start of your def, along the lines of
                unless Sketchup.active_model;until Sketchup.active_model.active_entities;end;end
                so it waits until there IS an active entities object to add geometry to ???

                That that doesn't block the processing queue? ❓

                Thomas Thomassen β€” SketchUp Monkey & Coding addict
                List of my plugins and link to the CookieWare fund

                1 Reply Last reply Reply Quote 0
                • T Offline
                  TIG Moderator
                  last edited by 5 Dec 2011, 14:56

                  Haven't tried it...
                  He could also try a timer to kick in after a few seconds from loading the code ?

                  TIG

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    thomthom
                    last edited by 5 Dec 2011, 15:15

                    Maybe.

                    But maybe there's another way around this...

                    I think we need to step back and figure out the purpose of this exercise, and not get caught up in an issue that could be a non-issue if there are better alternatives.

                    Why is the method called upon startup? Is it to perform testing? Do you (Chris88) restart SU when you change your code?
                    If you do - then there is an alternative. Just type into the Ruby Console: load 'myrubyfile.rb' to reload the code without restarting SU.

                    Thomas Thomassen β€” SketchUp Monkey & Coding addict
                    List of my plugins and link to the CookieWare fund

                    1 Reply Last reply Reply Quote 0
                    • D Offline
                      Dan Rathbun
                      last edited by 5 Dec 2011, 22:19

                      @chris88 said:

                      @ Dan: well unfortunately this doesn't help,
                      i have only one file with the aforementioned code.

                      Sorry.. wrong issue. I saw create_box() and assumed.. shame on me. 😳
                      Quitting smoking and working on the dirty underside of my car males me grumpy, but I should not have "snipped" at you. My apologies.

                      @chris88 said:

                      And if i wrapped it in a namespace, the problem isn't fixed.

                      True.. but you still need to write code in your own namespace.

                      @chris88 said:

                      @ Dan: well unfortunately this doesn't help,
                      I have only one file with the aforementioned code.

                      Google installs the other two files.. which conflict with each other.

                      You would best chose another method name, if your going to define that method in the global Objectspace.

                      πŸ˜‰

                      I'm not here much anymore.

                      1 Reply Last reply Reply Quote 0
                      • C Offline
                        Chris88
                        last edited by 8 Dec 2011, 08:52

                        Sorry i wasn't online the last days.
                        First of all thanks for your suggestions.
                        I don't prefer the method with the timer, because i have to close and
                        open SU many times in a row. But i like the method "load rubyscript.rb"
                        i will test it.
                        And thanks to TIG, your help me a lot.
                        @Dan It's ok πŸ˜‰

                        1 Reply Last reply Reply Quote 0
                        • C Offline
                          Chris88
                          last edited by 8 Dec 2011, 09:15

                          This unless Sketchup.active_model;until Sketchup.active_model.active_entities;end;end
                          and this load 'myrubyfile.rb' are the solutions for my problem, well it's really so,
                          that SU isn't ready to load the color.
                          Thanks again.

                          Can anyone say how to make the material transparent, please?

                          1 Reply Last reply Reply Quote 0
                          • T Offline
                            thomthom
                            last edited by 8 Dec 2011, 09:35

                            @chris88 said:

                            Can anyone say how to make the material transparent, please?

                            http://code.google.com/apis/sketchup/docs/ourdoc/material.html#alpha=

                            Note that the Material object doesn't use the alpha channel of the Color object.

                            <span class="syntaxdefault">m </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> Sketchup</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">active_model</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">materials</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> </span><span class="syntaxstring">'MyMaterial'</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">m</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">color </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">[</span><span class="syntaxdefault">255</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">128</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">]<br /></span><span class="syntaxdefault">m</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">alpha </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0.5<br /></span>
                            

                            Thomas Thomassen β€” SketchUp Monkey & Coding addict
                            List of my plugins and link to the CookieWare fund

                            1 Reply Last reply Reply Quote 0
                            • C Offline
                              Chris88
                              last edited by 8 Dec 2011, 09:42

                              Great!
                              Thank you, i like this forum more and more.

                              Merry Christmas and happy holidays to all!

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

                              Advertisement