Zum Inhalt springen

Textinhalt in Tabelle?


mo2999

Empfohlene Beiträge

Es gibt die Möglichkeit mit der Funktion RunScript ein eigenes Script auszuführen. Damit könntest du die Texte ohne Probleme auslesen. Wenn du Hilfe dazu brauchst, kannst du dich gerne wieder melden.

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Hallo mo2999

 

Den Text automatisiert in eine Datenbank zu schreiben, wäre auch noch eine Option.

 

Gruss, Marc

TextinDatenbank.vwx

  • Like 2

Leiter BIM Consulting

ComputerWorks Schweiz

________________________________________

Vectorworks - Führende BIM-Spitzentechnologie und Flaggschiff der Nemetschek Gruppe

Weltweit verwirklichen über eine halbe Million Architekten und Designer grossartige Projekte mit Vectorworks!

Link zu diesem Kommentar

Vielen dank funktioniert super.

 

Ist es möglich das Marionetten-Skript nach Klassen oder Markierten Objekten zu Filtern?

 

Gruß

 

 

Edit

------------------------------------------

Frage hat sich erledigt. Kann ich ja über die Tabellen Filter erledigen.

Bearbeitet von mo2999
Link zu diesem Kommentar

Die Filterung könntest du über die Tabelle vornehmen. Dann bist du sicher, dass alle Texte in deine Tabelle übernommen werden können. Dafür wirst du ein wenig längere Rechenzeiten haben um die Texte zu aktualisieren.

 

Wenn du nicht alle Texte in die DB übertragen möchtest, kannst du die Kriterien im Objs by Crit-Node verändern. Nach Klassen, Ebenen und weiteren Kriterien zu filtern ist damit kein Problem. Wenn du nach markierten Objekten filtern möchtest musst du das Netzwerk in einen Menübefehl umwandeln. Dies weil es nicht möglich ist, das Netzwerk auszuführen, wenn du nebst einem Node noch einen Text aktiviert hast.

 

 

Die Option mit der benutzerdefinierten Tabellenfunktion, die ich oben erwähnt habe, ist in meinen Augen noch ein wenig einfacher, weil du keine Datenbank brauchst.

Lege dazu ein neues Script mit dem Namen Text an. Stelle die Scriptsprache auf Python um und kopiere die folgende Scriptzeile ins Fenster.

vs.WSScript_SetResStr(vs.GetText(vs.WSScript_GetObject()))

Nun kannst du in der Tabelle die Formel =RUNSCRIPT('Text') verwenden und es wird dir der Text angezeigt. Beim Einfügen wird dir eine Meldung angezeigt, bei der du bestätigen musst, dass du das Script ausführen willst.

  • Like 2

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
  • 10 Monate später...
Am 23.10.2020 um 21:57 schrieb Marc Wittwer:

Hallo mo2999

 

Den Text automatisiert in eine Datenbank zu schreiben, wäre auch noch eine Option.

 

Gruss, Marc

TextinDatenbank.vwx 173 kB · 6 downloads

 

Hallo Marc,

 

Danke für die Marionette.

 

Kleiner Nachteil, ist, dass die Marionette nicht bidirektional funktioniert,

d.h. Textänderungen in der Tabelle, wirken sich nicht auf die Textfelder aus.

 

Das Beschriftungstool funktioniert allerdings bidirektional mit Tabellen!

 

Tabellenbefehl:

='Callout'.'Text'

 

… jetzt müsste man nur noch eine Funktion haben, um Textfelder

in Beschriftungen konvertieren zu können.

 

… oder viel besser: Textfelder DIREKT in Tabellen auflisten können!

 

Ein Wunschformular habe ich soeben verfasst!

 

Grüße

Tobi

/  /  /  /  /

 

VW 2024 Update 4.1 (Build 750539)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.4.1

Link zu diesem Kommentar

Salü Tobi

 

vor einer Stunde schrieb tobiaskern:

Kleiner Nachteil, ist, dass die Marionette nicht bidirektional funktioniert,

d.h. Textänderungen in der Tabelle, wirken sich nicht auf die Textfelder aus.

 

