Jump to content

Empfohlene Beiträge

Hallo zusammen

 

Ich möchte gerne einen einfachen Dialog ohne Ausrufezeichen oder sonst so etwas darstellen. Ist das möglich?

Am schönsten wäre es natürlich, wenn oben im Dialg ein benutzerdefinierter Titel gesetzt werden könnte. Dies ist allerdings nicht zwingen. Nur ein Nice-to-have.

 

Das der Dialog auf Knopfdruck erscheint, bringe ich hin.


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Und dann funktioiert es trotzdem nicht.

 

Der Dialog erscheint zwar bei einem Klick auf den Button. Allerdings bricht das Script ab, sobald ich es ausführe wenn ein Dialog-Node im Netzwerk verbaut ist.

Wie rufe ich def scripf(self) korrekt auf? Nur die Zeile pass durch script zu ersetzen funktioiert trotzdem nicht so wie gewollt.


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Ich denke der Ansatz ist der richtige. Denn wenn anstelle der Parameter 1 und 2 einfach self hineingegeben wird kommt keine Fehlermeldung mehr. Allerdings erscheint das Dialogfeld jedesmal, wenn das Netzwerk ausgeführt wird und nicht nur beim drücken des Buttons.

Zitat

This is where you define your custom script for when the button is pressed

 

Klar könnte der Dialog im Normalfall mit einem vorhergehenden Valve-Node geblockt werden. Aber in meinem Fall möchte ich eine Beschreibung des PIOs anzeigen, wenn der Button gedrückt wird. Wenn nun das PIO geändert wird, erscheint jedes mal der Dialog. Nicht nur, wenn der Buton geklickt wird.

 

Hast du eventuell noch eine Idee, wie das geblockt werden könnte?


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Sorry, Python-Fragen kann ich antworten, aber mit Marionette kenne ich mich überhaupt nicht aus.


Software-Entwickler

extragroup GmbH

Diesen Beitrag teilen


Link zum Beitrag
Geschrieben (bearbeitet)

Hallo Manuel,

 

mir ist nach dem Lesen deiner Beiträge leider noch nicht ganz klar, was du machen möchtest.

Kannst du die Datei hier hochladen oder mir per Nachricht schicken?

 

Vielleicht hilft dir ein Blick auf die "Get Symbol from Folder" Node weiter, die einen Knopf in der Informationenpalette benutzt.

Wichtig ist in diesem Fall, dass im Bereich "def script(self):" die Zeile "self.Params.out.blocked = True" steht, wobei "out" der Ausgang der Node darstellt.

bearbeitet von Antonio Landsberger

Gruß


Antonio Landsberger

ComputerWorks GmbH

httpw://www.computerworks.de

Diesen Beitrag teilen


Link zum Beitrag

Der Inhalt eines Nodes das ich benutze um Dateien auszuwählen. Es tut vom Prinzip her etwas ähnliches, was Du haben willst:

1. Wird der Button "Pick File" gedrückt, dann kann man eine Datei auswählen. Das Script wird aber nicht weiter ausgeführt (blocked = True). Es wird aber der Pfad in ein Feld geschrieben.

2. Wenn man dann das Script ausführt (ohne Button) wird der Pfad aus dem Feld gelesen.

Im Prinzip könnte man die Zeile mit vs.GetFile... auswechseln Durch ein Dialogfenster, in welchem man einen Wert einstellt, welcher dann in das Feld geschrieben wird und dann später wenn man das Script normal ausführt von dort gelesen wird. Das selbe Prinzip wie das Beispiel von Antonio.

#DomC 2019
@Marionette.NodeDefinition
class Params(metaclass = Marionette.OrderedClass):

	By = 'DomC';import datetime; now = datetime.datetime.now(); y80f5 = now.year;m80f5 = now.month; d80f5 = now.day; h180f5 = now.hour; mi180f5 = now.minute; s180f5 = now.second; ms180f5 = now.microsecond; h2 = now.hour-12 if now.hour >=13 else now.hour; VersionChange1 = str(y80f5)+' '+str(m80f5)+' '+str(d80f5); VersionChange2 = str(y80f5)+'-'+str(m80f5)+'-'+str(d80f5)+'-'+str(h2)+'-'+str(mi180f5); 
	TextStatic = Marionette.OIPControl( By +' v'+VersionChange2, Marionette.WidgetType.TextStatic, "")
