At the Vectorworks Design Summit (April 2015), they announced that Vectorworks 2016 would include a new visual scripting language. This new scripting language is called Marionette. This is what Wikipedia says about visual scripting languages in general:
In computing, a visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs (known as dataflow or diagrammatic programming) are based on the idea of “boxes and arrows”, where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.
Marionette is amazing the way that it allows you to create objects so quickly. Of course, you will have to learn a new skill (Marionette) but it is not as hard to learn as scripting. Marionette is capable of manking huge objects, but I think that for most of us, it is idea for creating a simple objects. In this example you can see a 3-Drawer cabinet and a 4-Drawer cabinet that have been made with Marionette. The first object that I made was the 3-Drawer cabinet. Once I got it working, I edited the Marionette object to add another drawer, creating the 4-Drawer cabinet. While the first object took a couple of hours to make, the second object took minutes. I think that this is going to be the big benefit of Marionette, the ability to edit an object to make a new version. Another way to look at this is this that I might make a 3-Drawer cabinet, but another user might borrow my object, edit the code to make a 2-Door cabinet.
Vectorworks 2016 includs a new visual scripting language called Marionette.
Marionette works by connecting nodes together with wires. The data flows from left to right, from one node to the next down the wire. Each node does something simple and then passes its output to the next node. To create a script, you drag and drop the nodes to create a series of steps, at the end of this you get the object that you want. It might look complex, but once it is set up you can look at different variations by editing any of the node inputs. Each node is a Python based script (allowing you to edit the script) and you can turn the marionette object into a plug-in object if you want.
Some other CAD programs have had this kind of visual scripting language available for several years, and the feedback from the users is that this is a very powerful way to create your designs. It might look complicated to use this technology, but it does mean that you don’t have to understand the programming language, you just have to understand what simple steps you want your objects to go through. You might say that it will allow complex programming for everybody.
It’s all about the Maths. When you are creating your Marionette networks, you have to remember that it is all about the maths. I’m not that good at maths, but if you want to create objects and move them, or create objects that follow a formula, you will have to practice your maths.
Webinar Tomorrow, Book Now!
When you are dealing with a node in Marionette you have to supply an input. The node then does something to the input and the result is the output. If this node is part of a network, then the output will be carried to the next node. So you could use Marionette to make a rectangle then extrude it. If you want Marionette to make a rectangle, then you have to give it the correct inputs. If you want that rectangle to be extruded, then that also needs the correct inputs.
We started the session by looking at some renderings that were recently done by one of the users. Then we looked at some of the new features in Vectorworks 2016, subdivision modelling and marionette.
The basic concept of marionette is the concept that it is a network of nodes which do something and wires which carry the information. Each node requires an input. The node then carries out some instruction, and then outputs the result.
Join us for a webinar on this: http://www.novedge.com/webinar/174