Wo kann ich dies vielversprechende Plugin herunterladen?
Posts
-
RE: Proper_animation.rb,Bewegungen ohne Mühe.
-
RE: Kann Wertefenster nicht ändern
@burkhard said:
…
Dazu nicht in das Feld klicken, sondern einfach den Wert über die Tastatur eintippen und mit Enter bestätigen.
…Mir hatte mal sehr geholfen, das kleine Eingabefeld unten rechts zu entdecken. Da kann man nämlich sehen, wie man sich vertippt hat. Und bald ist auch die Frage der Maßeinheit zu beantworten: Menü Fenster > Modellinformationen > Einheiten.
-
RE: Fenster unauffindbar
@azuby said:
…
Da die Lektionen für Windows sind, musst du etwas kreativer sein, was Pfade und Programme angeht.
…Ja, require 'jcode! und require 'WIN32API' werden auf Mac naturgemäß nicht aufgelöst. Hm …
-
RE: Fenster unauffindbar
@azuby said:
…
im Terminal
…
Eingabe "ruby -v"
…
gibt Rückmeldung:@unknownuser said:
ruby 1.8.2 (2004-12-25) [powerpc-darwin8.0]
RubyKids kann also losgehen. Danke bis hierhin.
-
RE: Fenster unauffindbar
@azuby said:
…
Sinnvoll wäre zu überlegen, den Code (ohne den "Auswähl-Schnipsel" (nach "z. B.")) in eine .rb-Datei auszulagern, die automatisch von Sketchup dann geladen wird, wenn man es startet. Dann muss nur noch der "Auswähl-Schnipsel" in die Konsole eingegeben werden.
…Meine .rb-Datei heißt Aar_zoom_to_object.rb und liegt im Plugins-Ordner neben zum Beispiel extentions.rb. In meiner .rb-Datei steht drin:
@unknownuser said:
azuby 2008-07
def zoom_to_object object_name
Sketchup.active_model.entities.each do |entity|
if entity.name == object_name
Sketchup.active_model.active_view.zoom entity
break # ist zwar dreckig, bin heute aber mal faul
end
end
endIch darf unterstellen, daß also diese Methode zoom_to_object beim SketchUp-Programmstart mitgeladen wird.
Tippe ich nun in die Ruby-Konsole in meiner SketchUp-Datei (die das Objekt "Stein" enthält):
zoom_to_object "Stein"
dann passiert leider nichts, außer folgende Meldung/Fehlermeldung:
@unknownuser said:
zoom_to_object "Stein"
Error: #<NoMethodError: undefined method `zoom_to_object' for main:Object>
(eval):209 -
RE: Fenster unauffindbar
Denk, denk. Dann muß ich eben über das Terminal gehen. Könnte noch systematischer werden. Ich stutze über die Mehrzeiler. Ist es wirklich so, daß die Ruby-Eingabezeile in SketchUp keine Mehrzahler vertragen kann? Ein ausgewähltes Objekt zu zoomen, ging doch schon mehrzeilig.
model = Sketchup.active_model sel = model.selection # have something selected model.active_view.zoom sel.first
Diese 3 Zeilen laufen einwandfrei.
So, dann muß ich jetzt Ruby für Kinder lernen …
-
RE: Fenster unauffindbar
@azuby said:
Ich habe keine Ahnung, warum du das machst - in zwei Beiträgen steht doch eindeutig:
# aufzurufen dann mit z. B. > zoom_to_object "Stein"
azuby
Ich lasse also in die Ruby-Konsole tippen:
def zoom_to_object "Stein" Sketchup.active_model.entities.each do |entity| if entity.kind_of?(Sketchup;;Group) or entity.kind_of?(Sketchup;;ComponentInstance) if entity.name == object_name Sketchup.active_model.active_view.zoom entity break end end end end
Und dann kommt folgende Ruby-Konsolen-Erfolgs-/Fehlermeldung:
@unknownuser said:
def zoom_to_object "Stein"
Sketchup.active_model.entities.each do |entity|
if entity.kind_of?(Sketchup::Group) or entity.kind_of?(Sketchup::ComponentInstance)
if entity.name == object_name
Sketchup.active_model.active_view.zoom entity
break
end
end
end
end
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error, expecting'\n'' or
';''
def zoom_to_object "Stein"
Sketchup.active_model.entities.each do |entity|
if entity.kind_of?(Sketchup::Group) or entity.kind_of?(Sketchup::ComponentInstance)
if entity.name == object_name
Sketchup.active_model.active_view.zoom entity
break
end
end
end
end
^
(eval):209: parse error, expecting `$'
def zoom_to_object "Stein"
Sketchup.active_model.entities.each do |entity|
if entity.kind_of?(Sketchup::Group) or entity.kind_of?(Sketchup::ComponentInstance)
if entity.name == object_name
Sketchup.active_model.active_view.zoom entity
break
end
end
end
end
^>
(eval):209… und mein Stein ist nicht ausgewählt/markiert/mittig großgestellt. In meiner geöffneten SketchUp-Datei ist nichts passiert. Deshalb fing ich an herumzuhühnern.
Was muß ich denn nun richtiger machen?
Übrigens möchte ich mich noch sehr bedanken für Deine Bereitschaft, mir hier Grundlagen zu vermitteln. (Ich wußte ja noch nicht, daß eine Methode eingeklammert ist durch def … end.)4mal (eval):209, 2mal parse error, einmal SyntaxError, einmal compile error, 2mal expecting …
-
RE: Mac: Von FileMaker aus SketchUp mit Ruby-Skripten steuern
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 \"
-
RE: Mac: Von FileMaker aus SketchUp mit Ruby-Skripten steuern
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.
-
RE: Mac: Von FileMaker aus SketchUp mit Ruby-Skripten steuern
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
-
RE: Fenster unauffindbar
@azuby said:
…
def zoom_to_object object_name > … > # aufzurufen dann mit z. B. zoom_to_object "Stein"
Aus den beiden Zeilen oben machte ich (unwissend) folgende Zeile:
def "Stein" object_name …
Und ich füge also azubys Zeilen mit meiner »Anpassung« in die Ruby-Konsole. Dort werden Zeile für Zeile Fehlermeldungen zurückgegeben.
Da habe ich wohl etwas vollkommen falsch verstanden. Soll ich erst eine Ruby-Datei daraus machen?
Ich stehe auf dem Schlauch.
Würde es helfen, die Fehlermeldungen hier aufzuführen?@unknownuser said:
def "Stein" object_name
^>
(eval):209Sketchup.active_model.entities.each do |entity|
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error
Sketchup.active_model.entities.each do |entity|
^>
(eval):209
if entity.kind_of?(Sketchup::Group) or entity.kind_of?(Sketchup::ComponentInstance)
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error, expectingkTHEN' or
':'' or'\n'' or
';''
if entity.kind_of?(Sketchup::Group) or entity.kind_of?(Sketchup::ComponentInstance)
^>
(eval):209
if entity.name == object_name
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error, expectingkTHEN' or
':'' or'\n'' or
';''
if entity.name == object_name
^>
(eval):209
Sketchup.active_model.active_view.zoom entity
Error: #<NameError: undefined local variable or method `entity' for main:Object>
(eval):209
break
Error: #<LocalJumpError: (eval):209: unexpected break>
(eval):209
end
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error
end
^>
(eval):209
end
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error
end
^>
(eval):209
end
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error
end
^>
(eval):209
end
Error: #<SyntaxError: (eval):209: compile error
(eval):209: parse error>
(eval):209 -
RE: Mac: Von FileMaker aus SketchUp mit Ruby-Skripten steuern
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 -
RE: Fenster unauffindbar
Sketchup.active_model.entities.each do |entity| if entity.name == "Stein" Sketchup.active_model.active_view.zoom entity break # ist zwar dreckig, bin heute aber mal faul end end
Fehlermeldung in der Ruby-Konsole:
Error: #<NoMethodError: undefined methodname' for #<Sketchup::Text:0x1b8748c4>> (eval):203 (eval):202:in
each'
(eval):202Tippe ich alle Zeilen von azuby ein, dann sind die Fehlermeldungen mehr und unübersichtlicher, weil mehrmals die eigenen Zeilen wiederholt werden.
Puh, ich bin einfach zu sehr Anfänger.Meine Frage bleibt: Wie wählt Ruby für mich ein Objekt nach Name aus?
-
RE: Fenster unauffindbar
@azuby said:
Ich sehe gerade diesen Thread - das ganze Zeug um die BoundingBox ginge zwar auch, aber warum kompliziert, wenn es auch einfach geht.
def zoom_to_object object_name > Sketchup.active_model.entities.each do |entity| > if entity.name == object_name > Sketchup.active_model.active_view.zoom entity > break # ist zwar dreckig, bin heute aber mal faul > end > end > end > > # aufzurufen dann mit z. B. zoom_to_object "Stein"
azuby
RickW schrieb:
model = Sketchup.active_model sel = model.selection # have something selected model.active_view.zoom sel.first
… funktioniert (auch, wenn ».first« fehlt).
Ein ausgewählter Teil der Sketchup-Zeichnung wird groß in der Mitte des Bildschirms dargestellt.Azubis Skript kriege ich dagegen nicht zum Laufen, obwohl dieser Skript mir einen Wunsch erfüllen würde (… ich könnte ein Objekt nach Namen auswählen lassen). Das »aufzurufen dann mit z. B. zoom_to_object "Stein"« bekomme ich nicht eingebaut.
-
RE: Select all geometry
@unknownuser said:
In one line:
> Sketchup.active_model.selection.add(Sketchup.active_model.entities.to_a) >
Please, Todd, tell me how to select my object »Stein«, but not all entities.
-
RE: Fenster unauffindbar
@azuby said:
Hilft das weiter?…
Das hilft sehr weiter? Nur, wie taste ich mich nun zur »boundingbox«-Abfrage heran?
Die Beispielskript »« oder »« können nicht geladen werden. Ich sehe allerdings, daß sie auf meiner Festplatte im Ruby-Ordner schon vorhanden sind.Wenn mein Objekt »Stein« heißt, wie lautet dann das Ruby-Skript, mit dem für »Stein« die boundingbox-Werte abgefragt werden?
-
Fenster unauffindbar
Das Elementinformationenfenster war unauffindbar. Das Umschalten im Menü von Haken auf Strich ging wie von anderen Werkzeug-/Einstellfenstern bekannt. Aber nichts zu machen, es blieb verschwunden. Ein Aufräumbefehl fehlt hier ggf.
Gestern hatte ich einen Projektor zusätzlich angeschlossen. Mir kam der Verdacht, das gesuchte Fenster könnte in dem Bereich liegen, den der beamer abdeckte.
Und tatsächlich. Beamer nochmals angeschlossen, und das Elementinformationenfenster kam wieder zum Vorscheinen. Ich konnte das unsichtbare Fenster in den Anzeigebereich des Hauptbildschirms verschieben.
Hoffentlich verliert nicht wieder jemand soviel Zeit bei solcher Suche.
…
Im Elementinformationenfenster können Objekte mit Namen ausgestattet werden. Und: nach diesen Namen kann per Ruby-Skript gefahndet werden:
Folgender Skript bringt eine Liste der Objektnamen:Sketchup.active_model.entities.each { |e| puts e.name if e.kind_of?(Sketchup;;Group) or e.kind_of?(Sketchup;;ComponentInstance) }
Unbenannte Objekte bringen Leerzeilen, in Komponenten enthaltene Objektnamen werden nicht ermittelt.
…
Nächste Aufgabe wäre, für einen Objektnamen die Anordnung/Position im Achsenkreuz zu erfragen. Weiß dazu jemand etwas? -
Kann Ruby ermitteln, was alles in einer Szene notiert ist?
Bevor ich meine Frage im englischen Ruby-Forum stellen möchte, hier mal ein Probelauf. Vielleicht liest Azubi auch hier und weiß schon was.
Weil FileMaker aus einem von vielen Datensätzen sofort ein langes Ruby-Skript in Sketchup starten kann, ist es naheliegend, auch so komplexe Dinge wie eine Szenen-Einstellung in FileMaker zu notieren und von dort zu starten.
Dazu kribbelt es mir in den Fingern, die Szenen-Einstellungen überhaupt einmal auszulesen. Weiß dazu jemand etwas?
Eingestellt sind Ort, »Himmelsrichtung«, Neigung, Entfernung und eingeschaltete Ebenen, Stil, Nebel und Sonnenstand. Vermutlich nicht erfaßt ist, ob Schnitte gezeigt werden.
Mein Fernziel ist, benannte Objekte per Ruby-Skript zu finden und ihnen »ins Gesicht« zu sehen.