#APPEARANCE
	#Name
	this = Marionette.Node( 'Pick File' )
	this.SetDescription( 'Returns a File Path' )
	
	#Input Ports
	
	#OIP Controls
	path = Marionette.OIPControl( 'FilePath', Marionette.WidgetType.Text, '')
	path.SetDescription('Write Path or click the Button below')
	
	Int = Marionette.OIPControl( 'Pick File', Marionette.WidgetType.Button, 'script', 'description')
	Int.SetDescription('Shows Criteria dialog') 
	
	#Output Ports
	s_path = Marionette.PortOut('h')
	s_path.SetDescription('Return the path string for further operations')
#BEHAVIOR

def RunNode(self):
	
	#inputs
	path = self.Params.path.value
	#script
	

	#out
	self.Params.s_path.value = path
	
def script(self):
	import os
	dir  = os.path.dirname(vs.GetFPathName())
	bool, path = (vs.GetFileN('Select File', dir, ''))
	self.Params.path.SetValue(path)
	#if bool:
	#	self.Params.s_path.value = path
	#else:	
	self.Params.s_path.blocked = True

 

Diesen Beitrag teilen


Link zum Beitrag

Vielen Dank für die Hilfe. Der Button funktioiert nun so, wie er sollte.

 

Nun kommt noch das Layout des Dialogfensters. Ist es möglich, das i bei einem Alert (Inform) Dialog zu entfernen?


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag
vor 20 Stunden schrieb Manuel Roth:

Nun kommt noch das Layout des Dialogfensters. Ist es möglich, das i bei einem Alert (Inform) Dialog zu entfernen?

 

Diese Alert-Dialogen sind Standard-Dialogen, da kann man den Layout nicht ändern.


Software-Entwickler

extragroup GmbH

Diesen Beitrag teilen


Link zum Beitrag

Das denke ich mir.

 

Aufgrund der grossen Anzahl von Dialog Befehlen im DevelopperWiki (und den verschieden aussehenden Dialogfenstern im VW) denke ich mir aber auch, dass es möglich ist, eigene Dialoge zu basteln. Ich komme einfach nicht dahinter wie.

 

So wie ich es verstehe wird im Beispiel von @Dominique Corpataux auch gar kein benutzerdefinierter Dialog gezeigt, sondern "nur" mit GetFileN der Auswahldialog für Dateien angezeigt. Beim Beispiel von @Antonio Landsberger habe ich noch keine Chance es zu verstehen. Ich denke aber, dass dieses Beispiel sehr interessant wäre.


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag
vor 1 Stunde schrieb Manuel Roth:

Aufgrund der grossen Anzahl von Dialog Befehlen im DevelopperWiki (und den verschieden aussehenden Dialogfenstern im VW) denke ich mir aber auch, dass es möglich ist, eigene Dialoge zu basteln. Ich komme einfach nicht dahinter wie.

 

Es gibt eine Seite, die versucht zu erklären, wie man die benutzerdefinierten Dialogrn in VS nutzt: http://developer.vectorworks.net/index.php/VS:Creating_a_Custom_Dialog_Box


Software-Entwickler

extragroup GmbH

Diesen Beitrag teilen


Link zum Beitrag

Hallo zusammen

 

Dank euch habe ich nun einen Node, welcher einfache Dialoge anzeigt. Danke.

 

Einfacher Dialog.vwx

 

 

 

Doch kaum steht der Node kommt die nächste Frage. Ist es möglich, nur den Button ausserhalb des PIOs anzuzeigen und die Beschriftungsfelder nicht?  Wäre manchmal auch bei anderen Nodes praktisch.

 

