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

    Hiding Outliner Window

    Scheduled Pinned Locked Moved Developers' Forum
    24 Posts 6 Posters 2.9k Views 6 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.
    • J Offline
      Jim
      last edited by

      Nesting start/commits has always been a no-no. I don't think the transparent nor the prev_trans arguments are related to nesting.

      Hi

      1 Reply Last reply Reply Quote 0
      • thomthomT Offline
        thomthom
        last edited by

        @jim said:

        Nesting start/commits has always been a no-no. I don't think the transparent nor the prev_trans arguments are related to nesting.

        haven't tried to nest them. But making one commit transparent to the previous one - impossible...

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

        1 Reply Last reply Reply Quote 0
        • J Offline
          Jim
          last edited by

          The only way I know to pause a script is to use timers. I believe that is what Fredo does in plug-ins such as Round Corner which can be interrupted during long operations. You can call view.refresh (v 7.1+) to force a refresh of the view.

          Hi

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

            @jim said:

            The only way I know to pause a script is to use timers. I believe that is what Fredo does in plug-ins such as Round Corner which can be interrupted during long operations. You can call view.refresh (v 7.1+) to force a refresh of the view.

            You 'pause' a script so you can see the geometry so far by having start/commit operations that follow each other - unfortunately that means an undo for each operation... What we need is some way of group all of these into a 'nesting' operation that can be undone in one step ?

            TIG

            1 Reply Last reply Reply Quote 0
            • thomthomT Offline
              thomthom
              last edited by

              @tig said:

              You 'pause' a script so you can see the geometry so far by having start/commit operations that follow each other - unfortunately that means an undo for each operation... What we need is some way of group all of these into a 'nesting' operation that can be undone in one step ?

              That's what the third and fourth argument in .start_operation is meant for. If only they where working... 😞

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

              1 Reply Last reply Reply Quote 0
              • J Offline
                Jim
                last edited by

                @tig said:

                You 'pause' a script so you can see the geometry so far by having start/commit operations that follow each other

                This is not a requirement for updating the view. There are other ways to do it.

                I have not tried it in awhile, but I seem to remember a messagebox will pause the program and the view will be updated. Or maybe calling view.refresh followed by sleep(2) might work. I mean, if your goal is to pause the program just to see it's progress.

                Hi

                1 Reply Last reply Reply Quote 0
                • fredo6F Offline
                  fredo6
                  last edited by

                  @tig said:

                  @jim said:

                  The only way I know to pause a script is to use timers. I believe that is what Fredo does in plug-ins such as Round Corner which can be interrupted during long operations. You can call view.refresh (v 7.1+) to force a refresh of the view.

                  You 'pause' a script so you can see the geometry so far by having start/commit operations that follow each other - unfortunately that means an undo for each operation... What we need is some way of group all of these into a 'nesting' operation that can be undone in one step ?

                  You don't need the extra arguments and can do all geometry within a single Start - Commit operation.
                  Just give back control to the Tool by encapsulating the geometry construction in timers.

                  Fredo

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

                    @jim said:

                    @tig said:

                    You 'pause' a script so you can see the geometry so far by having start/commit operations that follow each other

                    This is not a requirement for updating the view. There are other ways to do it.
                    I have not tried it in a while, but I seem to remember a messagebox will pause the program and the view will be updated. Or maybe calling view.refresh followed by sleep(2) might work. I mean, if your goal is to pause the program just to see it's progress.

                    A messagebox will cause a window to redraw IF the start_operation argument is false - but if it's true the window's contents are unchanged until the commit arrives.
                    view.refresh should work with the operation BUT it IS limited to very recent SUp versions, so cannot be backwardly compatible. To such make a script v6 compatible would mean convoluted version checking...
                    view.invalidate waits for the commit.
                    πŸ€“

                    TIG

                    1 Reply Last reply Reply Quote 0
                    • Dan RathbunD Offline
                      Dan Rathbun
                      last edited by

                      At the end of the operation, does SU update the UI automatically?

                      or, is it a good idea (just to be sure) to call:
                      UI.refresh_inspectors # force complete UI update
                      http://code.google.com/apis/sketchup/docs/releases.html

                      I'm not here much anymore.

                      1 Reply Last reply Reply Quote 0
                      • thomthomT Offline
                        thomthom
                        last edited by

                        In my experience SU seem to update the viewport after commit_operation.

                        But if an error occurs before your [ruby]commit_operation[/ruby - then the viewport won't update until you pan/orbin/draw.

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

                        1 Reply Last reply Reply Quote 0
                        • F Offline
                          filcole
                          last edited by

                          Hi Tig (and all others),

                          Thanks for the responses, fixed my problem wonderfully. Kudos.

                          I did try using start_operation() with the second parameter set to true, but the Outliner window is still redrawn when each dynamic component is redraw using $dc_observers.get_latest_class.redraw_with_undo(compInst).

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

                          Advertisement