Zum Inhalt springen

Ähnliche Objekte Aktivieren mit Dialog Box für Suchkriterium?


fkaindl

Frage

Geschrieben

Hallo,

 

ich würde gerne ein Skript erstellen dass es mir erlaubt alle Symbole zu aktivieren, die in einem Bestimmten Feld den gleichen Eintrag haben.

 

An sich funktioniert das mit "Ähnliche Objekte aktivieren", jedoch muss ich für jedes "Suchkriterium" ein eigenes Skript erstellen.

Ich möchte die Möglichkeit haben ein Dialogfeld zu öffnen in das ich das "Suchkriterium" nach dem in diesem Datenbank Feld gesucht wird individuell eingeben kann.

 

Also meinetwegen haben alle Symbole in einem Datenbankfeld die Information der Position (Raum 1; Raum 2;...) und ich möchte mit dem Skript ein Dialogfeld aufrufen, in dass ich nun eingeben kann, nach welchem Eintrag (also z.B. "Raum 1") gefiltert und aktiviert werden soll.

 

Die passenden Todes habe ich in den Standard Marionetten Symbolen nicht gefunden und ich habe keine Ahnung von Python, daher die Frage ob mir jemand mit den passenden Todes für Marionette oder der passenden CodeZeilen weiterhelfen kann.

 

Vielen Dank und Gruß

 

Florian

10 Antworten auf diese Frage

Empfohlene Beiträge

Geschrieben

Ich habe nochmal mein Vorhaben auf anderem Weg versucht zu lösen, leider scheint mein Script fehlerhaft und ich finde den Fehler leider nicht, vielleicht kann mir einer von euch beim Debuggen des Scrips helfen. 

Procedure SEARCH_FOR_PB;
VAR 
PB:STRING;

BEGIN
PB := StrDialog('Select all Fixtures on', 'PB ID');
DSelectAll;
SelectObj('Lighting Device'.'Circuit Name'= PB );

END;

RUN (SEARCH_FOR_PB);

Der Sinn des Scripts ist es möglichst schnell alle Scheinwerfer, die einen bestimmten Eintrag im Feld 'Circuit Name' haben (Suchwert wird im Dialogfeld abgefragt wird) zu selektieren.

Eigentlich ein sehr simples Skript, aber scheinbar kommt der Befehl nicht mit der Variable klar, oder mache ich einen anderen Fehler?

Danke und Grüße

Florian

Geschrieben (bearbeitet)

