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

    WebDialogs - The Lost Manual — R1 09 November 2009

    Scheduled Pinned Locked Moved Developers' Forum
    43 Posts 13 Posters 22.1k Views 13 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.
    • T Offline
      tomot
      last edited by

      greatly appreciated!

      [my plugins](http://thingsvirtual.blogspot.ca/)
      tomot

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

        Note to self: Update Async vs sync Communication
        It's not .execute_script that's async - it's the Javascript callback using the skp: protocol

        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

          Thanks for doing this Thomas.

          Hi

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

            Revision 1
            Updated info about async vs sync behaviour.

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

            1 Reply Last reply Reply Quote 0
            • M Offline
              MartinRinehart
              last edited by

              👍 👍 👍

              Author, Edges to Rubies - The Complete SketchUp Tutorial at http://www.MartinRinehart.com/models/tutorial.

              1 Reply Last reply Reply Quote 0
              • chrisglasierC Offline
                chrisglasier
                last edited by

                @unknownuser said:

                Finally, there is a difference in the way that the Mac boots up SketchUp that you should be cautious about: there is no Sketchup.active_model when the Ruby scripts are first loaded. So if your script is making changes to the active_model at load time, it will not work on the Mac. The answer? Ensure code that references the active model is part of a UI event handler, responding to the user selecting a tool or a menu item. You can also use an AppObserver to get a callback whenever a new model is opened, at which point it's safe to talk to the active_model.

                I didn't see this anywhere. I don't remember where it comes from.

                How about marking topics and posts with [WebDialog]?

                Good work - most generous with your time.

                Chris

                With TBA interfaces we can analyse what is to be achieved so that IT can help with automation to achieve it.

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

                  I hope that people will point out things that are not clear. Writing has never been my strongest skill, actually - its one of my poor, so please point out the weaknesses.

                  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
                    tomasz
                    last edited by

                    Thank you!

                    Author of [Thea Render for SketchUp](http://www.thearender.com/sketchup)

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

                      Hi Thom,

                      thanks for sharing this really usefull information!

                      Just as a side note:
                      We have found a bug, which cuts decimal value sent from SketchUp to WebDialog (only in SU6 on Mac). If we i.e. want to update the value of some input box like this:
                      web_dialog.execute_script("updateInputBox('varName', '12,345')")
                      only 12 is shown in the varnName inputbox, everything behind (and including) comma is being cut off. But it works in SU7 on Mac and on both, 6 and 7 versions of SU on Windows.

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

                        Ah, is that whatæs being mentioned in the release notes: http://code.google.com/apis/sketchup/docs/releases.html

                        @unknownuser said:

                        Fixed Mac support for WebDialogs execute_script

                        WebDialog.execute_script('alert("Bug is Fixed!")');
                        

                        Does it work if you escape the comma? If not, replace it with another character?

                        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
                          Jernej Vidmar
                          last edited by

                          No, escaping doesn't seem to help. Only way to pass the float value is to write it using dot (1.12) not comma (1,12)...
                          For now we have not found a workaround, but we intend to make some more tests to see if the problem can be bypassed.

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

                            I wonder, if you make a special receiving javascript function, and send all command base64 encoded to that function and have it decode and eval it..?

                            
                            # made up methods - haven't checked the real methods
                            jscall = base64encode("updateInputBox('varName', '12,345')") 
                            WebDialog.execute_script("decode(#{jscall})");
                            
                            
                            
                            function decode(base64str)
                              eval(decode64(base64str));
                            end
                            
                            

                            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
                              DIEGO-RODRIGUEZ
                              last edited by

                              interesting applications for html

                              html 5
                              http://html5demos.com/

                              and

                              Link Preview Image
                              www.dhtmlgoodies.com has expired

                              favicon

                              (www.dhtmlgoodies.com)

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

                                You won't be able to use HTML5 in webdialogs - not until IE adds support for it. Think I read somewhere that they where adding support for it in IE9. Being able to use CANVAS sure would be nice.

                                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
                                  tbleicher
                                  last edited by

                                  @thomthom said:

                                  You won't be able to use HTML5 in webdialogs - not until IE adds support for it.

                                  I am using excanvas http://code.google.com/p/explorercanvas/ which provides a canvas object in IE.

                                  Thomas

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

                                    @tbleicher said:

                                    @thomthom said:

                                    You won't be able to use HTML5 in webdialogs - not until IE adds support for it.

                                    I am using excanvas http://code.google.com/p/explorercanvas/ which provides a canvas object in IE.

                                    Thomas

                                    That's very interesting! I've been wanting for a good solution to dynamically draw graphics in webdialogs. Probably be of interest for Whaat as well... ...thinking Profile Builder...

                                    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

                                      And just to have more options, there is also chrome frame.

                                      Hi

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

                                        @jim said:

                                        And just to have more options, there is also chrome frame.

                                        Yea, but this requires the user to install a browser plugin.
                                        explorercanvas is a simple JS library which the developer includes in the project without the user ever having to install any browser extension. That's what's appeal to me.

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

                                        1 Reply Last reply Reply Quote 0
                                        • P Offline
                                          Pout
                                          last edited by

                                          this seems to be very interesting
                                          Have to dig into this.

                                          1 Reply Last reply Reply Quote 0
                                          • chrisglasierC Offline
                                            chrisglasier
                                            last edited by

                                            One thing driven discovered was that if for some reason there is whitespace as here -

                                            cmd = "fImportReturn('#{array}');"
                                            @dlg.execute_script (cmd)
                                            
                                            instead of
                                            
                                            @dlg.execute_script(cmd)
                                            
                                            
                                            

                                            it is OK on PCs but not Macs. This maybe of interest to coders who use this style (Jim).

                                            With TBA interfaces we can analyse what is to be achieved so that IT can help with automation to achieve it.

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

                                            Advertisement