Und wenn wir schon beim Thema sind. Ist es möglich eine Variable von einem Wrapper auserhalb eines PIOs (oder zweiten Warppers) darzustellen?


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Hallo zusammen

 

Ich habe eine weitere Frage zu einem Dialog. Dieses Mal soll er eine CheckBox anzeigen und den Wert dieser CheckBox ausgeben.

 

Die Anzeige in einem Dialog funktioiert. Allerdings bringe ich es nicht hin, dass das sie auch etwas anderes als True ausgibt. Kann mir da jemand helfen?

 

Boolean Dialog.vwx


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Vielen, vielen Dank

 


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Hallo zusammen

 

Ist es möglich, ein Dialog, welcher fest in VW verbaut ist, anzuzeigen?

 

In meinem Fall, möchte ich das Dialogfeld unter Text>Textformatierung anzeigen. Ich dachte (in diesem Spezialfall), könnte vs.FormatTextDialog() dieses Dialogfeld anzeigen, allerdings passiert bei mir nicht.

 

 

Und weil das noch nicht genug ist, noch eine zweite Frage. Wie ist es möglich, GroupBoxes eine feste Breite zuzuweisen?

Als Beispiel könnte wieder der Dialog oben hinhalten. Dort haben die Gruppen rechts eine grössere Breite, als das breiteste Inhaltselement. Wie ist das möglich? Hängt das mit dem ResizableLayout zusammen?

 


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag
Geschrieben (bearbeitet)

Hallo Manuel,

 

dein Gedanke war schon richtig und du hast es wahrscheinlich auch richtig eingesetzt. Meine Versuche, diesen Dialog in einer Marionette Node zum Laufen zu bringen waren auch nicht erfolgreich. Als VectorScript funktioniert es - laut einem der Entwickler.

 

Ich werde dich auf dem Laufenden halten.

bearbeitet von Antonio Landsberger

Gruß


Antonio Landsberger

ComputerWorks GmbH

httpw://www.computerworks.de

Diesen Beitrag teilen


Link zum Beitrag

@Manuel Roth

 

Es war kein Fehler mit dem Befehl. Im Wiki war das Beispiel nicht komplett.

Der Befehl muss in Marionette folgendermaßen geschrieben werden:

vs.FormatTextDialog(font, style, size, spacing, leading, hAlign, vAlign, disable)

Angehängt ist eine funktionierende Datei.

 

FormatTextDialog-ALandsberger.vwx


Gruß


Antonio Landsberger

ComputerWorks GmbH

httpw://www.computerworks.de

Diesen Beitrag teilen


Link zum Beitrag

Vielen Dank, ohne dich wäre ich nun wohl für eine Zeit lang am Textformatierungsdialoge programmieren.

 

Das grössere Fragezeichen ist geklärt.

Nun wäre noch der zweite Teil der Frage. Ist das möglich, oder übersehe ich etwas?

 

Am 8.7.2019 um 09:45 schrieb Manuel Roth:

Wie ist es möglich, GroupBoxes eine feste Breite zuzuweisen?

Als Beispiel könnte wieder der Dialog oben hinhalten. Dort haben die Gruppen rechts eine grössere Breite, als das breiteste Inhaltselement. Wie ist das möglich? Hängt das mit dem ResizableLayout zusammen?

 

 

PS: Scheint auch in einem nicht ResizableLayout zu funktionieren. Siehe Extras>Aufräumen...


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Kleines PS zur dieser Funktion. Man kann sie kaputtprobieren 😊 (zumindest, wenn ein Button in einem Dialogfeld sie aufrufen soll) Ein Neustart von VW hilft dagegen.


Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2019 SP4 | Architektur | Windows 10

Diesen Beitrag teilen


Link zum Beitrag

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

  • Forenstatistik

    • Themen insgesamt
      11.731
    • Beiträge insgesamt
      53.736
×
×
  • Neu erstellen...