Zum Inhalt springen

Marionette: Node für Koordinateneingabe mit Mausklick?


hanswurst

Empfohlene Beiträge

Hallo Zusammen,

habe jetzt eine ganze Weile im Entwickler-Wiki gesucht aber nichts gefunden, deshalb meine Frage ans Forum:

Gibt es einen Marionette-Node mit dem ich die Koordinaten (2D) eines Mausklicks, z.B. um den Einfügepunkt eines Objektes zu bestimmen, erfassen kann? 

es grüßt der Hans

 

 

Windows 11 Pro 22H2, VW 2024 SP3.1 Architektur

Link zu diesem Kommentar

Salü Hans

 

Also ein Standard-Node/Befehl gibt es dafür glaube ich nicht.
Aber mit der PyAutoGUI Python Erweiterung, kann die Position vom Mauszeiger abgefragt werden.
Und @Dominique Corpataux hat hier Nodes erstellt, mit welchen Python Erweiterungen direkt im VW installiert werden können.

So könntest du dir den Node selber bauen.
Als Beispiel wie externe Pythonbefehle in Nodes verwendet werden, kann dir das folgende helfen:
VoronoiObj_v2017.vwx von Marissa Farrell

Hast du dann vor, das Marionette per Tastenkombination auszulösen?

Gruss KroVex

 

  • Like 2

CADNODE.ch

Lassen Sie uns gemeinsam effiziente und innovative CAD-Lösungen für Ihr Projekt finden!

Have you tried to turn it off and on again?
Vectorworks | Architektur | macOS/Windows

Link zu diesem Kommentar

Nein, gibt es nicht. Ich bin auch nicht sicher, wie es funktioniert und kann mir vorstellen, dass es nicht ganz trivial ist in VW einzubauen weil du nur sehr schlechte Kontrolle hast, wann ein Script ausgeführt wird.

 

Du bräuchtest eine Wartefunktion, bis die Eingabe gemacht wurde. Was genau möchtes du den tun?

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
Am 24.9.2021 um 19:10 schrieb Manuel Roth:

dass es nicht ganz trivial

 

das habe ich mittlerweile auch bemerkt ;)

Ich wollte eigentlich ein Script erstellen, um schneller aus einem 2D-Vermesserplan 3D-Punkte für das Geländemodell zu generieren. Dazu soll, wenn man einen Vermesserpunkte anklickt ein Eingabefenster für den z-Wert erscheinen und dann mit den x/y-Koordinaten des Mausklicks und dem Eingegeben z-Wert ein 3D-Punkt erstellt werden.

 

 

es grüßt der Hans

 

 

Windows 11 Pro 22H2, VW 2024 SP3.1 Architektur

Link zu diesem Kommentar
vor 52 Minuten schrieb hanswurst:

Dazu soll, wenn man einen Vermesserpunkte anklickt ein Eingabefenster für den z-Wert erscheinen und dann mit den x/y-Koordinaten des Mausklicks und dem Eingegeben z-Wert ein 3D-Punkt erstellt werden.

Also wenn du ja direkt 3D-Punkte setzen würdest, übernehmen diese ja die X/Y Koordinate vom Plan. Oder stört es dich, dass du dann mit der Maus noch in die Infopalette fahren musst, um dort den Z-Wert einzugeben?

Ansonsten könntest du auch ein Script machen, welches vom aktivierten Vermessungspunkt die X/Y-Koordinate ausliest, sich ein Popup öffnet wo du noch den Z-Wert eintippst und zuletzt wird dort anhand dieser Werte ein 3D-Punkt gesetzt. Anschliessend nur noch das Script in den Plugin-Manager überführen und ein Tastenkürzel zuweisen.

Gruss KroVex

  • Like 1

CADNODE.ch

Lassen Sie uns gemeinsam effiziente und innovative CAD-Lösungen für Ihr Projekt finden!

Have you tried to turn it off and on again?
Vectorworks | Architektur | macOS/Windows

Link zu diesem Kommentar

Genau diesen extra Klick in die Infopalette wollte ich mir mit dem Script sparen. Ich habe begonnen mich mehr mit Scripten zu beschäftigen, um meinen Workflow mit "personalisierten" Tools zu optimieren, da wäre es auch für andere Aufgaben schöne direkt mit Mausklick Objekte platzieren zu können - aber da werde ich wohl doch noch etwas mehr Zeit investieren müssen...

es grüßt der Hans

 

 

Windows 11 Pro 22H2, VW 2024 SP3.1 Architektur

Link zu diesem Kommentar

Vielleicht hilft das hier weiter:
https://developer.vectorworks.net/index.php/VS:ForEachObjectAtPoint (siehe Python-Beispiel weiter unten)

https://developer.vectorworks.net/index.php/VS:FindObjAtPt_GetObj

import vs;

def DoIt(h1):
	vs.AlrtDialog( "we're in", h1 )

def PickPointCallback(pt):
	vs.ForEachObjectAtPoint(DoIt, 0, 0, pt[0], pt[1], 5)

vs.AlrtDialog( "show let you pick a point, and then show a dialog with the object's handle" )
vs.GetPt( PickPointCallback )

 

Gruß


Antonio Landsberger

ComputerWorks GmbH

http://www.computerworks.de

Link zu diesem Kommentar

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      23,4Tsd
    • Beiträge insgesamt
      120,2Tsd
×
×
  • Neu erstellen...