Sketchup.send_action arguments: Mac vs PC

Sketchup.send_action arguments: Mac vs PC

Postby Dan Rathbun » Tue Jun 08, 2010 1:16 am

at SU GoogleGroups, Jim Johnson wrote: But it brings up this question -

"showRubyPanel:" vs. CMD_RUBY_CONSOLE

Dan or anyone - is there a preference?

The preference will always be that which IS cross-platform, and will likely be so in the future.

CMD_RUBY_CONSOLE is nothing more than a constant, that on the PC, points to the Integer object 21478.
But these integer arguments only work on the PC.
I have asked these question before, and did not get an answer:
[Actually my question was in regard to ALL of the constants.]

(1) Are the constants cross-platform (ie: does CMD_RUBY_CONSOLE constant exist on the Mac?)

(2) If so, what value is the constant CMD_RUBY_CONSOLE pointing at on the Mac ?

It seems that the string argument "showRubyPanel:" (and all of the other string arguments for Sketchup.send_action,) ARE cross-platform.
So we might stick with those, until someone answers the question of Mac constants.
_
0
    I'm not here much anymore. But a PM will fire email notifications.
    User avatar
    Dan Rathbun 
    PluginStore Author
    PluginStore Author
     

    Re: Sketchup.send_action arguments: Mac vs PC

    Postby Jim » Tue Jun 08, 2010 1:33 am

    SketchUp 7.1.6859
    Mac OS X 10.4.11

    408.png
    0
    Last edited by Jim on Sun Apr 03, 2011 3:04 pm, edited 1 time in total.
    Hi

    Jim 
    Global Moderator
     

    Re: Sketchup.send_action arguments: Mac vs PC

    Postby TIG » Tue Jun 08, 2010 1:38 am

    A la Jim
    (Object.constants.grep /CMD/).sort
    ["CMD_ARC", "CMD_CAMERA_UNDO", "CMD_CIRCLE", "CMD_COPY", "CMD_CUT", "CMD_DELETE", "CMD_DIMENSION", "CMD_DISPLAY_FOV", "CMD_DOLLY", "CMD_DRAWCUTS", "CMD_DRAWOUTLINES", "CMD_ERASE", "CMD_EXTRUDE", "CMD_FREEHAND", "CMD_HIDDENLINE", "CMD_LINE", "CMD_MAKE_COMPONENT", "CMD_MEASURE", "CMD_MOVE", "CMD_Mover", "CMD_NEW", "CMD_OFFSET", "CMD_OPEN", "CMD_ORBIT", "CMD_PAGE_DELETE", "CMD_PAGE_NEW", "CMD_PAGE_NEXT", "CMD_PAGE_PREVIOUS", "CMD_PAGE_UPDATE", "CMD_PAINT", "CMD_PAN", "CMD_PASTE", "CMD_POLYGON", "CMD_POSITION_CAMERA", "CMD_PRINT", "CMD_PROTRACTOR", "CMD_PUSHPULL", "CMD_RECTANGLE", "CMD_REDO", "CMD_ROTATE", "CMD_RUBY_CONSOLE", "CMD_SAVE", "CMD_SCALE", "CMD_SECTION", "CMD_SELECT", "CMD_SELECTION_ZOOM_EXT", "CMD_SHADED", "CMD_SHOWGUIDES", "CMD_SHOWHIDDEN", "CMD_SKETCHAXES", "CMD_SKETCHCS", "CMD_TEXT", "CMD_TEXTURED", "CMD_TRANSPARENT", "CMD_UNDO", "CMD_VIEW_BACK", "CMD_VIEW_BOTTOM", "CMD_VIEW_FRONT", "CMD_VIEW_ISO", "CMD_VIEW_LEFT", "CMD_VIEW_PERSPECTIVE", "CMD_VIEW_RIGHT", "CMD_VIEW_TOP", "CMD_WALK", "CMD_WIREFRAME", "CMD_ZOOM", "CMD_ZOOM_EXTENTS", "CMD_ZOOM_WINDOW"]

    and these are effectively the same as the send_action's :roll:
    0
    TIG
    User avatar
    TIG 
    Global Moderator
     

    Re: Sketchup.send_action arguments: Mac vs PC

    Postby Dan Rathbun » Tue Jun 08, 2010 3:22 am

    Guys.. I can do that on Windows as well. Both you guys have WIN systems?

    (a) I know the constants DO exist on Windows SU.
    (b) I know the constants point to Integer object(s) on Windows.

    The questions relate to the Mac.
    Let me restate the questions:

    (1) Are the constants cross-platform (ie: do they exist on the Mac?)

    (2) If so, what value (or types,) do the constant(s) point at on the Mac ?
    0
      I'm not here much anymore. But a PM will fire email notifications.
      User avatar
      Dan Rathbun 
      PluginStore Author
      PluginStore Author
       

      Re: Sketchup.send_action arguments: Mac vs PC

      Postby Jim » Tue Jun 08, 2010 4:01 am

      Sorry Dan, that screenshot was from my Mac. I haven't had a chance to actually see if they work.
      0
      Hi

      Jim 
      Global Moderator
       

      Re: Sketchup.send_action arguments: Mac vs PC

      Postby Dan Rathbun » Tue Jun 08, 2010 5:53 am

      Firstly Thanks!
      Jim wrote:Sorry Dan, that screenshot was from my Mac.

      OK, so answer to question (1) is:
      They DO exist on the SU Mac edition.
      Jim wrote:I haven't had a chance to actually see if they work.

      We need to know if they do.
      I find it strange that (on the Mac,) CMD_RUBY_CONSOLE returns the Integer 21478. These integer arguments (according to the API,) are only supposed to work on the PC edition.

      How about a little test scriplet:
      Code: Select all
      module SUAPI

        def self.list_commands
          cmds = (Object.constants.grep /CMD/).sort
          plat = ( RUBY_PLATFORM =~ /(mswin|mingw)/i ? 'Windows' : 'Mac' )
          txt = "\n Sketchup Command Constants for #{plat} Platform\n"
          txt << "-------------------------------------------------\n"
          cmds.each {|e|
            val = eval(e)
            txt << " %-22s = " % e << "#{val.to_s}  (#{val.class.to_s})\n"
          }
          txt << "\n\n"
          return txt
        end #method

      end #module
      The block of text returned can be sent to a file, or to a webdialog, or even a multiline messagebox:
      UI.messagebox( SUAPI.list_commands, MB_MULTILINE, 'Command Constants' )
      although it doesn't look so good when not in a fixed-width font.
      0
        I'm not here much anymore. But a PM will fire email notifications.
        User avatar
        Dan Rathbun 
        PluginStore Author
        PluginStore Author
         

        Re: Sketchup.send_action arguments: Mac vs PC

        Postby Dan Rathbun » Thu Mar 24, 2011 1:49 pm

        New Question: Cut, Copy and Paste

        We have standard Windows integer commands for these:
        CMD_CUT
        CMD_COPY
        CMD_PASTE


        What are the Mac equivalents ??
        ... do these work as Sketchup.send_action() arguments?
        "cut:"
        "copy:"
        "paste:"
        0
          I'm not here much anymore. But a PM will fire email notifications.
          User avatar
          Dan Rathbun 
          PluginStore Author
          PluginStore Author
           

          Re: Sketchup.send_action arguments: Mac vs PC

          Postby driven » Fri Mar 25, 2011 9:38 pm

          this what you need?



          Sketchup Command Constants for Mac Platform
          -------------------------------------------------
          CMD_ARC = 21065 (Fixnum)
          CMD_CAMERA_UNDO = 10529 (Fixnum)
          CMD_CIRCLE = 21096 (Fixnum)
          CMD_COPY = 57634 (Fixnum)
          CMD_CUT = 57635 (Fixnum)
          CMD_DELETE = 21021 (Fixnum)
          CMD_DIMENSION = 21410 (Fixnum)
          CMD_DISPLAY_FOV = 21494 (Fixnum)
          CMD_DOLLY = 10523 (Fixnum)
          CMD_DRAWCUTS = 21348 (Fixnum)
          CMD_DRAWOUTLINES = 21347 (Fixnum)
          CMD_ERASE = 21019 (Fixnum)
          CMD_EXTRUDE = 21525 (Fixnum)
          CMD_FREEHAND = 21031 (Fixnum)
          CMD_HIDDENLINE = 10511 (Fixnum)
          CMD_LINE = 21020 (Fixnum)
          CMD_MAKE_COMPONENT = 21083 (Fixnum)
          CMD_MEASURE = 21024 (Fixnum)
          CMD_MOVE = 21048 (Fixnum)
          CMD_NEW = 57600 (Fixnum)
          CMD_OFFSET = 21100 (Fixnum)
          CMD_OPEN = 57601 (Fixnum)
          CMD_ORBIT = 10508 (Fixnum)
          CMD_PAGE_DELETE = 21078 (Fixnum)
          CMD_PAGE_NEW = 21067 (Fixnum)
          CMD_PAGE_NEXT = 10535 (Fixnum)
          CMD_PAGE_PREVIOUS = 10536 (Fixnum)
          CMD_PAGE_UPDATE = 21068 (Fixnum)
          CMD_PAINT = 21074 (Fixnum)
          CMD_PAN = 10525 (Fixnum)
          CMD_PASTE = 57637 (Fixnum)
          CMD_POLYGON = 21095 (Fixnum)
          CMD_POSITION_CAMERA = 21169 (Fixnum)
          CMD_PRINT = 57607 (Fixnum)
          CMD_PROTRACTOR = 21057 (Fixnum)
          CMD_PUSHPULL = 21041 (Fixnum)
          CMD_RECTANGLE = 21094 (Fixnum)
          CMD_REDO = 57644 (Fixnum)
          CMD_ROTATE = 21129 (Fixnum)
          CMD_RUBY_CONSOLE = 21478 (Fixnum)
          CMD_SAVE = 57603 (Fixnum)
          CMD_SCALE = 21236 (Fixnum)
          CMD_SECTION = 21337 (Fixnum)
          CMD_SELECT = 21022 (Fixnum)
          CMD_SELECTION_ZOOM_EXT = 21469 (Fixnum)
          CMD_SHADED = 10512 (Fixnum)
          CMD_SHOWGUIDES = 21980 (Fixnum)
          CMD_SHOWHIDDEN = 21154 (Fixnum)
          CMD_SKETCHAXES = 10522 (Fixnum)
          CMD_SKETCHCS = 21126 (Fixnum)
          CMD_TEXT = 21405 (Fixnum)
          CMD_TEXTURED = 10539 (Fixnum)
          CMD_TRANSPARENT = 10513 (Fixnum)
          CMD_UNDO = 57643 (Fixnum)
          CMD_VIEW_BACK = 10505 (Fixnum)
          CMD_VIEW_BOTTOM = 10506 (Fixnum)
          CMD_VIEW_FRONT = 10502 (Fixnum)
          CMD_VIEW_ISO = 10507 (Fixnum)
          CMD_VIEW_LEFT = 10504 (Fixnum)
          CMD_VIEW_PERSPECTIVE = 10519 (Fixnum)
          CMD_VIEW_RIGHT = 10503 (Fixnum)
          CMD_VIEW_TOP = 10501 (Fixnum)
          CMD_WALK = 10520 (Fixnum)
          CMD_WIREFRAME = 10510 (Fixnum)
          CMD_ZOOM = 10509 (Fixnum)
          CMD_ZOOM_EXTENTS = 10527 (Fixnum)
          CMD_ZOOM_WINDOW = 10526 (Fixnum)


          john OSX 10.5.8
          0
          learn from the mistakes of others, you may not live long enough to make them all yourself...

          driven 
          PluginStore Author
          PluginStore Author
           

          Re: Sketchup.send_action arguments: Mac vs PC

          Postby Dan Rathbun » Sat Mar 26, 2011 10:14 pm

          Dan Rathbun wrote:New Question: Cut, Copy and Paste

          What are the Mac equivalents ??
          ... do these work as Sketchup.send_action() arguments?
          "cut:"
          "copy:"
          "paste:"


          I verified that the above strings work on Windows PC. (SU 8)

          And John verified that they work on the Mac.


          So:
          Sketchup.send_action("paste:") is cross-platform,
          And:
          Sketchup.send_action( CMD_PASTE ) is not.

          Unless Mac users reassign the constants, like:
          CMD_PASTE = "paste:"
          0
            I'm not here much anymore. But a PM will fire email notifications.
            User avatar
            Dan Rathbun 
            PluginStore Author
            PluginStore Author
             

            Re: Sketchup.send_action arguments: Mac vs PC

            Postby brandenberg » Wed Dec 16, 2015 6:28 pm

            This is an old thread, but I'm adding a tip here that may be of help to other developers who may discover this info...

            In an effort to create a toolbar button to show the "Entity Info" palette (there's a built-in button for Model Info, but oddly not for Entity Info), I couldn't find a method or action that worked on the Mac. There is a fixnum constant value for the PC, but these don't seem to work on the Mac, even after years of SketchUp evolution on the Mac. Then I stumbled on the get_shortcuts method...

            Using the "Shortcuts" pane within the "Preferences" window, you can add a shortcut to the command for which you need the string constant, then using:

            Sketchup.get_shortcuts.sort

            ...you can discover the string that can successfully be used with the Sketchup.send_action method. For example, I added the F2 key to "Window/Entity Info", and got the following output:

            > Sketchup.get_shortcuts.sort
            ["A\tselectSelectionTool:", "B\tselectPaintTool:", "C\tselectCircleTool:", "E\tselectEraseTool:", "F\tviewZoomExtents:", "F2\tentityProperties:", "G\tmakeGroup:", "H\tselectDollyTool:", "K\ttoggleDisplayBackEdges:", "L\tselectLineTool:", "O\tselectOrbitTool:", "P\tselectPushPullTool:", "R\tselectRotateTool:", "S\tselectScaleTool:", "T\tselectMeasureTool:", "V\tselectMoveTool:", "Z\tselectZoomTool:", "`\ttoggleHideRestOfModel:", "~\ttoggleHideSimilarComponents:", "⇧G\t/Edit/Context Menu Flyout/Explode"]

            In there, you'll see "F2\tentityProperties:", so the string constant is "entityProperties:".

            Voila, a method to discover undocumented action strings.
            1

            brandenberg 
             

            SketchUcation One-Liner Adverts

            by Ad Machine » 5 minutes ago



            Ad Machine 
            Robot
             



             

            Return to Developers' Forum

            Who is online

            Users browsing this forum: No registered users and 3 guests

            Visit our sponsors: