sketchucation logo sketchucation
    • Login
    🤑 SketchPlus 1.3 | 44 Tools for $15 until June 20th Buy Now

    Mac: Von FileMaker aus SketchUp mit Ruby-Skripten steuern

    Scheduled Pinned Locked Moved Deutsch
    7 Posts 2 Posters 1.7k Views 2 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 N Lindenthal

      Azuby brachte mir vor einem Jahr als ersten Ruby-Skript folgenden bei: SketchUp > Menü Fenster > Ruby-Konsole. Dort tippen »UI.beep« (ohne Tüttel) und Eingabetaste (return) drücken. Im Lautsprecher erklingt der Systemwarnton.

      Dasselbe von außerhalb SketchUp, mittels AppleScript vom Skripteditor aus:

      set konsolenText to "UI.beep" --Variable, die später auch durch andere Skripteinzeiler ersetzt wird
      
      tell application "SketchUp"
      	activate
      	tell application "System Events"
      		tell process "SketchUp" -- stellt sicher, daß die Einfügemarke im TextField der Ruby-Konsole aktiv ist
      			tell menu bar 1
      				tell menu bar item "Fenster"
      					tell menu 1
      						click menu item "Ruby-Konsole"
      					end tell
      				end tell
      			end tell
      		end tell
      		keystroke konsolenText --Variable eintippen in das "AXTextField" der "Ruby-Konsole"
      		keystroke return
      	end tell
      end tell
      

      Aus einer FileMaker-Datenbank den Skript zu starten, geht ebenso einfach: Textfeld und Knopf, der den Textfeld-Text als »Applescript ausführt«.

      Beep

      Sinn meiner Übung: Mangelndes Gedächtnis durch Filemaker-Datensätze stützen und dort die gelernten Skriptzeilen an einer übersichtlichen Stelle sammeln.

      1 Reply Last reply Reply Quote 0
      • N Offline
        N Lindenthal
        last edited by

        Um den zu übergebenden Ruby-Skripttext übersichtlicher zu sehen, trennte ich in FileMaker 2 Felder. Das 1. Feld beinhaltet nur den Ruby-Skripttext, das 2. Feld errechnet daraus, was als AppleScript-Skripttext abgearbeitet werden soll.
        Das läuft soweit phantastisch gut! Die in der Sketchup-Ruby-Zeile verdeckten Skriptzeilen zeigt FileMaker.

        @unknownuser said:

        set konsolenText to "

        UI.beep
        

        " --Diese Variable ist der Ruby-Skript für SketchUp

        tell application "SketchUp"
        activate
        tell application "System Events"
        tell process "SketchUp" -- stellt sicher, daß die Einfügemarke im TextField der Ruby-Konsole aktiv ist
        tell menu bar 1
        tell menu bar item "Fenster"
        tell menu 1
        click menu item "Ruby-Konsole"
        end tell
        end tell
        end tell
        end tell
        keystroke konsolenText --Ruby-Skript eintippen in das "AXTextField" der "Ruby-Konsole"
        keystroke return
        end tell
        end tell

        1 Reply Last reply Reply Quote 0
        • N Offline
          N Lindenthal
          last edited by

          UI.messagebox("Hier eine zusammengebastelte Textnachricht aus FileMaker")

          Damit die Tüttel (Anführungszeichen, Zollzeichen) aus FileMaker so in AppleScript ankommen, daß sie von dort als Tüttel in der Ruby-Konsole von SketchUp geschrieben werden, hier Rückwärtsschrägstrich vor Tüttel:

          set konsolenText to "UI.messagebox(\"Hier eine zusammengebastelte Textnachricht aus FileMaker\")"
          
          tell application "SketchUp"
          	activate
          	tell application "System Events"
          		tell process "SketchUp" --stellt im Konsolentextfeld die Einfügemarke sicher
          			tell menu bar 1
          				tell menu bar item "Fenster"
          					tell menu 1
          						click menu item "Ruby-Konsole"
          					end tell
          				end tell
          			end tell
          		end tell
          		keystroke konsolenText --to "AXTextFiled" of "Ruby-Konsole"
          		keystroke return
          	end tell
          end tell
          
          
          1 Reply Last reply Reply Quote 0
          • N Offline
            N Lindenthal
            last edited by

            Um die Namen der Einzelteile einer SketchUp-Zeichnung zu ermitteln, lehrte mich azuby folgenden Ruby-Skript für die Ruby-Konsole:

            Sketchup.active_model.entities.each { |e| puts e.name if e.kind_of?(Sketchup;;Group) or e.kind_of?(Sketchup;;ComponentInstance) }
            

            Diese Skriptzeile steht nun bei mir in FileMaker (Mac). Und sie steuert SketchUp 6. Um den Skripttext brauche ich mich erst dann wieder zu kümmern, wenn ich ihn verstehen oder ändern möchte. Siehe oben.

            1 Reply Last reply Reply Quote 0
            • N Offline
              N Lindenthal
              last edited by

              Beim Zusammenfügen der 2 FileMaker-Felder zu 1 Feld (mit dem AppleScript-Text) ergibt sich eine Komplikation mit den Zeichen Tüttel »"« und schräger Rückstrich »\« (wenn der Ruby-Text im Feld 1 ebenfalls Tüttel enthält). Diese Komplikation löste ich mit der FileMaker-Formel »Austauschen«:

              Austauschen ( Feld1RubyText ; "\"" ; "\\\"" )   #  " wird zu \"
              
              1 Reply Last reply Reply Quote 0
              • N Offline
                N Lindenthal
                last edited by

                Mac-Ruby-Konsole kann nur Einzeiler
                azuby machte mich aufmerksam, daß die Mac-Ruby-Konsole keine mehrzeiligen Ruby-Skripte annehmen kann. Weil ich aber auch Methodendefinitionen, die mehrzeilig sind, über FileMaker in die Ruby-Konsole übertragen wollte, ersetzte ich die Zeilenschalter durch Semikolons. Im FileMaker-Formelfeld heißt es also:

                Austauschen ( Feld1RubyText; "¶" ; ";" )   # Zeilenschalter wird zu Semikolon
                
                1 Reply Last reply Reply Quote 0
                • A Offline
                  azuby
                  last edited by

                  Es handelt sich nicht um die/eine Mac-Ruby-Konsole, sondern um die Sketchup-Ruby-Konsole (egal welches Betriebssystem).

                  azuby

                  *error initus :: Blocks | CurrentDate | d/Code | extensionmanager | FFlipper | HideEdges | MeasuredArea | ModelHistory | PluginsHelp | PronButton | SAWSO | SCP | SU²CATT

                  Bad English? PM me, correct me. :smile:**

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

                  Advertisement