sketchucation logo sketchucation
    • Login
    โ„น๏ธ Licensed Extensions | FredoBatch, ElevationProfile, FredoSketch, LayOps, MatSim and Pic2Shape will require license from Sept 1st More Info

    [Plugin] AMS Library 3.7.1b (29 May 2021)

    Scheduled Pinned Locked Moved Plugins
    107 Posts 38 Posters 615.5k Views 38 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.
    • A Offline
      Anton_S
      last edited by

      Thanks for the head start, Jim! That, SendMessageCallback, should do it. I will implement it into my library for an easy way to use. This is what I'm thinking to add in the future release:

      A function to communicate to another window.
      ` # Transmit information to another window.

      @param [Fixnum] dest_handle A handle to a destination window.

      @param [Fixnum] id A unique message identifier, a value b/w 0 and 4016.

      ID allows users to filter their messages from messages of other users.

      However, there is a downside, as some plugin developers might use

      same ID, but it's very unlikely.

      @param [String] data Message information.

      AMS::Sketchup.send_message_to_window(dest_handle, id, data)`

      An observer that receives transmitted messages.
      ` # Called when user sent message arrives to its destination window.

      @param [Fixnum] sender_handle A handle to a window that sent a message.

      @param [Fixnum] id Message id.

      @param [Fixnum] data Message information.

      AMS::SketchupObsever.swo_on_message_received(sender_handle, id, data)`

      A bonus function that allows users to get handles to all Sketchup Windows.
      ` # Get all SU windows

      @return [Array<Fixnum>] An array of all SketchUp main windows except this one.

      AMS.get_all_sketchup_windows`

      An example, where this window communicates to all other SU windows:

      class MyDataTransferClass
      
        MY_PORT = 123
      
        # @param [String] Data in string form.
        def send_data_to_all_windows(data)
          su_windows = AMS.get_all_sketchup_windows
          su_windows.each { |dest_handle|
            AMS;;Sketchup.send_message_to_window(dest_handle, MY_PORT, data)
          }
        end
      
        # Implement one of the SketchUp Window Observer callback methods.
        def swo_on_message_received(sender_handle, id, data)
          # Return if id is not yours
          if id != MY_PORT
          # Otherwise, do anything with data.
          # In our case, we'll evaluate it.
          eval(data)
        end
      
      end # class MyDataTransferClass
      
      # Create an instance of our communication class
      my_data_transfer = MyDataTransferClass.new
      
      # Register your class to SketchUp observers as it contains one of the SU observer methods.
      AMS;;Sketchup.add_observer(my_data_transfer)
      
      # Send a message to all other SU windows.
      my_data_transfer.send_data_to_all_windows("puts 'Hi, this is a message from another window!'")
      

      Well, you have an insigt of how I'm planning to implement it. Once I'll add these functions into my library, I will notify you, wikii.

      If anyone has any suggestions on improvement of this plan, please inform.

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

        @anton_s said:

        Hello Pherim. I tried to reproduce the crash or inconsistent cursor changing behavior with AMS Library 3.0.1, but, similarly to your trial, I couldn't. It is very likely that such bug persisted in version 3.0.0, but not in the current version, 3.0.1. But to be sure, I'll keep an eye on the library.

        Hello,

        it happened again, now in Sketchup2016, with basically nothing but your plugins installed via Sketchucation tools. I don't know what exactly causes it, but it never happened with AMS Library and Window Settings disabled. I hope you can find the issue and fix it, as I would really like to be able to toggle toolbars and toolbar containers with hotkeys. With SU2016, the new trays which replace the dialog windows can natively be toggled with hotkeys, which is a very good addition in my opinion.

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

          Thanks for your another report Pherim. I'm trying my best to reproduce that crash. In order to track it down, a little more information that lead to a crash would be appreciated.

          1. Did the crash occurred following a certain operation, like triggering a particular button, shortcut, or command or did the crash occur randomly?
          2. At what time did SU crash, when SU launched or some after it after is launched?
          3. Was the Window Settings dialog open at the time of the crash?
          1 Reply Last reply Reply Quote 0
          • P Offline
            Pherim
            last edited by

            Alright, here's what I got so far:

            When I start Sketchup with AMS Lib and Window Settings active, at first everything works fine. As I begin playing around with different tools, both native SU and from extensions, after a short time, tools begin to stay highlighted in the toolbar (only native SU toolbars in SU 2016, as tools in other toolbar are not highlighted at all in this version) even after changing to another tool, and then shortly after SU will crash when right-clicking, mostly on a group or component, I believe, and possibly only with a non-native tool active.

            It does not happen with just AMS Lib active and Window Settings disabled in Sketchucation Plugins/Extensions Manager, but as no other plugin depends on it, I guess it could be the cause, as well.

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

              Hello Wikii, I have added a feature to communicate between windows on same computer. See http://www.rubydoc.info/github/AntonSynytsia/AMS-Library/master/AMS/Sketchup#send_user_message-class_method

              Pherim, I tried reproducing that crash and I came across it once, but, following similar operations, I couldn't reproduce it again. It seems to occur very rarely. I haven't been able to track the crash down, but I did make small changes and improvements, which could potentially resolve the crash.

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

                I'm afraid it still happens... I was just able to reproduce it two times, using only standard tools.

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

                  Good! Looks like you know the exact steps to reproduce it. List 'em here, please.

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

                    Well there is not much more to it than I already wrote. I just use various tools, make groups and components and edit them, until the tools begin to stay highlighted in the toolbar - this happens all the time. Then, at some point, it eventually crashes when I right-click, possibly only or at least more often on groups or components. I tried to record a video of the process, but so far, I have not been able to produce a crash while recording. Maybe they are not happening as often now, but they definitely still do.

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

                      Hello everyone, AMS Library version 3.1.1 has been released. It is important to upgrade to a new version because it addresses a bug fix, which caused spike in performance, which lead to toolbar icons staying highlighted and eventually to a crash. Huge thanks to Pherim for reporting and verifying it. See first post for download links.

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

                        Thanks again for fixing it!

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

                          i think it no longer has a support for xp...it shows some error ๐Ÿ˜ ...sorry i forgot to post some pics...but it really does.i hope some xp users show the error..but i'll post it soon...or maybe its a bug...please dont stop the support for xp unlike microsoft...this is a really great plugin with lots of possibilities.... ๐Ÿ˜‰

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

                            Opps I forgot to test it on Win XP. Ill check it out.

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

                              Hello, junaramaro, I made it compatible with Windows XP. Thanks for reporting.

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

                                Thank you so much sir... ๐Ÿ˜„ ...i'm updating now. i really love being in this community of loving and thoughtful persons...
                                thank you again master ...may the force be with you... ๐Ÿ˜†

                                i really think you have to be a jedi to come up with this wonderful things...

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

                                  Hello
                                  Everytime I try to hide menu bar with AMS Window Settings crash my SU 2016. Iยดm using AMS Window Settings 4.2.0 and AMS Library 3.1.4
                                  Please help, is really useful optimize my screen when I work on the laptop
                                  Thanks for your greats plugins

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

                                    Can you downgrade to 3.1.3 and check if the crash still occurs? Here is the download link to 3.1.3: https://drive.google.com/open?id=0B3qg8f4WrNdHci1DLTZEbVpqdzQ

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

                                      I had 3.1.3 before, actually I did upgrade to 3.1.4 trying to fix this
                                      Thanks

                                      1 Reply Last reply Reply Quote 0
                                      • L Offline
                                        lionk
                                        last edited by

                                        Hi Anton_S, is there an observer to detect whether the trays in sketchup2016 is automatically shown or hidden, and its width and position?

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

                                          Hello lionk,

                                          There is no observer that triggers when dialogs/trays are shown or hidden. There is a way, however, to detect if SU2016 trays are visible.

                                          Consider the following code snippet to get all visible trays:

                                          
                                          # Obtain visible trays
                                          visible_trays = []
                                          AMS;;Sketchup.get_visible_dialogs.each { |handle|
                                            cname = AMS;;Window.get_class_name(handle)
                                            visible_trays << handle if cname =~ /Afx;ControlBar|Afx;MiniFrame/
                                          }
                                          visible_trays
                                          
                                          

                                          As well as, the following snippet to get all visible trays along with their information, such as title, width, height, and whether its docked or floating:

                                          
                                          # Get tray information.
                                          # Afx;ControlBar resembles a docked tray
                                          # Afx;MiniFrame resembles a floating tray
                                          tray_data = {}
                                          AMS;;Sketchup.get_visible_dialogs.each { |handle|
                                            cname = AMS;;Window.get_class_name(handle)
                                            next if cname !~ /Afx;ControlBar|Afx;MiniFrame/
                                            rect = AMS;;Window.get_rect(handle)
                                            tray_data[handle] = {
                                              ;caption => AMS;;Window.get_caption(handle),
                                              ;docked  => cname =~ /Afx;ControlBar/ ? true ; false, # docked or floating
                                              ;width   => rect[2] - rect[0],
                                              ;height  => rect[3] - rect[1]
                                            }
                                          }
                                          tray_data
                                          
                                          

                                          Anton

                                          1 Reply Last reply Reply Quote 0
                                          • L Offline
                                            lionk
                                            last edited by

                                            Thank you!
                                            I want to get the status of trays in auto-hide mode, and its size and position, so I can get the accurate width or height of the view. Because the trays will overlap part of the view.
                                            trays auto-hide.gif

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

                                            Advertisement