Gregi 13 Posted March 10, 2020 Hello Forum one more time I would really love to have an Control Point-Handle for just one direction (X,Y or Z), the other dimensions as an input port. So in the end in the OIP theres only one field which i could use in the marionette-object as dynamic parameter. All my tries were unsuccessful. Quote Share this post Link to post
Gregi 13 Posted April 23, 2020 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) Quote Share this post Link to post
Gregi 13 Posted April 23, 2020 Or, another example to show what i would like to get. An invisible OIP widget for control points would be a good beginning. is something like this possible? Quote Share this post Link to post
Gregi 13 Posted November 17, 2020 Is there any function reference vor vs.Mrntte_ControlPoint(nodeHandle, coordX, coordY, coordZ, False) I realized, the second Var (here coordY) is always changing the second OIP-Control, doesn't matter which name is given in the inputs. In my test the second one is giving the Point i want to have, the blue handle is shown at y=100, doesn't matter, where i put the point. But in OIP it chances the Variable. If i delete "ydummy" in the #OIP Controls, every moving in Y-Axis is shown in the "Z" Value, and no moving in Z-Axis is possible. How could the function be Chanced? do you have an idea @sbarrett @DomC CP_1dim_2020-11-17.vwx 1 Quote Share this post Link to post