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

    How to pause a ruby script for 1 second

    Scheduled Pinned Locked Moved Developers' Forum
    25 Posts 5 Posters 5.0k Views 5 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.
    • N Offline
      N Lindenthal
      last edited by

      @alexmozg said:

      @unknownuser said:

      …And completely to get rid from selection.

      Where I can find "following.rbs"?
      I shall think...

      Yes, rid from selection …

      … but how? This way?

      select_comp_by_name("Fahrstuhl")
      def Morisdov.transf_get(dict_key, ss=nil)
        model=Sketchup.active_model               
        ents=model.active_entities
         if ss
           @ents = ss
         else
           @ents=[]
           model.selection.each {|e| @ents.push(e)}
         end                                 
        @ents.freeze
        model.selection.clear
      end
      

      (my poor english) Which "following.rbs" you need?

      1 Reply Last reply Reply Quote 0
      • A Offline
        AlexMozg
        last edited by

        @unknownuser said:

        Yes, rid from selection …

        … but how? This way?

        
        def select_comp_by_name(comp_name)
           model = Sketchup.active_model
           if compdef = Sketchup.active_model.definitions[comp_name]
              sel = compdef.instances
           else
              sel=[]
              Sketchup.active_model.active_entities.each do |d|
                 if d.typename == "ComponentInstance"
                 sel << d if d.name==comp_name
              end
           end
              if sel.count == 0
                 UI.beep
              else
                 UI.messagebox(sel.count.to_s + " gesuchte Dinger gefunden.")
              end
           end
        sel
        end
        
        def Morisdov.transf_get(dict_key, ss=nil)
          model=Sketchup.active_model               
          ents=model.active_entities
           if ss
             @ents = ss
           else
             @ents=[]
             model.selection.each {|e| @ents.push(e)}
           end                                 
          @ents.freeze
          model.selection.clear
          ...
          ...<<original code>>...
          ...
        end
        
        
        
        
        

        Use:

        1. ss = select_comp_by_name("Fahrstuhl")
        2. Morisdov.transf_get(dict_key, ss)

        @unknownuser said:

        (my poor english) Which "following.rbs" you need?

        Here this:

        @unknownuser said:

        ...Position 2
        To get the script work, the following .rbs must be installed:

        ????

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

          I know this is old, but I was needing an answer to something similar today, and this thread over-complexificated the issue for me. I just wanted to add a short .2 second delay before carrying on with my script. This is what I've come up with and it worked for me. No need to invoke the UI.timer

          time_mark = ( Time.now + 0.2 )
          while time_mark > Time.now
          end
          

          Hopefully thats helpful if anyone stumbles on this thread,

          Chris

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

          1 Reply Last reply Reply Quote 0
          • tbdT Offline
            tbd
            last edited by

            Chris: i hope your code is called only by the user and not in an Observer or right click menus, because it will stop Ruby thread and if you call this several times it will block a lot of things.

            SketchUp Ruby Consultant | Podium 1.x developer
            http://plugins.ro

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

              Ahh, I see. I think its ok in this instance to stop up ruby entirely. I was having very little luck getting it to work any other way. I just kept sending SU into a deeep coma.

              Maybe I'll try to post my broken code using the timer and try to get that working instead then. Thanks Tavi,

              Chris

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

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

              Advertisement