Also ganz abgesehen davon, dass ich deinen Einwand unterstütze und es sehr nice währe, wenn Textfelder über die Tabelle direkt ausgelesen und beschrieben werden könnte, ist der fehlende Punkt beim Marionette keine Hexerei:
TextinDatenbank v2021.vwx

Gruss KroVex

  • Lieben 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

Hi Krovex,

 

thnx für den Input.

 

… ich muss mich endlich mal gescheit mit Marionette auseinander setzen,

es scheint als könnte man dort manche Ideen/Träume wahr werden lassen.

 

Recht lustig, ich habe gestern eine ähnliche Marionette aus dem Forum

geladen (aus Version 2019 oder 2020) und angepasst.

 

Meine angepasste Marionette macht im Prinzip das gleiche wie Deine (Text in Tabelle).

Meine Marionette funktioniert allerdings nicht, ich habe ewig investigiert und keine

Unterschiede gefunden. Ist manchmal zum Haareraufen!

 

Was ist Deine Empfehlung:

 

1

Marionette wrappen? 

So wie ich das verstehe liegt dann die Marionette irgendwo in der Zeichnung rum, oder?

Es werden dann auch immer Marionette-Klassen angelegt.

Legt man die Marionetten dann auf extra Dummy-Ebenen?

Ist das praktikabel?

 

2

… oder kann man Marionetten auch als Menübefehl integrieren?

 

3

Script davon erstellen?

Könnte man ein Script wieder zurück in eine Marionette wandeln?

 

Meine Tendenz geht zum Script, da ich dann nichts extra rumliegen habe !

 

Grüße, nochmals 1.000 Dank und eine schöne Restwoche.

Tobi

/  /  /  /  /

 

VW 2024 Update 4.1 (Build 750539)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.4.1

Link zu diesem Kommentar
vor 18 Minuten schrieb tobiaskern:

Recht lustig, ich habe gestern eine ähnliche Marionette aus dem Forum

geladen (aus Version 2019 oder 2020) und angepasst.

 

Meine angepasste Marionette macht im Prinzip das gleiche wie Deine (Text in Tabelle).

Meine Marionette funktioniert allerdings nicht, ich habe ewig investigiert und keine

Unterschiede gefunden. Ist manchmal zum Haareraufen!

Das ist ein Punkt, der mich auch sehr, sehr aufregt und ich nicht verstehe, was das Problem sein soll.
Alte/Konvertierte Marionette-Bausteine funktionieren teilweise einfach nicht mehr, obwohl sich ja am Script darin nichts geändert hat. Noch schlimmer ist es bei Custom-Nodes, da kannst du fast sicher gehen, dass sie in der nächsten Version nicht mehr funktionieren. Deshalb wenn etwas mal nicht funktioniert was eigentlich sollte -> die konvertierten Nodes mit Neuen ersetzen und es sollte wieder gehen.
 

vor einer Stunde schrieb tobiaskern:

1

Marionette wrappen? 

Wrappen bringt es meiner Ansicht nach nur in wenigen fällen, wenn du eine Funktion selten benötigst oder um ein Netzwerk zu vereinfachen/verkleinern.
 

vor einer Stunde schrieb tobiaskern:

2

… oder kann man Marionetten auch als Menübefehl integrieren?

In ein Menübefehl umwandeln würde ich es immer dann, wenn es eine Funktion ist, die oft und in unterschiedlichen Dokumenten funktionieren sollte. Tipp: Du kannst das Marionette-Menüfeld welches irgendwo in den Extras unterverschachtelt ist, auch in ein eigenes Menü verschieben. 

 

vor einer Stunde schrieb tobiaskern:

3

Script davon erstellen?

Könnte man ein Script wieder zurück in eine Marionette wandeln?

Ich habe noch keinen Befehl gefunden, welches dies wieder zurück verwandelt. 
Was aber bei der Umwandlung zum Script interessant ist -> du kannst das Pythonscript verwenden um ein eigenes VW-Plugin zu erstellen (Menü Extras -> Plug-Ins -> Plug-In Manager), welches dann z.B. mit eigenen Tastenkürzel versehen werden kann. So hast du dann auch eine externes Plugin-File welches du sehr einfach handhaben/installieren kannst.


