Mehrere Fragen zu Ruby
-
Hallo,
Tut mir leid, dass ich grade auf mehrere Frage in nur einem Thread eingehe, ich möchte das Forum aber nicht mit vielen von mri erstellten Threads vollspammen.
1.Ich habe schon viel gegoogelt und gesucht, jedoch habe ich nicht herausbekommen wie ich aus einem Rubyscript die Kameraposition ändern kann. Ich hoffe mal, dass das überhaupt möglich ist, wenn ja wie?
2.Auch hiernach habe ich einige Zeit gesucht, jedoch nicht so lange wie zu der ersten Frage: Wie ist es möglich durch einen Ruby-Code eine Oberfläche zu bemalen?
3.Irgendwie kann ich dieses Männchen, das beim neuen erstellen einer 3d-"Landschaft" automatisch erstellt wird. Oder besser, gibt es eine einfache möglichkeit direkt auf ein Objekt, z.B. über den Namen zuzugreifen und dieses dann zu löschen?
In etwa:objects["Objektname"].Delete
4.Wie ist es möglich bei einem 3d-Objekt an bestimmten Kanten eine Massbeschreibung festzulegen?
In etwa wie auf diesem Bild:5.Ist es möglich die mit Ruby erstellten Datei irgendwie als skp abzuspeichern?
Also zu den ganzen Fragen, es wäre shcon ok, wenn jemand auf ein Tutorial linken würde oder eine Seite die das ganze einfach beschreibt. Schön wären aber natürlich auch Codebeispiele.
mfG toredo
-
@toredo said:
3.Irgendwie kann ich dieses Männchen, das beim neuen erstellen einer 3d-"Landschaft" automatisch erstellt wird. Oder besser, gibt es eine einfache möglichkeit direkt auf ein Objekt, z.B. über den Namen zuzugreifen und dieses dann zu löschen?
In etwa:objects["Objektname"].Delete
mfG toredo
Zu 1. , 2., 4. und 5. kann ich dir leider nichts sagen, dafür sind die Ruby-Spezialisten zuständig. Dabei frage ich mich jedoch, ob das alles so sinnvoll ist. Du wirst Dir dabei aber schon etwas gedacht haben.
Zu 3.: Es gibt in SU doch das Fenster Outliner (Gliederung). Da findest Du alle Komponenten und Gruppen und kannst sie dort löschen. Da brauch man doch kein Ruby für..
[flash=512,430:ws2p2qf5]http://www.sketchucation.com/forums/scf/sas/Deutsch/Componentenfindenundloeschen.swf[/flash:ws2p2qf5] -
@formalyknownasmartin said:
Zu 1. , 2., 4. und 5. kann ich dir leider nichts sagen, dafür sind die Ruby-Spezialisten zuständig. Dabei frage ich mich jedoch, ob das alles so sinnvoll ist. Du wirst Dir dabei aber schon etwas gedacht haben.
Das ganze ist für ein kleines Projekt in der Schule, ich habe mal soweit ich konnte alles selbst gemacht, jedoch hat halt nicht alles geklappt.
@formalyknownasmartin said:
Zu 3.: Es gibt in SU doch das Fenster Outliner (Gliederung). Da findest Du alle Komponenten und Gruppen und kannst sie dort löschen. Da brauch man doch kein Ruby für..
Das ganze muss eben über den Ruby-Code gelöst werden, hier ein kleiner Teil des Programms:
Ich entnehme dem User über eine GUI verschiedene Daten, über ein Ruby-Script wird mit diesen versorgt und es wird ein Tisch generiert, von diesem wird ein Bild erstellt und dieses wird dann auf der GUI dargestellt. Mein Ruby-Script ist jedoch noch nicht optimal, das ist auch der Grund weshalb ich hier nachfrage. Daher muss alles automatisch ablaufen.Aber thx für die Antwort
mfG toredo
-
hallo,
erstmal sorry für den doppelpost:
ich habe mich mal hier im (deutschen teil vom) board umgesehen und habe gemerkt, dass hier eher auf sketchup und weniger auf ruby eingegangen wird... vor allem fragen wie meine sind eher selten, was aber auch verständlich ist.
da ich jedoch immer noch nach antworten suche, wäre eventuel ein auf ruby selbst spezialisiertes board gut... ich denke zwar dass es sowas nicht direkt gibt, aber eventuel kennt jemand von euch so ein forum?
ansonsten wäre eine übersichtliche (und wenn möglich deutsche) dokumentation von den zu verfügung gestellten funktionen die ruby bietet auch gut
thx
mfG toredo
-
Hier ist es nicht anders, als bei allen anderen Programmierern: Hauptsächlich spricht man Englisch. Hier in den SCF gibt es ein Ruby-Unterforum.
Kameraposition ändern geht, soweit ich weiß. Schaue dir dazu mal die View-Klasse an.
Fläche mit Farbe bemalen sollte auch gehen. Schaue dir dazu die Face-Klasse an.
Der Typ, der da immer rumsteht, heißt "Bryce" Man kann in Sketchup selbst einstellen, dass der nicht angezeigt wird, wenn man ein neues Modell erstellt. Wenn du ihn mit Namen ansprechen willst, dann musst du die Entities des Modells einzeln durchgehen und prüfen, ob das jeweilige eine Group oder ComponentInstance ist. Wenn ja, kann man dort das Attribut "name" abfragen. Hier funktioniert leider nicht die Methode Array#delete_if, weil die Entities-Ansammlung von Sketchup eine Klasse ist, die nicht von Array erbt. Wenn du das Objekt gefunden hast, dann kannst du die Methode Drawingelement#erase! verwenden, da eine Group / eine ComponentInstance von Drawingelement erbt.
Das mit der Maßbeschreibung weiß ich nicht genau. Ich hab jetzt aber mal kurz geguckt. Also wenn man per Hand eine Fläche erstellt und dann eine -> Abmessung an eine Kante legt und danach dann die Entities des Modells durchprüft, stellt sich heraus, dass eine Bemaßung als Drawingelement angelegt wird. Das scheint irgendwie doof, weil es ja die Elternklasse aller zeichenbaren Elemente ist. Ich bin mir aber 100% sicher, dass ich schon mal rausgekriegt habe, wie man an diese Elemente rankommt. ... ah ja, hab es wiedergefunden. Im Falle von Abmessungen bringt das Prüfen der Klasse nix, man muss hier auf das Attribut "typename" ausweichen und es auf "DimensionLinear" prüfen. Wie man die Dinger erstellt, weiß ich nicht. Soweit aber scheint klar zu sein, dass es wohl geht. Ich hab da im Ruby-Subforum schon jemanden gesehen, der ein Plugin erstellen wollte (oder dabei war), dass vor allem mit Dimensions gearbeitet hat.
azuby
-
hallo,
danke für die hilfe.
die probleme haben sich jetzt minimiert, eigentlich alles hat dank deiner hilfe funktioniert, zwei offene Punkte existieren trotzdem noch:
Mein Script wird direkt nach dem aufstarten von sketchup ausgeführt, hier kommt ein Problem bei der Oberflächenbemalung:base.back_material="red"
dieser code sollte die oberfläche mit der farbe "red" bzw rot bemalen, hier ist jetzt das problem, dass nichts gezeichnet wird und ein Fehler erscheint, dass "red" nicht definiert ist. wenn derselbe code später zur laufzeit ausgeführt wird funktioniert er seltsamerweise...
daher nehme ich an, dass einige libraries noch nicht geladen sind, jedoch habe ich nirgends abhängigkeiten gefunden. wäre geil, wenn jemand wüsste wie ich das beheben kann.
das zweite problem ist noch immer, dass ich nicht weiss wie ich die skp-datei exportieren kann, dies sollte aber kein allzu schlimmes problem sein, ist auch nicht umbedingt notwendig.
mfG toredo
Advertisement