Jump to content

DomC

Member
  • Posts

    605
  • Joined

  • Last visited

Files posted by DomC

  1. Point Rectangle

    This node creates optional a rectangle and returns the corner points of that rectangle.
    Often there is a need of a rectangle and the corner points. If the rectangle is rotated, it can be a cramp to calculate the corner points. I hope this node can help to simplify marionette workflows.

    44 downloads

       (0 reviews)

    0 comments

    Submitted

  2. Polygon Survey

    A Node which creates Measure Lines in Polygons (Line from every vetex point to every other vertex point).
     
    1. p2p Lines:
      
     

     
     
     
    2. Perpentidular Lines (Perpentidular Line from every poly vertex on every poly edge):

     

     
     
    To sort out needless lines, there are several filters integrated:
    1. Double Lines automatically filtered with an epsilon (p2p is not the same as perpenticular if you look all 15 digits)
    2. Measure Lines, which are identical with poly edges
    3. Measure Lines, which are outside of the polygon
    4. Overlapping lines. If two lines are parallel and both points of the smaller lines are on the bigger line, the bigger line is filtered
     
    5. Filter Lines over and lower than min max values 
     
    6. An Option, to return a number of length (Return first x values). As example if there are measure lines with the length (1.2, 1.2, 1.25, 1.5,) and the value is 1, two lines with 1.2 will be returned. This value is holding on perpendicular and p2p lines. 
     
    Summary:
    Turn off Debug options like "Show Edge", "show Outside Poly", Filter small length (niches) and set "Return first x values" on 1 or 2 to get optimal results. So a normal result will look like this:
     

     
    Attached there are three examples. An Example with spaces, An examples just with polys and an example as PlugIn. PlugIn is good for playing with the options to see changes prompt.
     
     
     
     
     
     

    73 downloads

       (0 reviews)

    0 comments

    Updated

  3. Record Popups

    Generally:
    In everyday life job is very often reading and writing record fields of user record formats
    and PlugIn objects.
     
    Situation Now:
    1. Marionette users have to know the record name and need a lot of knowledge to get the universal name of PIOs
    2. Marionette users needs to manually find and transfer the field names into string nodes and also have to know a
    workflow to find the universal field names of PlugIns.
    3. copy/paste of the names or writing the values is stressful and often results in type errors.
     
    What does this Nodes improve:
    1. Quick access to record formats, PIO records and field names
    2. See the localized and universal names (if exists) of the fields, returns universal names to the script automatically
    3. Can also be used in combination with "print debug" to show names for editing existing networks without using directly
    the node
    Record Popup.mp4

    64 downloads

       (0 reviews)

    0 comments

    Updated

  4. Rectangle Line Pattern

    A Rectangle Line Pattern with a random option.
     
    Also the files show, hot how to project on a NURBS Surface. This 3D Projection contains two additional custom nodes.
     
    1. GetZatXY (Also used in many other examples on the community board)
    2. GetZamong Pt. Not so easy to understand. This nodes calculates the z value of a 2D Point between two 3D Points without trigonometry (faster). 
     
    Movie Link (2nd Part of Movie)
    https://youtu.be/GcFwW-k5Lms?list=PL8s_WkTvFQ2YdFlMfU7Teuh5QrmsO03gW
     

    59 downloads

       (0 reviews)

    0 comments

    Updated

  5. Rectangle Packing

    The heart of this Marionette example is the RectPack node. A node with over 2600 lines of code! 
    It supports dozens of packing algorithm to pack rectangles on another rectangular area in a space and time-saving way. 
    The right combination of packing and bin algo gives the ability to pack rectangles in a way you want to have them on your machines (as close as possible, always cut complete board, less cuts etc.)
     
    Actually not even myself know, which packing algo ist right for which use case. 
    Also for professional use case, usually there is a machine dedicated software, which packs the port in a way which match best for the machine. 
    So I see the main use case to pack parts on a board for milling them on a cnc-machine as example for model-making. Workflows which uses a guillotine-workflow (always cut the whole board) often have special requirements which maybe could be reached with the choice of packing algorithm or maybe can not. 
     
    The Marionette Example based on foundational work:
    http://www.secnot.com/   Python code for packing algorithm
    Jukka Jylang - A Thousand Ways to Pack the Bin - A Practical Approach to Two-Dimensional Rectangle Bin Packing (2010)
    Huang, E. Korf - Optimal Rectangle Packing: An Absolute Placement Approach (2013)
     
    General Features:
    - Input of basic data like length and width
    - Input of additional data
    - object input (node detects if part input are objects and process them like rectangles)
    - sort by material
    - use a list of stock materials
    ....
     
    Not all input combinations works at the moment. Recommended to use the existing examples to get correct input values.

    German Movie
    https://youtu.be/yyZGvazL7Ik
     

    950 downloads

       (1 review)

    40 comments

    Updated

  6. Reset Object

    Some Objects needs to be Updated after Changing the Object Properties. In this cases this node can help you.
    Reset Object.vwx

    25 downloads

       (0 reviews)

    0 comments

    Updated

  7. Reshape Node 2D

    https://youtu.be/vuCvK4OwN80 German Movie
    https://youtu.be/Nm0te1zmpVY English Movie
     
    Structure of the Input:
     
    1. Group with Geometry group (send to back) and Reshape Zone definition (send to front). Best practice is to use a blue smbol without screen plane objects
    2. Reshape Zone group has further groups. Every reshape zones (polygons) is grouped with a dimension object. The dimension is the link to the script. The parameter name is a prefix of the dimension text
    3. Use one of the existing examples to understand the system
     
    Limitations:
     
    1. Supportes not 3D, Chain Dimension, path objects, rectangles. Container objects are not reshaped but moved (like the reshape tool)
    2. user origin has to be set to vectorworks origin
    3. not mix of screen-plane and layer plane. Use all layer-plane
    4.  ...
     
     
     

     

    251 downloads

       (0 reviews)

    6 comments

    Updated

  8. Set Parent

    This Node puts objects in a parent Object (symbol, group, etc.)
     
    Inputs:
    1. Handle to Object which put into a container
    2. Handle Input to Parent Object (use "get Object" node to use a named container here like a symbol definition)
    3. Object Info Option "Reset". Reset Bounding Box and other attributes of the parent object
     
    Set Parent.vwx

    37 downloads

       (0 reviews)

    0 comments

    Updated

  9. Shuffle Numbers Example

    An Input of 4 different numbers. Out of that 4 values there are 40 shuffled numbers of the same values. Next value never is the same like preview value.
    This Example uses a custom "shuffle-node" (randomize input list with the option, no next value must be the same like preview value) and the "saldo-node" (returns a sum after every new value).
     

    24 downloads

       (0 reviews)

    0 comments

    Updated

  10. Some Point Nodes

    Hello
     
    I putted some of my geometry-math-point nodes (resource-browser-ready) together on a single file. I started to clean up all my marionette stuff, so I think here is a more secure place to store, as on my desktop :-)

    103 downloads

       (0 reviews)

    0 comments

    Updated

  11. Spaces with objects

    This node sorts out all spaces which have a collision with one of the input objects. Can be used to detect, if a space contains a specific object.
    For collision points, the space polygon and the object's bounding box is used. There is a OIP dim parameter for tolerance value.
     
    The vwx contains a quick and dirty test floor plan, nothing real 🙂

    74 downloads

       (0 reviews)

    0 comments

    Updated

  12. SpacesfromList.vwx

    This Marionette Script creates multiple space objects from worksheet data.
    A very nice and time saving Marionette script to automate a routine peace of work.
     
    Please consider, that the the script takes the area column and calculate the square with that. If you have a language settings with comma instead of points for decimal seperator, the calculation will fail. Use points as decimal character or eliminate decimal places in your list
     
     
     

    846 downloads

       (2 reviews)

    30 comments

    Updated

  13. Standard Rooms

    This Script it made for users which have an Vectorworks Architecture but have not the core business to draw walls, slabs and roofs to make a presentation ambient for their designs. It helps to create room situations very fast and especially very easy. 

    1. Concept
    It pulls Symbols out of a Symbol folder which are Room-Presets. As Presets Rooms can exist, that have a rectangular shape and inner dimension of exact 2 meters. Slabs are supported also (No extrudes etc.) and roofs. Best Practice maybe is to keep existing presets and just change classes as example. If we are working with presets we can "save" a lot of parameters in the Object-Info-Palette which makes it faster and easier to use.

    2. Workflow
    Copy Symbolfolder and PlugIn in your project and you can use it immediately. If you want to change details you can ungroup (cmd/ctrl. U) the objects into Walls and slabs. So you are able to insert Windows, Doors or changing other Details.

    3. Known Limitations/Details
    - Rectangular Room presets only
    - Switch on/off ceiling with classes
    - Texturize by classes
    - Changing classes by editing preset Symbols and attach other classes/attributes
    - You can Mirror the Room to get left/right rooms


     

    76 downloads

       (0 reviews)

    1 comment

    Submitted

  14. Suction Effects

    An Example which shows, how to collect objects on one or more circular area(s) and modify them. It could be use for gravity or suction effects.
     
     

    125 downloads

       (0 reviews)

    0 comments

    Submitted

  15. Symbol Link Text

    If you have many symbol definitions and have to link text to record fields. This Marionette can help you.

    57 downloads

       (1 review)

    0 comments

    Updated

  16. Symbols in Rows

    Places a Marionette object, which contains symbols from a specific symbol folder. Offset and rows, can be defined. Handy for a quick and printable preview of symbols in a specific folder.

    443 downloads

       (3 reviews)

    0 comments

    Updated

  17. Truss with parametric length

    This Example shows, hot to have a any (complex as you want) geometry with a parametric length (available by the yards). 
    The Geometry was not modeled and parameterized in the script. But this is the advantage which this example shows. So take every geometry (import files etc) and just "cut" the length you need. Thats how this script works. It cuts away from a maximal part length (input as symbol) to the length you need.
     
    You can make an own symbol and rename the symbol input of the script. The Symbol cross-section now is limited to one meter. You can edit the script and increase this if necessary.
     
    Or look at this, with this method, you can model frame and installation plate in your script. The "fill" you can make with the method of this example script. 
     

     
     

    140 downloads

       (0 reviews)

    0 comments

    Updated

  18. Vectorworks to SVGnest direct connection

    This Marionette can be interesting for Laser and cutting jobs. But Mainly it is Study how to use the Vectorworks Web-Dialog to access a Web-Application. The Date is send and reveived over (REST) API. The Exchanged Data is an SVG which is parsed over JSON Formats. Used Engine for Nesting is www.svgnest.com

    for rectangular shapes, use this one:
     
    This Marionette Network is sending all shapes on a layer (or by custom criteria)
    to a Web-App which contains a SVGnest installation and a custom API for Vectorworks
     
    1. Draw a BIN on which you want to NEST the other shapes. Place it topleft of the BIN on your Origin
     
    2. Tested with Layer Scale 1:50, 1:20 mm and BINs of ca. 1-2 meters. It works with all
    Units, sizes and scales but the very first Preview may be very small, cropped or too big.
     
    3. No Holes in polys are supported directly (you can have but nothing would be placed inside)
    But if you draw a smaller shape inside another it is taken as a hole.
     
    4. If ready run the Marionette (You will have to cancel by not saving the result or cancel in
    the dialog after the nesting process)
     
    5. If you have multiple CPU cores it will go much faster. It uses one worker for every core.
     
    6. Click on your BIN, choose the settings button (twice).
    If you define an offset between the parts reduce the curve-tolerance smaller than one. 0.5
    as Example or lower if you see any issues.
     
    7. Press START and wait till parts are placed on the BIN. The Process will calculate infinite and
    try to optimize the result till you click STOP.
     
    8. Press SAVE, wait a sec and then just exit the VW WebBrowser by close or press the Button
    Bottom right to close.
     
    9. Choose Option to move your original shapes on the BIN(s) or a copy
     
    Known Limitations:
    - Some shapes are not converted correctly to SVG maybe. Which is not a big accident because the Application do not import some geometry it keep the original geometry.
    - Complex geometry could take (too) long to nest.
     
    - I take took no control on the nesting process which is processes the NESTING the process
    is powered by https://svgnest.com
     
    Notes:
    You can also use an alternative way:
    1. Export DXF to inkscape and export SVG
    2. Or directly export SVG by https://forum.vectorworks.net/index.php?/topic/78280-export-to-svg-menu-command/
    (The exported SVG from the Marionette is not directly accessable and also the quality and compatibility is just fitted to that one usecase so quality of the Marionette SVG is maybe low compared to the above professional Export-PlugIn)
    3. Import it to SVGnest.com or use their new project DeepNest

    As I mentioned. Primary a study how connect to an even bigger world out from a Marionette. BTW such a connection can be a task nearly as big as the nesting-part itself.

    52 downloads

       (0 reviews)

    0 comments

    Updated

  19. Voronoi Familiar Colorful Cubes

    This Marionette network uses a custom node, which implemented the pixel-based try and error code (I think there is no other way to create voronoi, is it?) from here https://en.wikipedia.org/wiki/Rosetta_Code
     
    Instead of Pixels it uses rectangles which were extruded in random height (ground height is different in every voronoi cell). And different full spectrum random colours (which would look much better with adapted colour design).
     
    Carefull playing around with values. Do not enter to high or to low values. Creating 843'135'013 extrudes, could take a while :-)

    128 downloads

       (0 reviews)

    0 comments

    Updated

  20. Wall Component Volumes for Custom pSet

    If NetVolume of Wall components has to be written in a custom pSet (if this is a special requirement), this Network maybe provide a solution.

    Note:
    If you export Base Quantities, you get component volumes exported. Which is the normal-case to export the component quantities.

    What does the Script(s) do:
    1. The first Script creates record fields for every component Name exists in the Document (Walls have to be in the drawing, not just as a style).
    2. The Second Script gets Wall component NetVolumes and writes it in the Record attached to the Wall for every component Name.
    3. So you are able to use the Data-Manager to attach this component informations  to the Wall Body and be able to export is as a Custom pSet to ifc (if this is a requirement in a specific project)

     

    145 downloads

       (0 reviews)

    0 comments

    Submitted

  21. Wonderful Marionette Door

    More and more projects with a high level of individual control or a high level of geometry detail were created in 3D. The leading modelling and scripting capabilities keeps Vectorworks the best choice for BIM models. We have the best tool to make more than just the standard. 

    This Example shows how to parameterize a "hand design" Geometry of a beautiful Door.
     

    278 downloads

       (1 review)

    0 comments

    Updated

  22. Worksheet based Popup, push Button

    Generally:
    Popups significantly raises usability of Marionette Scripts. Also for advanced marionette scripters often it is hard to search and enter the values.
     
    Situation Now:
    1. The Popup values has to be written in an input node or the params class of the node, which do just execute if node is edited.
    2. Popups are not dynamically unless the values are calculated by the script  and then the Popup will popup every time the script is running.
     
    What does that Node improve:
    1. The popup values can be directly pulled from a worksheet.
    2. The provided node filters one popup with another popup, which is very efficient for fast filtering and combine choices
     

    Worksheet Popup.mp4

    87 downloads

       (1 review)

    0 comments

    Updated

×
×
  • Create New...