Sorry nicht richtig gelesen... :-(

Bearbeitet von vectorworker

Windows 10

Intel i7 8086K, Nvidia GTX 1080, 64GB Ram, SSD

ASUS ROG Zephyrus Duo 15 SE, R9-5900HX, 32GB, 2x1TB SSD, RTX3080

Vectorworks 2022 Designer

Geschrieben (bearbeitet)

Falls es jemanden interessiert, Problem gelöst.

Wenn jemand ein Script benötigt mit dem man z.B. alle Scheinwerfer die auf eine PB gesteckt sind oder die in einem bestimmten ID Bereich liegen schnell und einfach aktivieren kann ...einfach bei mir melden.

 

Gruß

 

Flo

 

Bearbeitet von fkaindl
Geschrieben
Am 6.10.2018 um 15:37 schrieb fkaindl:

Die passenden Todes habe ich in den Standard Marionetten Symbolen nicht gefunden

So würde es mit Marionette funktionieren (Ab VW 2019 wird das Node "Object by Crit" mit einem Dialogfeld mitgeliefert):1806473103_Bildschirmfoto2019-05-03um16_02_04.png.42551bd97021317b5ddf4e1abda47a22.png
 

 

Gruss KroVex

CADNODE.ch

Unabhängige CAD-Beratung & Support für Planende: persönlich, zuverlässig und pragmatisch – Workflows, die nicht nur gut klingen, sondern auch funktionieren.

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

Geschrieben

Ah cool danke gut zu wissen. Mir ging es aber vor allem darum das Kriterium in einem Pop Up variabel eingeben zu können.

In deinem Beispiel wäre also mein Wunsch ein Script zu haben, in dem die Kriteriankategorien schon vorgegeben sind und das ein Fenster öffnet in dem ich dann nurnoch

eine Ebene, einen Objekttyp und eine Klasse eingeben muss nach dem gefiltert und dann selektiert werden soll.

> Workflow:

Mit entsprechenden Kriterienkategorien vordefiniertes Script in Scriptpalette doppelklicken > Wert in Fenster eingebend mit Enter bestätigen  > Objekte sind aktiv.

Eben schnell und einfach...

 

Ich hab ja jetzt meine Lösung, trotzdem Danke, mit dem Thema Marionette werde ich mich aber jetzt auch mal mehr befassen.

 

Grüße

 

Flo

Geschrieben

Theoretisch ließe sich das Marionette-Network von @KroVex auch als Menübefehl einbauen, falls man es nicht nur in einer Datei haben möchte.

  • Like 1

iMac (Retina 5K, 27", 2020)

macOS Big Sur

Prozessor: 3,8 GHz 8-Core Intel Core i7

Speicher: 40 GB 2133 MHz DDR4

Grafikkarte: AMD Radeon Pro 5700 8 GB

 

 

Geschrieben
vor 43 Minuten schrieb fkaindl:

Mir ging es aber vor allem darum das Kriterium in einem Pop Up variabel eingeben zu können.

 

Das ginge auch, ist dann halt ein bisschen komplexer:

609867876_Bildschirmfoto2019-05-03um17_20_01.thumb.png.08a3e6108f50bac3fb12fc8e46d255e4.png

 

Mit der Node "Popup Dialog" kann so etwas realisiert werden: Dieses Node verlangt als Input eine Liste an Auswahlkriterien, welche in meinem Beispiel aus String-Nodes bestehen und somit beliebig definiert werden können. Wird im Popup-Feld also z.b. Linie ausgewählt, prüft die Node "If in String" ob die Auswahl "Linie" im Input-String vorkommt und gibt dem entsprechend ein Ja oder Nein aus. Die "If-Node" leitet dann das entsprechende, vordefinierte "Objekt nach Kriterium" weiter an die Selektion, sofern ein "Ja" ankommt.

Gruss KroVex

CADNODE.ch

Unabhängige CAD-Beratung & Support für Planende: persönlich, zuverlässig und pragmatisch – Workflows, die nicht nur gut klingen, sondern auch funktionieren.

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

Geschrieben (bearbeitet)

OK das ist cool, danke.

Hier mal eins meiner manuellen Scripte die das erfüllen was ich will und die auch funktionieren, wenn ich sowas zukünftig mit Marionetten einfacher bauen kann wäre das cool:

Es geht um Scheinwerfersymbole (und der Spotlightdatenbank) und auf welchen Stromverteilern diese Verkabelt sind.

 

Es gehen in diesem Fall 2 Fenster nacheinander auf, 

    1. Fenster fragt nach der PlugBox (Steckbrett)

    2. Fenster fragt nach dem Kanal auf diesem Steckbrett

> fertig

 

Seit ich den "Concat" Befehl zum zusammensetzen nutze funktioniert es auch prima.

An Sich ist meine ursprüngliche Frage also geklärt, wenn du mir sagen kannst wie ich das als Marionette nachbauen kann wäre stark, dann kann ich damit vielleicht zukünftig weiterarbeiten, ist ja doch eingängiger mit dem grafischen scripten.

 

Python Script:

 

vs.DSelectAll()
StringPB = vs.StrDialog("Plugbox", "")
StringCH = vs.StrDialog("CH", "")
criteria = vs.Concat("('Lighting Device'.'Circuit Name'='" + StringPB + "')&('Lighting Device'.'Circuit Number'='" + StringCH + "')")
vs.SelectObj(criteria)

Bearbeitet von fkaindl
Geschrieben

Ich sehe da das Problem, dass ich dem Kriteriums Marionette Node nichts im Input aus einer anderen Node oder einem Eingabefeld übergeben kann...

Geschrieben
vor 7 Stunden schrieb fkaindl:

Falls es jemanden interessiert, Problem gelöst.

Wenn jemand ein Script benötigt mit dem man z.B. alle Scheinwerfer die auf eine PB gesteckt sind oder die in einem bestimmten ID Bereich liegen schnell und einfach aktivieren kann ...einfach bei mir melden.

 

Gruß

 

Flo

 

 

Hi Flo; 
 

klingt sehr spannend - und würde mich sehr interessieren ! 

Lieber Gruss
David

VWX Spotlight 21 / 22 jeweils neuestes SP

OSX 12.2.1 / i9 2.9 GHz 

 

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
      25,5Tsd
    • Beiträge insgesamt
      132Tsd
×
×
  • Neu erstellen...