So, some more information, i still get stucked
I would like to have a parametric marionette object with input fields and control-points. a control point should only set one parameter and should be placed depending on other parameters. so i tried to change some codes with kind of succes, but now i got three problems:
1. the with/"Breite" (X) parameter ist not visible in the oip
2. every other input field like "dim" node is resetting after moving an control point
3. i would like tho have NO OIP-Control about the not-used control point (CP_1dim_20-04-23.vwxy in the #OIP Controls in my example) but were not succesfull, is there any possibility to do?
#Created January 2018
#Updated August 2018
@Marionette.NodeDefinition
class Params(metaclass = Marionette.OrderedClass):
#APPEARANCE
#Name
this = Marionette.Node('Control Point 2D')
this.SetDescription('Creates a 2D reshape handle when used in a Marionette Object. Initial values are defined in the Object Info Palette.')
#Input Ports
fy = Marionette.PortIn(0.0)
#OIP Controls
x = Marionette.OIPControl( 'X', Marionette.WidgetType.RealCoord, 0.0)
x.SetDescription('A value representing the distance from the origin along the x axis')
y = Marionette.OIPControl( ' ', Marionette.WidgetType.Separator, '')
#y.SetDescription('A value representing the distance from the origin along the y axis')
#Output Ports
pt = Marionette.PortOut('p')
pt.SetDescription('A Control 2D point on the xy plane')
#BEHAVIOR
def RunNode(self):
#inputs
x = self.Params.x.value
#y = self.Params.y.value
#y = 50.0
y = self.Params.fy.value
appMajor, appMinor, appMaint, platform = vs.GetVersion()
units = vs.GetPrefReal(150)
#script
pioHandle = vs.Handle(Marionette.parametric_handle)
if pioHandle != vs.Handle(0):
if appMajor >=24:
Marionette.CreateControlPointCoord(self.Handle, x, y)
x = x/units
y = y/units
else:
x = x/units
y = y/units
else:
x = x/units
y = y/units
#outputs
self.Params.pt.value = (x, y)