Ich vermute hier aber, dass ein komplexer Befehl wahrscheinlich nicht soo effizient läuft, wie eines welches frisch in Python programmiert wurde. Bei der Umwandlung wir leider eben auch das ganze Marionette-Gedöns im Code integriert und du somit für etwas, was vielleicht 10 Zeilen benötigen würde, plötzlich 300 Zeilen hast.

Gruss KroVex

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

Moin Krovex,

 

grüße Dich und Danke für Deine Beanwortung.

 

Wo legst Du dann Deine Marionetten ab im Dokument,

auf einer separaten Ebene?

 

Ich habe die Marionetten mal in ein Python Script gepackt.

 

Zwei Fragen hätte ich noch:

 

A

Wie könnte ich nach Ausführung von Text2Tabelle die Tabelle gleich autom. mitaktualisieren lassen,

so dass der neue Zustand gleich angezeigt wird?

 

B

Die Marionette sucht ja quasi in allen vorhandenen Ebenen. Könnte ich ein Zwischenschritt einbauen,

indem ich festlegen kann, welche Ebenen (eine, oder mehrere) berücksichtigt werden?

 

Viele Grüße und ein schönes We.
Tobi

/  /  /  /  /

 

VW 2024 Update 4.1 (Build 750539)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.4.1

Link zu diesem Kommentar

Salü Tobi

 

Am 24.9.2021 um 09:29 schrieb tobiaskern:

Wo legst Du dann Deine Marionetten ab im Dokument,

auf einer separaten Ebene?

Jene Marionette welche ich im Dokument ablege, sind eigentlich nur noch welche, die in ein Object-Marionette umgewandelt sind. Also z.B. Wohnungsstempel, welche im Vordergrund ein Symbol anzeigen, aber im Hintergrund ein Marionette haben.
Für einzelne angewendete Marionette-Befehle habe ich entweder ein Favoritendokument, wo ich mir die Wrapper einfach kurz importieren -> auslösen und wieder löschen kann, oder eben als Menü-Befehl gesichert. Aber da bist du ja vollkommen frei -> du kannst dir gut einfach eine Ebene oder Klasse mit dem Namen "Hilfstools" oder so machen. Wie es dir besser passt.

 

Am 24.9.2021 um 09:29 schrieb tobiaskern:

Wie könnte ich nach Ausführung von Text2Tabelle die Tabelle gleich autom. mitaktualisieren lassen,

so dass der neue Zustand gleich angezeigt wird?

Schau mal in diesem Thread, da hat herbieherb gezaubert.
 

 

Am 24.9.2021 um 09:29 schrieb tobiaskern:

Die Marionette sucht ja quasi in allen vorhandenen Ebenen. Könnte ich ein Zwischenschritt einbauen,

indem ich festlegen kann, welche Ebenen (eine, oder mehrere) berücksichtigt werden?

Ja, allerdings mit gleich zweien Custom-Nodes von @Manuel Roth:
TextinDatenbank v2021.vwx

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

Hallo zusammen

 

Bin nicht mehr 100% auf dem aktuellen Stand aber soweit ich es überflogen habe, ist das Ziel eine Formel zu erstellen, die den Text bidirektional ausliest.

 

Ist ohne Marionette mit RunScripEdit sehr viel direkter möglich.

#MRoth
#V2 210928

b, new_value = vs.WSScript_GetEdit()

if new_value != '':
	vs.SetText(vs.WSScript_GetEditObj(0)[1], new_value)
	vs.RecalculateWS(vs.GetTopVisibleWS())
	
else:
	vs.WSScript_SetResStr(vs.GetText(vs.WSScript_GetObject()))

 

Einfach diesen Code in ein neues Script kopieren, auf Python umstellen und in der Tabelle mit =RunScriptEdit('Scriptname') ausführen.

 

Einziges Problem dabei sind Textfelder mit Zeilenumbrüchen. Die werden in der Tabelle zwar korrekt dargestellt. (aber nur wenn die Zelle mit einer festen Textfeldbreite formatiert ist)

Bei der Bearbeitung gibt es aber das Problem, dass alles auf eine Zeile geschrieben wird. Dies ist meiner Meinung nach aber ein Problem von der Tabelle und dort kann ich keinen Einfluss nehmen.

 

Viel Spass mit dem Script.

  • Like 2

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

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