Zum Inhalt springen

Marionette, individueller Popup - Node mit Pulldown-Menüs und Realwertabfrage


Chritian W.

Empfohlene Beiträge

Nur damit ich es richtig verstehe. Du möchtest anstelle vom Pulldown eine Zahleneingabe verwenden?
 

Eventuell hilft dir diese Seite hier schon weiter. Ansonsten wäre eine Datei mit dem Node noch schön, da ich nicht den ganzen Dialog neu schreiben möchte. (Dialoge sind sowas von ... darfst es dir selbst aussuchen. ?)

 

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar

Versuche es einmal mit

vs.CreateEditReal(dialog, 14, 4, 20, width)

Die 20 ist der Vorgabewert.

Die 4 bezeichnet den Typ. (1 - Real, 2 - Winkel, 3 - Länge, 4 - X-Koordinate, 5 - Y-Koordinate)

 

 

  • Like 2

Freundliche Grüsse

 

Manuel Roth

_________________________________________________
Vectorworks 2022 SP3 | Architektur | Windows 10

Link zu diesem Kommentar
Am 19.4.2021 um 13:58 schrieb Manuel Roth:

Versuche es einmal mit


vs.CreateEditReal(dialog, 14, 4, 20, width)

Die 20 ist der Vorgabewert.

Die 4 bezeichnet den Typ. (1 - Real, 2 - Winkel, 3 - Länge, 4 - X-Koordinate, 5 - Y-Koordinate)

 

 

Noch mal eine Rückfrage: Ich habe jetzt festgestellt, dass ich zwar die eingegebene Zahl ausgegeben bekomme, jedoch leider im Textformat. Ich vermute es liegt an der im Anhang markierten Zeile, was muss da rein??

6AEA88D2-1455-47AC-8872-C92AC2CC8F59.jpeg

Link zu diesem Kommentar

Nur nochmal zur Info: nutzen kann ich den Multidialog  schon, wenn ich einfach den ausgegebenen Textwert wieder in eine Zahl umwandle aber um Platz zu sparen wäre es schön gewesen, wenn auch ein Zahlenwert ausgegeben wird.

Trotzdem Danke für die Tips. Wenn noch jemand einen Hinweis hat, wie man diesen Sachverhalt abschließend lösen kann, dann bitte hier posten.

im Anhang noch einmal der aktuelle Stand vom Multi - Popup - Dialog

Multidialog.vwx

Link zu diesem Kommentar
  • 2 Monate später...

Hallo, ich habe die Lösung von DomC erhalten.

im Originalnode „Custom Pulldown“ muss der Teil ab def RunNode ersetzt werden. Wenn man die geänderten Teile dann in die eigenen einbaut. Funktioniert es auch dort.

entscheidend sind die Zeilen EnterDialog = 12255 Und in item == EnterDialog:

 

wenn dieser Part hier im Original eingesetzt wird funktioniert es:

def RunNode(self):
	#inputs
	DialogName = self.Params.sDialog.value[0]
	title1 = self.Params.sTitle1.value[0]
	title2 = self.Params.sTitle2.value[0]
	title3 = self.Params.sTitle3.value[0]
	
	pop1 = self.Params.lPopup1.value
	pop2 = self.Params.lPopup2.value
	pop3 = self.Params.lPopup3.value
	width = self.Params.iWidth.value[0]

	numPopups = 3
	EnterDialog = 12255
	#script

	def Dialog_Handler(item, data):

		self.v1 = vs.GetItemText( self.dialog, 11 )
		self.v2 = vs.GetItemText( self.dialog, 12 )
		self.v3 = vs.GetItemText( self.dialog, 13 )

		if item == EnterDialog:
			for i in range(len(pop1)):
				vs.AddChoice( self.dialog, 11, pop1[i], i+1 )
			
			for i in range(len(pop2)):
				vs.AddChoice( self.dialog, 12, pop2[i], i+len(pop1)+1 )

			for i in range(len(pop3)):
				vs.AddChoice( self.dialog, 13, pop3[i], i+len(pop2)+1 )	
		
		

	def CreateMyDialog():		
		self.dialog = vs.CreateLayout( DialogName, 0, 'OK', 'Abbrechen' )
		dialog = self.dialog
		
		vs.CreateStaticText(dialog, 1, 'title1', width)
		vs.CreateStaticText(dialog, 2, 'title2', width)
		vs.CreateStaticText(dialog, 3, 'title3', width)
		
	
									

		vs.CreatePullDownMenu( dialog, 11, width )
		vs.CreatePullDownMenu( dialog, 12, width )
		vs.CreatePullDownMenu( dialog, 13, width )

		vs.SetFirstLayoutItem( dialog, 1 )
		vs.SetBelowItem( dialog, 1, 11, 0, 0 )
		vs.SetBelowItem( dialog, 11, 2, 0, 0 )
		vs.SetBelowItem( dialog, 2, 12, 0, 0 )
		vs.SetBelowItem( dialog, 12, 3, 0, 0 )
		vs.SetBelowItem( dialog, 3, 13, 0, 0 )

		vs.RunLayoutDialog(dialog, Dialog_Handler )


	CreateMyDialog()

	#outputs
	self.Params.sPopup1.value = self.v1
	self.Params.sPopup2.value = self.v2
	self.Params.sPopup3.value = self.v3
Link zu diesem Kommentar
  • 2 Wochen später...
Am 21.4.2021 um 23:44 schrieb Manuel Roth:

Versuche einmal.


self.v4 = vs.GetEditReal(self.dialog, 14, 4)[1]

?

Nach dem ich das mit der Checkbox hinbekommen habe, dachte ich mir ich probiere hier noch einmal.

also die Codezeile muss ohne die Zahl hinter dem zweiten Komma eingetragen werden, dann funktioniert es.

also in der Form: self.v4 = vs.GetEditReal(self.dialog, 14)[1]

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,1Tsd
×
×
  • Neu erstellen...