Mitch Geschrieben 14. Juli 2019 Teilen Geschrieben 14. Juli 2019 Kann mir jemand auf die Sprünge helfen? Ich müsste eine große Anzahl (ca 480) an 3D-Symbole jeweils in sich um 180° drehen. Ich müchte das ungern einzeln machen müssen... VW2019 SP4 Danke schonmal. Liebe Grüße Michael Michael Gärttling licht . technik . design Osterholzallee 140-1 71636 Ludwigsburg mail@lightingtheworld.de Link zu diesem Kommentar
zoom Geschrieben 14. Juli 2019 Teilen Geschrieben 14. Juli 2019 Kein VW zur Hand. Aber ist nicht in der OIP eine Eingabe für den Winkel von Symbolen ? Allerdings drehen sie sich dann um ihren Einfügepunkt und würden, wenn alle ausgewählt, mit neuer Winkeleingabe, alle dem selben Winkel übernehmen. Also sich nicht nur um 180• drehen, sondern auf den absoluten Winkel. Mac Mini M1 16 GB M1 macOS 15 Sequoia PB Mac Pro 6c 24 GB D700 macOS 12.5 Monterey, in Rente ... PC RYZEN 3950X 64 GB RX6800 16 GB Manjaro + OpenSUSE Tumbleweed + ElementaryOS VW 2024 ARCH US Europe Link zu diesem Kommentar
Mitch Geschrieben 15. Juli 2019 Autor Teilen Geschrieben 15. Juli 2019 vor 11 Stunden schrieb zoom: Aber ist nicht in der OIP eine Eingabe für den Winkel von Symbolen ? Allerdings drehen sie sich dann um ihren Einfügepunkt und würden, wenn alle ausgewählt, mit neuer Winkeleingabe, alle dem selben Winkel übernehmen. Also sich nicht nur um 180• drehen, sondern auf den absoluten Winkel. Theoretisch geht das über OIP, allerdings genau wie Du sagst nur auf einen absoluten Winkel, ich müsste um einen relativen Winkel drehen. Und, mir wird leider kein Feld angeboten um den Winkel einzutragen, vermutlich weil die Instanzen alle unterschiedliche 3D-Ausrichtungen haben. 3D-Rotieren fällt leider auch aus, da ich dort Alle nur um einen gemeinsamen Punkt drehen kann. Michael Gärttling licht . technik . design Osterholzallee 140-1 71636 Ludwigsburg mail@lightingtheworld.de Link zu diesem Kommentar
Manuel Roth Geschrieben 15. Juli 2019 Teilen Geschrieben 15. Juli 2019 Sind es überall die selben Symbole? In diesem Fall könntest du die Objekte im Symbol drehen. Wenn du noch andere nicht drehbare Instanzen von diesem Symbol im Plan hast, kannst du ein neues Symbol erstellen. Der Inhalt von diesem ist das alte Symbol, allerdings so rotiert wie du gerne möchtest. Nun kannst du alle zu rotierende Symbole ersetzen. Bei einer Bearbeitung vom alten Symbol, würde sich so auch das neue anpassen. Oder als weitere Option könnte auch Marionette dienen. 1 Freundliche Grüsse Manuel Roth _________________________________________________ Vectorworks 2022 SP3 | Architektur | Windows 10 Link zu diesem Kommentar
zoom Geschrieben 15. Juli 2019 Teilen Geschrieben 15. Juli 2019 Also generell scheint es diese verbreitete Möglichkeit, Elemente lokal um ihr Zentrum zu drehen oder skalieren zu können in VW nicht zu geben. Aber ich meine Pat Stanford hätte auf dem US Forum dafür ein Script gebastelt .... Mac Mini M1 16 GB M1 macOS 15 Sequoia PB Mac Pro 6c 24 GB D700 macOS 12.5 Monterey, in Rente ... PC RYZEN 3950X 64 GB RX6800 16 GB Manjaro + OpenSUSE Tumbleweed + ElementaryOS VW 2024 ARCH US Europe Link zu diesem Kommentar
Mitch Geschrieben 15. Juli 2019 Autor Teilen Geschrieben 15. Juli 2019 Ja, über ein Duplikat des Symbols habe ich es jetzt auch gelöst. Allerdings finde ich, dass eine entsprechende Funktion möglich sein sollte, bzw. dass die Option "um Objektmittelpunkt rotieren" im 3D-Rotieren-Menü genau das tun sollte, jedes Objekt um SEINEN Mittelpunkt rotieren. Und nicht die komplette Selektion als ein Objekt zu interpretieren. Michael Gärttling licht . technik . design Osterholzallee 140-1 71636 Ludwigsburg mail@lightingtheworld.de Link zu diesem Kommentar
zoom Geschrieben 15. Juli 2019 Teilen Geschrieben 15. Juli 2019 vor 14 Minuten schrieb Manuel Roth: In diesem Fall könntest du die Objekte im Symbol drehen. Das scheint mir im Moment auch die zuverlässigste Variante zu sein. Mac Mini M1 16 GB M1 macOS 15 Sequoia PB Mac Pro 6c 24 GB D700 macOS 12.5 Monterey, in Rente ... PC RYZEN 3950X 64 GB RX6800 16 GB Manjaro + OpenSUSE Tumbleweed + ElementaryOS VW 2024 ARCH US Europe Link zu diesem Kommentar
zoom Geschrieben 15. Juli 2019 Teilen Geschrieben 15. Juli 2019 (bearbeitet) vor 10 Minuten schrieb Mitch: Ja, über ein Duplikat des Symbols habe ich es jetzt auch gelöst. Allerdings finde ich, dass eine entsprechende Funktion möglich sein sollte, bzw. dass die Option "um Objektmittelpunkt rotieren" im 3D-Rotieren-Menü genau das tun sollte, jedes Objekt um SEINEN Mittelpunkt rotieren. Und nicht die komplette Selektion als ein Objekt zu interpretieren. Ja, wäre schön. In 3D Apps wie C4D oder Modo verwende ich das ständig (lokales Action Center) Z.B. Um Baumsymbole in zufälligen Winkeln in 3 Achsen zu verdrehen und zu skalieren. Allerdings frage ich mich ob das so im CAD noch so viel Sinn ergibt. Bei Symbolen mit bewusstem Einfügepunkt mag das noch funktionieren. (wobei meine Symbolursprünge meist eher für eine sinnvolle Platzierung als für eine Rotation gedacht sind), Aber bei anderen Objekten, wie z.B. einfachen Grundkörpern, geht mir das Ändern von der geometrischen Mitte aus, eigentlich schon immer auf den Zeiger, weil ich sie jedesmal wieder nachschieben muss. Bearbeitet 15. Juli 2019 von zoom 1 Mac Mini M1 16 GB M1 macOS 15 Sequoia PB Mac Pro 6c 24 GB D700 macOS 12.5 Monterey, in Rente ... PC RYZEN 3950X 64 GB RX6800 16 GB Manjaro + OpenSUSE Tumbleweed + ElementaryOS VW 2024 ARCH US Europe Link zu diesem Kommentar
herbieherb Geschrieben 16. Juli 2019 Teilen Geschrieben 16. Juli 2019 Hab dir ein Script gemacht, das alle markierten Symbole um einen zufälligen Wert dreht. #by herbieherb, 16.07.2019 #rotates all selected symbols by random value #ignores other object types def Rotate(h): if vs.GetTypeN(h) == 15: x, y = vs.GetSymLoc(h) vs.HRotate(h, x, y, vs.Random() * 360) vs.ForEachObjectInLayer(Rotate, 2, 0, 2) Du kannst den Code in der Bibliothek als Python Script ablegen, dann kannst du den per Doppelklick da nutzen. Oder du kopierst diese Datei in deinen Benutzerordner unter Plugins, danach findest du den Menübefehl 'Symbole zufällig rotieren' welchen du in deine Arbeitsumgebung einbauen und auch per Shortcut nutzen kannst. Symbole zufällig rotieren.vsm 3 Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
linosphere Geschrieben 22. Februar 2023 Teilen Geschrieben 22. Februar 2023 Versuche gerade, das Script so zu modifizieren, dass die ausgewählten Symbole zufällig skaliert werden: def Resize(h): if vs.GetTypeN(h) == 15: x, y = vs.GetSymLoc(h) vs.HScale2D(h, x, y, vs.Random() * 1.5, vs.Random() * 1.5, True) vs.ForEachObjectInLayer(Resize, 2, 0, 2) Wo liegt der Fehler, bzw. was habe ich vergessen? Verstehe insbesondere nicht, was scaleText : in der Funktion macht (siehe https://developer.vectorworks.net/index.php/VS:HScale2D). Und können Symbole überhaupt mit dieser Funktion skaliert werden? Vectorworks Landschaft 2024 Mac Studio 2022 M1 Max - macOS Sonoma Link zu diesem Kommentar
Manuel Roth Geschrieben 22. Februar 2023 Teilen Geschrieben 22. Februar 2023 (bearbeitet) Das Problem ist, das sich Symbole beim Skaliern ein bisschen exotisch verhalten. Grundsätzlich macht der Befehl, den du verlinkst genau das selbe wie der Befehl Ändern>Skalieren. Dort werden Symbole zwar verschoben, wenn sie mit mehreren anderen Objekten verschoben werden, sie werden aber nicht grösser oder kleiner weil das Symbol als fixer Block angesehen wird, der immer gleich aussehen soll. (Finde ich diskutabel, ist aber ein anderes Thema.) Bei diesem Befehl hast du auch die Option, Text nicht zu skalieren. Oder schon, wenn du den Hacken setzt. Dies ist der letzte Parameter von deinem Befehl. Damit das Script funktioniert, musst du für die Symbolskalierung einen anderen Ansatz nehmen. Sieht dann in etwa so aus. def ran(min, max, kommastellen = None): r = vs.Random() * ( max - min ) + min if kommastellen != None: return round( r , kommastellen) else: return r def Resize(h): if vs.GetTypeN(h) == 15: min = 0.5 max = 1.5 x = ran(min, max, 2) y = ran(min, max, 2) z = ran(min, max, 2) vs.SetObjectVariableInt(h, 101, 3) vs.SetObjectVariableReal(h, 102, x) vs.SetObjectVariableReal(h, 103, y) vs.SetObjectVariableReal(h, 104, z) vs.ForEachObjectInLayer(Resize, 2, 0, 3) ran gibt dir eine zufällige Zahl in einem gewissen Bereich, die wenn gewünscht auf eine gewisse Anzahl Nachkommastellen gerundet wurde. Brauche ich sehr gerne, weil ich sonst jedes mal wieder überlegen muss, wie ich auf den gewünschten Bereich komme. Dein Script oben könnte nähmlich theoretisch auch mit Faktor 0 skalieren, was zu unschönen Ergebnissen führen kann. SetObjectVariableInt setzt im Prinzipt die Eingabe in der Infopalette. Ist aber nur für ausgewählte Parameter verfügbar. Variable 101 ist, welche Skalierungsoption genutzt werden soll. 102 bis 104 stellt die Skalierung in der entsprechenden Dimension ein. Und zum Schluss noch zu ForEachObjectInLayer. Wenn du dort als letzter Parameter 2 angibst, werden alle selektierten Objekte auf allen sichtbaren Ebenen abgearbeitet. Dies heisst aber nicht zwingend, das die Objekte im Moment auch mit der Maus bearbeitbar sein müssen. Es kann vorkommen, das ein selektiertes Objekt sich auf einer angegrauten Ebene befindet und demnach trotzdem bearbeitet wird. Benutze besser die Option 3 für bearbeitbare Ebenen. Bearbeitet 22. Februar 2023 von Manuel Roth 1 Freundliche Grüsse Manuel Roth _________________________________________________ Vectorworks 2022 SP3 | Architektur | Windows 10 Link zu diesem Kommentar
linosphere Geschrieben 23. Februar 2023 Teilen Geschrieben 23. Februar 2023 Top, besten Dank! Das war mein erster Versuch mit Skripten, hatte mir schon gedacht, dass sich Symbole anders verhalten beim Skalieren... Im Anhang die vsm-Datei, falls sich das noch jemand in seine Arbeitsumgebung einbauen möchte. Symbole zufällig skalieren.vsm 1 Vectorworks Landschaft 2024 Mac Studio 2022 M1 Max - macOS Sonoma Link zu diesem Kommentar
linosphere Geschrieben 23. Februar 2023 Teilen Geschrieben 23. Februar 2023 (bearbeitet) HIer noch die Modifikation, um immer symmetrisch zu skalieren: def ran(min, max, kommastellen = None): r = vs.Random() * ( max - min ) + min if kommastellen != None: return round( r , kommastellen) else: return r def Resize(h): if vs.GetTypeN(h) == 15: min = 0.5 max = 1.5 x = ran(min, max, 2) vs.SetObjectVariableInt(h, 101, 2) vs.SetObjectVariableReal(h, 102, x) vs.ForEachObjectInLayer(Resize, 2, 0, 3) Bearbeitet 23. Februar 2023 von linosphere Vectorworks Landschaft 2024 Mac Studio 2022 M1 Max - macOS Sonoma Link zu diesem Kommentar
herbieherb Geschrieben 23. Februar 2023 Teilen Geschrieben 23. Februar 2023 Da würdest du die Symbole auf symmetrische Skalierung einstellen und nur einen Random-Wert berechnen. Die dafür notwendige Objektvariable ist im Vectorscript Appendix unter Object Selectors zu finden. Das Script sieht dann so aus: def ran(min, max, kommastellen = None): r = vs.Random() * ( max - min ) + min if kommastellen != None: return round( r , kommastellen) else: return r def Resize(h): if vs.GetTypeN(h) == 15: min = 0.5 max = 1.5 x = ran(min, max, 2) # y = ran(min, max, 2) brauchts nicht mehr # z = ran(min, max, 2) brauchts nicht mehr vs.SetObjectVariableInt(h, 101, 2) # statt vs.SetObjectVariableInt(h, 101, 3), stellt Skalierung auf Symmetrisch vs.SetObjectVariableReal(h, 102, x) # vs.SetObjectVariableReal(h, 103, y) brauchts nicht mehr # vs.SetObjectVariableReal(h, 104, z) brauchts nicht mehr vs.ForEachObjectInLayer(Resize, 2, 0, 3) 1 Vectorworks 2024 - Architektur - Win 10 Link zu diesem Kommentar
linosphere Geschrieben 23. Februar 2023 Teilen Geschrieben 23. Februar 2023 Ha, sorry, da habe ich meinen Beitrag schon editiert gehabt mit der Lösung Vectorworks Landschaft 2024 Mac Studio 2022 M1 Max - macOS Sonoma Link zu diesem Kommentar
Manuel Roth Geschrieben 23. Februar 2023 Teilen Geschrieben 23. Februar 2023 Wenn du das ganze als Menübefehl bauen willst, würde ich empfehlen die Min und Max-Werte per Dialog abzufragen, da du sie ansonsten nur schwer ändern kannst. Aufgefallen ist mir auch noch, dass ein bereits skaliertes Symbol nicht von der skalierten Grösse aus weiterskaliert wird, sondern auf eine absolute Skalierung von 0.5 - 1.5 eingestellt wird. Das Script unten regelt diese Problem. def ran(min, max, kommastellen = None): r = vs.Random() * ( max - min ) + min if kommastellen != None: return round( r , kommastellen) else: return r def Resize(h): if vs.GetTypeN(h) == 15: k = round( ran(min, max) * vs.GetObjectVariableReal(h, 102) , 2) vs.SetObjectVariableInt(h, 101, 3) vs.SetObjectVariableReal(h, 102, k) min = vs.RealDialog('Min', 0.5) max = vs.RealDialog('Max', 1.5) vs.ForEachObjectInLayer(Resize, 2, 0, 3) 2 Freundliche Grüsse Manuel Roth _________________________________________________ Vectorworks 2022 SP3 | Architektur | Windows 10 Link zu diesem Kommentar
linosphere Geschrieben 23. Februar 2023 Teilen Geschrieben 23. Februar 2023 Cool, da hatte ich auch schon drüber nachgedacht. Jetzt könnte ich mir noch vorstellen, dass die Abfrage ein Fenster öffnet, in dem min/max-Werte eingegeben und symmetrisch/asymmetrisch per radiobutton gewählt werden können. Dann könnte Computerworks das auch in das Standard-Toolset übernehmen Aber so ist auch schon toll, die Kollegen aus der Wettbewerbsabteilung freuen sich jetzt schon Vectorworks Landschaft 2024 Mac Studio 2022 M1 Max - macOS Sonoma Link zu diesem Kommentar
M Schäfer Geschrieben 28. Februar 2023 Teilen Geschrieben 28. Februar 2023 Hab den Beitrag eben erst gesehen: Gibt es im Kontextmenu (also Rechtsklick über aktiviertem Objekt) bei euch den Punkt "Rotieren und Spiegeln" den Punkt "Einzeln um 90° nach links / rechts drehen" nicht? Kann sein, dass das nur den Spotlight-Anwendern zur Verfügung steht (was mich nicht wundern würde, habe eine durchaus merkwürdige Auswahloption auch nur in der Spotlight-Umgebung und bekomme sie nicht in andere Arbeitsumgebungen...) Viele Grüße Markus VW 2024 SP5 Designer - Braceworks (Deutsche Version) auf Windows 10 (64 Bit) Link zu diesem Kommentar
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden