Nico Vindevogel Posted October 5, 2017 Share Posted October 5, 2017 Hi, I want to store a value inside a parameter. I don't want to create a portIn to define a parameter, or use the OIPControl method. Is there an other way to store an calculated value inside my node? I think this must be easy, but i can not find the appropriate syntax. This is what i don't want to use: Fx_Value = Marionette.OIPControl( 'Dim', Marionette.WidgetType.RealCoord, 0.0) OR Fx_Value = Marionette.PortIn('0','Calculated value') Can i for example do something like this to store a value. Fx_Value = (),Realcoord,0.0 Below you can find my code to check 2 input ports. At the moment i store the result in a parameter defined by a Marionette.PortIn. My network is running but the node looks ugly. Lots of unused input ports, Or OIPControls whithout a destination. Example: #___Begin___Controle Boolean self.Params.Fx_Value.value = self.Params.Slag_Of_Groef.value > 0 if self.Params.Fx_Value.value: self.Params.breedte_Rug.value = Waarde_Slag_Of_Groef + Corpus_Breedte - Dikte_Zijde_L - Dikte_Zijde_R + Waarde_Slag_Of_Groef else: self.Params.breedte_Rug.value = Corpus_Breedte - Dikte_Zijde_L - Dikte_Zijde_R #___Einde___Controle Can someone point me in the right direction? Pic off unused oipcontrols: Quote Link to comment
DomC Posted October 7, 2017 Share Posted October 7, 2017 (edited) Hi Don't know if I completely unterstand the question because I can't really follow your request. You don't need to store a value in the Params class, if you don't want to use it for data-flow. If you just need the variable inside the node, you could create the variable in the RunNode() method. "self.Params.variable_name.value" you just need to get variables out of the Params class. Params class is for input ports and input fields. If you don't need ports and fields, don't use the Params class. Just write Fx_Value = 500; Waarde_Slag_Of_Groef = 400; Corpus_Breedte = 600 and so on in top of your RundNode()'s code. Example create value in RunNode(): @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): this = Marionette.Node( 'aNode' ) def RunNode(self): Fx_Value = 500 vs.Message(str(Fx_Value)) #or this ? Waarde_Slag_Of_Groef = 20 Corpus_Breedte = 600 Dikte_Zijde_L = 19 Dikte_Zijde_R = 19 Waarde_Slag_Of_Groef = 2 breedte_Rug = Waarde_Slag_Of_Groef + Corpus_Breedte - Dikte_Zijde_L - Dikte_Zijde_R + Waarde_Slag_Of_Groef #or in one line Waarde_Slag_Of_Groef = 20; Corpus_Breedte = 600; Dikte_Zijde_L = 19; Dikte_Zijde_R = 19; Waarde_Slag_Of_Groef = 2 Or if you exactly want to store your value in Params class, without having any input field or knots, you could maybe make something like this. @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): this = Marionette.Node( 'aNode' ) Marionette.variable_name = 500 def RunNode(self): Fx_Value = Marionette.variable_name vs.Message(str(Fx_Value)) This code maybe is dangerous, because If you use the same "variable_name" in another node this could overwrite your variable_name. Don't know if this could be an issue, probably not. Edited October 7, 2017 by DomC Quote Link to comment
Nico Vindevogel Posted October 8, 2017 Author Share Posted October 8, 2017 Hi DomC Yesterday i found a part of the solution: ->I want to store calculated values in the Fx_Value -It is typed in txt don't run it @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): this = Marionette.Node( 'aNode' ) Fx_Value = (0.0) #__Old__Unused port in#Fx_Value = Marionette.OIPControl( 'Dim', Marionette.WidgetType.RealCoord, 0.0) Corpus_Breedte = Marionette.PortIn('0','Breedte') Dikte_Zijde_L = Marionette.PortIn('0','Dikte_Zijde_L') Dikte_Zijde_R = Marionette.PortIn('0','Dikte_Zijde_R') Waarde_Slag_Of_Groef = 2 def RunNode(self): Fx_Value = Corpus_Breedte - Dikte_Zijde_L - Dikte_Zijde_R + Waarde_Slag_Of_Groef self.Params.port1_out.value = Fx_Value + 20 +20 self.Params.port2_out.value = Fx_Value + Fx_Value2 The solution for boolean value i didn't find: Maybe i have to try something like below... @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): this = Marionette.Node( 'aNode' ) Marionette.variable_name = False ###Not working #### variable_name = False def RunNode(self): Fx_Value = Marionette.variable_name vs.Message(str(Fx_Value)) Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.