Jump to content


Vectorworks, Inc Employee
  • Posts

  • Joined

  • Last visited

Posts posted by sbarrett

  1. Hello - I checked this file out and the issue seems to come from the offset poly. you have two different operations performed on this single object - planar boolean and extrude. Because of this the definition will react differently within a wrapper. A wrapper changes the hierarchy of operations within a definition - it can't hold off performing operations til the end of a definition. For example, using the delete node within a wrapper can cause a problem - its best to create an output for the object to be deleted and attach the delete node outside of the wrapper.

    For this definition, if you make a copy of the offset poly and use one for the boolean and one for the extrude you should be fine.

    Let me know if that works!


  2. As Jim said you can use the attributes node - that is the simplest way to do it - but if you want to use the Set Fill node, the input for the back color must be three values [r, g, b]. The easiest way to do this is to use a Point3D node from the points section and give the x- y- and z-coordinate a value between 0 and 65535.

    This node is a little tricky and should have a better description.

  3. The If node is a little tricky in this way - it does not negate the true or false input, it only filters the information. For this: "I have a test if A>=B then true, Draw circle, else (False) draw square." For it to work, it would have to draw the square or circle AFTER the if node. If you send a circle into the false input and a square into the true input, it still draws them because they are part of the definition prior to the If node.

    The way you could do this is if you connected the delete node to the output of the if, that way it would delete whichever object you choose.

    The best way to use the If node is if you have two values that you want to choose from, not two objects. that was you could send one of two radii to a circle depending on the test - the other value still exists in the definition, but it is just not used to create anything.

    I hope that explains it!

  4. We don't have a dropdown menu for classes yet, but we do for layers. There is a set class node in the attributes category (instead of the classes category) - I think this location is debatable. If you combine it with a class list node and an integer node, you can input the index of the class. Its not ideal but it is a stop gap.

  5. Hello all - if there are specific nodes that people are having trouble using or certain types of definitions people are looking to make, we could use suggestions for the next tutorial. Topics could be, for example: 3D/Solid geometry, referencing and searching documents, an in-depth look at the Data Flow nodes, etc. Feel free to let us know what you want more of!

  6. Alan, some nodes end up in Layer plane and some end up in Screen plane. If you are trying to create 2D objects I would suggest either the Set PrefID to Ground node that Jim mentioned, or just run your definitions in Top/Plan view. If you want to still see you definition in 3D I would also recommend selecting all the nodes in the definition and making sure they are all in the same Plane Mode.

  7. The string nodes are where you input the different layer names you want to use. If you look at the OIP for the Layer List wrapper, you can see where to change the layer names. The series node creates a list of numbers based on the number of layer names you input. If you want 4 layer names, the series node will create a list of the first 4 index numbers that will call the first for layer names from your list: 0,1,2,3.

    If you wanted to pull specific names instead, you would skip the series node and just input the index numbers you wanted to call.

  8. Tim - I would start with one of the aspect of the wall - a definition can get complex and overwhelming very quickly - but if you break down the problem into smaller projects you can combine them later. With the wall for example, don't try to build a parametric brick wall, try creating a series of locus points in 3D. Then try distributing rectangles along a line, etc. If you think of a project in much smaller, simpler steps it will be easier to build in Marionette. Also, those individual parts can be used over again in different definitions.

  9. Yes I definitely think it would be possible, although you would go about it differently in Marionette than you would in Grasshopper. In Marionette, I would suggest you create the bricks first and distribute them (Move) to points along a sine wave line at each brick z level. You might need to do a little clever maneuvering to get the tangent vectors for each point (because there isn't a tangent node that I am aware of), but once you do, all you need is to translate those vectors into a rotation and use the rotation node along with the move node.

    There are several nodes that work similarly to Grasshopper's Dispatch component, and they are in the Data Flow menu. For example, Filter, If, and Unzip are all nodes that parse lists.

    I hope that helps - If you get stuck, I will be happy to offer suggestions!

  10. Control geometry is definitely great when creating marionette objects, but if your goal is not necessarily to create an object but a system, the name node works well too. Named geometry can also be tucked away within a wrapper. All you need to do is give the Name Node a name and wrap it. Then double click to edit the script and paste the named geometry inside. That way your geometry isn't visible but still always available. You can edit the geometry any way you like from inside the Name wrapper.

    To name an object, go to the data tab in the OIP and type in the name at the top.

  11. Here is the node with the proper output - it gives the memory location of the object instead of the handle type, but it works properly if you try to parse it or manipulate it later.

    The vs.Marionette_DisposeObj() is code I snagged from another node - this entire node is a Frankenstein of other node parts - it is one of the earlier ones I made. It may not be pretty, but it works!

  12. Hi guys, we are happy to take suggestions on new nodes. We definitely have more in the pipeline. When I started using Marionette I was very well versed in Grasshopper but not necessarily in coding. I have really liked being able to access the code behind the node and I have been experimenting with some of my own nodes. I have attached a file with some of the nodes I have created so far. Granted I am still an amateur at coding but this file does include some array nodes. If you have any suggestions on how to improve these nodes it would be greatly appreciated!

  13. Hello Kevin and Michael, the best way to move an object is to use the Move Node in the Operations category. for the offset input, you can use a "point2" node, "point3" node, "vector2" node or "vector3" node. all of these are in the Input category. You can also use "Point3D" or "Point2D" from the Points category. For each of these nodes, you can set the x- y- and z- values the DISTANCE you want to move the object in each of the three directions. It works just like the move command in VW.

    The Rotate node works in a similar way. You can use any of the 3D point or vector nodes as your input, and if you want to rotate an object within the xy plane (as you would a 2D object in plan view) you make the z value of your 3D point node the angle that you want to rotate the object by. Each x- y- and z-value represents the axis around which you will rotate the object.

    I hope that answers your questions!


  • Create New...