Jump to content

DomC

Member
  • Posts

    604
  • Joined

  • Last visited

Files posted by DomC

  1. 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
     

    938 downloads

       (1 review)

    37 comments

    Updated

  2. 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
     
     
     

    843 downloads

       (2 reviews)

    30 comments

    Updated

  3. Apartment Tag / Wohnungsstempel

    About this File
    This tool is available in english ("Apartment Tag") and german ("Wohnungsstempel"). The contents are nearly the same just translated.
     
    This Marionette Tool summarize all Space-Areas, which are part of the same Appartement Number and shows the result in a symbol based Marionette stamp. Alternatively we can pull out sum of apartment area with a worksheet. But this Marionette is also a nice method to do this.
     
    Instructions:
    1. The Marionette Objects access to the field "11_Room ID" of the space object. Every other field can be used if necessary by editing script.
    2. With the Marionette PIOs field "ApartmentID" you can tell the stamp, which apartment should be displayed
    3. With the Checkbox "Layer from Apartment Tag". You can make the Tag collecting spaces of the tag's layer. Otherwise it will collect areas from the layer of the layer popup
    4. You can exclude Spaces with specified keywords. Delimiter for Keywords is "$"
    5. To use the Marionette PIO on the Target Document, copy/paste the PIO and then import the Symbol definitions from the Folder "ApartmentStamps" on the Target Document.
     
     
    Über diese Datei
    Dieses Werkzeug ist auf Deutsch ("Wohnungsstempel") und auf Englisch ("Apartment Tag") verfügbar. Die Inhalte sind bis auf die übersetzten Bezeichnungen nahezu gleich.
     
    Der Marionette Wohnungsstempel fasst Wohnungsflächen zusammen und zeigt diese in einem Symbolbasierten Marionette-Stempel an. Raumflächen können auch mittels Tabellen ausgezogen werden. Der Wohungsstempel ist eine komfortable alternative.

    Anleitung:
    1. Räume welche zur gleichen Wohung gehören, werden mit dem Standardfeld "Raum ID" identifiziert. Auch andere Kriterien für die Wohungszugehörigkeit können festgelegt werden, dazu muss das Script geändert werden.
    2. Im Feld "WohnungsID" wird eingestellt, welche Wohung angezeigt werden soll.
    3.  Mit der Checkbox "Ebene von Wohungsstempel" lassen sich explizit die Räume auf die Ebene des Wohungsstempels eingrenzen. Ist die Checkbox deaktiviert, gilt die Einstellung "Räume von Ebene:" 
    4. Räume mit bestimmten Namen, können hier ausgeschlossen werden. Trennung der Namen erfolgt mit "$"
    5. Um den Wohnungsstempel auf einem anderen Projekt zu verwenden, zuerst das PlugIn mit copy/paste übertragen, dann die Symbolressourcen im Ordner "Wohnungsstempel" auf das Zieldokument importieren.
     
     
     

    674 downloads

       (2 reviews)

    27 comments

    Updated

  4. Automated Layout

    Hi
    This Examples shows, how to automatically create sheet layers and viewports from objects of the design layers. In this example, a sheet layer will be created for every exhibition place available on the design layer. It creates a 1:20 close-up from the specific exhibitor's place and an overview plan with a marker of the exhibitors place.
     
    This Network-Template could be used whenever you want to create automatically documentations out of your drawing. As Example:
    - Put a Viewport of every Space Object in your drawing on SheetLayers
    - Put Viewports from Building Elements close-ups (Windows, Doors etc.) on sheet layers
     
    Also this Network contains some very powerful custom nodes:
    1. Enhances BBox, Enhanced Rectangle, PutByRefPoint those are just to save time for calculating width, length and ref point of objects
    2. Function Two (like standard function node with two inputs), SetParent
    (1. and 2. Already available on this forum)
     
    3. CreateLayer
    4. CreateViewport
    5. VP Layer Visibility
    6. Add VP Ann (Annotations in Viewport) 
     
    7. Nodes for getting Marionette OIP Data which is not possible with "Get Record Field"
     
     
     

    235 downloads

       (0 reviews)

    18 comments

    Updated

  5. Basic Reshape SolidScale in x,y,z

    This Nodes breaks up and scale a 3D Solid Geometry and the result is similar like a 2D Geometry reshaped by the 2D Reshape Tool.
    The Input Geometry (Geometries) have to be grouped. You can input it from symbol or control geometry. 
     
    The Node is designed with some love to detail and make the job in many situation just right. It follows some rules:
    1. reference Point is left bottom back
    2. Overlapping geometries over the zero point to left, back or bottom are handled symmetric. You can use locus points to direct the correct symmetry.
    3. The nodes cut a geometry in 3 parts. the end parts are called "caps". The Node allows to scale the caps or the middle part (in most cases the right mode)
    4. It is necessary the input geometry is a group.
    5. Grouped Objects completely inside caps, will be moved as well
    6. Objects between the caps, will be moved half value
     
    This advantage of this node, is to allow an incredible fast production of a specific type of PlugIn Objects (Reshape in x, y, z direction Middle Part is scaled like Tables, Pillars, Handles etc.)
     
     Movies:
     
    Simple Example (Pillar):
    https://youtu.be/F6BIe8d0mTs
     
    More Complex Example(Window Element):
    https://youtu.be/pJ9R8UWyM7Y
     
    Further Examples:
    https://youtu.be/uRwDU-KTRjw
     
     
     

    810 downloads

       (0 reviews)

    10 comments

    Updated

  6. 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

  7. DomC - Operation Nodes

    PutByRefPoint(great, powerful), LinearArea(good), ConvertToGroup (very specific)

    130 downloads

       (0 reviews)

    5 comments

    Submitted

  8. Class Legend Attributes

    This Network ist not very flexible (world based values, just one row) but still useful.
    You can insert and and ungroup for individual layout etc.
     
    Note!
    1. First delete all classes and replace to "none" or "keine"
    2. copy the object on your file
    3. If you do not delete classes on the original, you will paste the classes from the example in your file

    99 downloads

       (0 reviews)

    4 comments

    Updated

  9. DomC Nodes

    Attached a vwx with nodes. Some of them already shared as separate files. Also the list is not complete, not perfect and has no warranty of being up to date. Also some nodes may be outdated, obsolet or buggy.
     
    Take note:
    1. I tried to track the nodes with an addition record format
    2. Marionette Nodes are linked to a record format, this record format contains descreption and Other infos from to the node. 
    3. Also this Record contains a rating of the node (internal rating for me) like is this node hard to make, will it be useful for many users or just for one special case etc.
    4. The Record can be linked manually to a node and then the node's Data can be written by a script. Ration Infos logically has to be attached manually
    5. On the document is a worksheet with all nodes listed
    The Info below is originally from the nodes (included original misspelling etc :-)
     
    Node Names
     
    Symbol3D     ObjOnSpace     SymbolPopupSymFolder     SetWallHole     IsMember_already     SortNestedList     CreateDictsV     Sort     RotatePtRoundPt     FibonacciSphere     Wrapper     C_Tangent_to_CC     PtPerpendicularOnLine     CircCircInters     CircleLineInters     LineLineIntersec     Pt to Circle Center     2CircleCenterLine     2Circle_4Pts     Apollonius PCC CCC v1     subPoints     addPoints     PtTangToCircle     Wrapper     Wrapper     Get Z atXY     Grow Radial     is cw     Wrapper     Wrapper     Wrapper     2D Pt Shaker v01     HexCircleGrid     GetPtVectors     GetPolar180     DialogFolder     ExportPDF     ImportSU     function4     GetNextObject     PageBased_mm     VersionInfo     Button     MeshFromPoints     collectObjectOnArea     Any     SetPage     BBox Overlap     GetString     GetString     GetNumber     GetInsideChar     Print     GetMultiRecValue     GetActFile     GetNumDatabaseRow     GetSubCell     GetMultiRecField     Backward     DupInContainer     Solid Intersect List     DupOnAcLayer     DupOnAcLayer     ConvertToGroup     Reset Obj     BasicSolidReshapeScale     NumToRow     ObjByClassAndLayer     Set Class      MinItem     If_     SpaceWithObj     LocusMS     GetPointClusters     ConcaveHull     Create Viewport     Add VP Ann     VP Layer     Set Mrntt OIP Field     Get Mrntt OIP Field     Insert Symbol in Folder     CreateLayer     FilterValues     PtArrayStartEnd     ValuesToSaldo     Vector to Angle     PointRectangle     Wrapper     Eval     Eval     AttachUnit     Color     Custom Pulldown     EnhRectangle     RoundedBoard     2D_BBox_Enhanced     TypeToString     TypePopup     TypeCounter     GetRes     Get Sym Name     Name2Index     Text in Lines     TextBlockInLines     SetDimTextSize     SetTextSize     ListToLabel     TextBlockInLines     RecToTable     OpenDocFolder     GetActFile     ListDir     FileInfo os_stat     DateTime     GetActFile     DialogFolder     PlayMP3     Wrapper     Linear Array xyz     PutByRefPt     SymbolinFolder     Link Text     GetDictValue     Repeat_List     shuffle     shuffle_dup_true     looser     itemsToList     Remove Duplicate Items     UnnestL     GetFiles     Imp ini     Imp txt     Solid Boolean     GetRNames     Concat     MergeList     Flatten List S     LinearDimLight     Change Sheet Title     Get Sheet Title     Get Layer Name     Get SheetL Size     Get Sheet Page N     Manipulate File UTF     Custom Pulldown    
     
    Node Descriptions
    Descreption Insert a Symbol     Returns a List of Objects for every Space     Creates a popup of all Symbols in a Folder. You have to edit Script to change Folder     Set the input Geometry as a Wall hole of an object     Returns isM, if the corresponding object is already in the list Example list1 = [5,10,3,5] list2 = [a,b,c,d] notM = [a,b,c] isM = [d]     Sorts the elements in a list     Creates a Dictionary from an input key and a input value     Sorts the elements in a list     Rotate a Point around the center point     This node creates points on a sphere surface     Draws a parallel line through a specific point     Finds the intersection of two circles     returns the section point from a point perpendicular on a line     Finds the intersection of two circles     Finds the intersection of a circle and a Line     Returns true if two infinite lines intersect, and if so, provides a point where they intersect. The intersection point can be outside of the line segments     Finds the two infinite intersections of a line from center to a point     Resurns the intersection of the Line trough the middle of the Circles     Calculates Two Circles. The First one passes pt0 and pt1 and the pt2,pt2_alt which has the lowes distance to pt3. The second circle pass the remaining point      Returns the tangential Circles which touch the 3 input circles     Subtract two Points: c = a - b     Add two Points: c = a - b     Finds the two tangent points from a point to a circle               Returns the Z elevation of a point X,Y on the specified object     Grow a radius Value of input Points, till they touch others or with a min offset     quecks, if point is part of a cw or ccw direction, needs minimum 3 pts 
     input 2D or 3D Points                    Deletes Randomly Values of Input List. If density is 100 nothing will be deleted     A Hexagonal Circle Stacking lattice     Get 2D and 3D Angles of Points related to one center point     Return the angle and distance to (0,0)     Open a Dialog Box to Choose a Folder     Set Origin and height, width of the page     File Names or Folder Names of the input Directory     Enter your Formula in Input Field     Put This in a Wrapper with another Object. This node Returns the next Object (Stacking Ordner) after this node     A Real value defined in the OIP in document units          An example of how to use the Button widget. When the button is pressed, it will run the script contained in the specified definition.     Draws mesh or output polys from a regular rectangular horizontal grid of points     collects objects, which middle point is on a circle, poly or recangle     Create any value using the python eval function     Set Origin and height, width of the page      Checks on ever obj1 input, if one or more object from input obj2 overlap bounding box      Returns the string between two characters Returns new, string position and length.                    Prints the incoming items into a text object or the python console. The option                           'Run scripts in developer Mode' must be enabled in Vector Works to see the console output.     Returns the Data from a Record field. If the Object input is a list values are concat.     Path of the Actual Document     Gets number of Databese Rows and columns in the referenced Worksheet     Gets the numeric or String value of the referenced cell subrow     Returns the Data from a Record field. If the Object input is a list values are concat.     send to Back     Duplicates Objects in a Container or active Layer     This node performs a boolean operation between lists of objects. The operation will be performed for each possible combination of objects in the lists supplied.     Adds an object to the current layer     Adds an object to the current layer     Convert Symbol or PIO to group     Update the specified object using the current settings and parameter values.     This node will Intersect a Solid in 3 Parts. Cap1, Cap2 and Space. Scale middle (space) or scale caps     Converts as Example 1 to A and 56 to BD.     Creates a Criteria by class and Layer     Assigns a class to the referenced object     Returns the smallest item in the list     If test is true, pass the value to true output otherwise to false output     Returns all Spaces which overlap or touch the bounding box of the objs input     Creates a 2D or a 3D locus object     Detects Clusters of Points     Finds the convex hull of points     Creates a Viewport     Add an Annotation to the Viewport     Add an Annotation to the Viewport     Sets the value of a OIP Field, It uses a search and replace function for the field Name. If you have more fealds with similar names which match the search name it returns error code. Use Reset node after all changes of the PIOs     Get a value from an Marionette Wrapper or PIO     Move Symbol in a Symbol Folder. If no symbol name is inputted or the Symbol do not exist, this node just creates the folder     Creates a Design or a Sheet Layer (OIP Pupup to change layer type)     Extract Values within a specific range     Creates Pt array between two points     [1,2,3,4,5,6] goes to [1,3,6,10,15,21     Converts a 2D or 3D vector to an angle in degrees     Output 4 corner points of a rectangle          Enter your Formula in Input Field     Enter your Formula in Input Field     change input values to right document units     gets the Fill Back color of the node and returns it     A Dialog with 3 Popups     Creates a rectangle with the provided specifications, supports point of reference     3D Quader mit Verrundeten Kanten oder Einfache geometrie     Returns the bounding box's coordinates of the projection of an object on the screen plane               "Type Counter" collects Objects from an input criteria. It count, how many objects from which type there in this criteria.     List of document resources from a specific type     Returns the name of the referenced Symbol. Returns "none" if the object has no name assigned.     Converts as example a name from a dimension standard or a text style to an index number     Creates Text Line by Line, from an Input List     Creates Text Line by Line, from an Input List          Sets the Text Size of a Text Obj     Get Input RowNames and Lines and Attach them to the input text blocks, which have the same name like the row name. Group text objects, which are no fields     Creates Text Line by Line, from an Input List     Returns the value of a data record field.     Open the input Folder in Finder or Windows Explorer. Combine with GetActFile Node to have parent folder of active Document     Path of the Actual Document     File Names or Folder Names of the input Directory     Returns the Value from the Python os stat function     OutputActualDateTime     Path of the Actual Document     Open a Dialog Box to Choose a Folder               Creates a duplicate array of objects in x y or z direction     Moves a Refered Point from a 2D,3D Object to a specified 3D Point 
     for planar obj works in 2D view     Creates a List of all Symbols in a Folder     Link a Text Field in a Symbol to a Record Field     Returns the value of the input dict key     Repeats the complete input n Times     Randomize the input list     Randomize the input list     Deletes Randomly Values of Input List. If density is 100 nothing will be deleted     Input [0]value1,[1]value2 ... output [value1,value2 ....]     Removes the duplicate items from the input list.     Separates a list into its constituent items     File Names or Folder Names of the input Directory     Import an ini file with sections, keys and values     Import a Tab or character separated Text-File     This node performs a boolean operation between lists of objects. The operation will be performed for each possible combination of objects in the lists supplied.     Returns the Record Names attached to the Input Object     Enter your Formula in Input Field     Adds an List to the end of a list     Flattens a list, or list of lists     Creates a linear dimension with standard specifications     Changes the Description value of a Sheet Layer     Returns the name of the referenced layer     Returns the name of the referenced layer     Returns the width and height of the sheet layer     Returns the Number of pages     Open a file at the specified path     A Dialog with 3 Popups    
     

    586 downloads

       (4 reviews)

    3 comments

    Submitted

  10. Module Importer for numpy scipy and pillow VW2020

    Importer Nodes for the most used external python packages.
    Tested with VW 2020 SP1, Mojave 10.14.6 and Windows 10

    131 downloads

       (0 reviews)

    3 comments

    Submitted

  11. Create Symbol

    "Create Symbol" creates a new symbol definition on the active document. Refresh resource manager if you create a new symbol with this node by just switch to another document and back in the resource manager.
     
    This node does not use "List absorb" so you can just insert one object into the symbol definition. Recommended to first create an empty symbol and then use "Set Parent" to attach several objects into the symbol.
     
     
    Create Symbol.vwx

    77 downloads

       (0 reviews)

    3 comments

    Submitted

  12. Get and Set Marionette OIP Parameter

    With this two nodes, we are able to set or get the parameter of an Marionette PIO or wrapper.
    Can be used to access the values in the OIP by script or another Marionette.
    The Screenshot shows an example in which every of those pillar is an own marionette PIO (Script as symbol to instance the PIO). 
     
    Note:
    It is not possible to write the parameters via Worksheet. Also it is not possible to read Marionette Object parameters directly into a worksheet. To read Marionette object parameters in a worksheet I recommend to write data into a record format and list those values in a worksheet.
     
     
     

    146 downloads

       (0 reviews)

    2 comments

    Updated

  13. Circular Marionette Stairs

    Three Examples of Marionette PIOs of Circular Stairs.
     

    766 downloads

       (0 reviews)

    2 comments

    Updated

  14. Circular Growing and Filling

    During my last Marionette-Project, I produced some simple geometry nodes. Which maybe can be useful to can make geometrical constructions instead of mathematical (trigonometry) calculations.
    The Nodes:
    "Perpendicular from Point to Line", "Parallel from Line through Point", "Circle-Circle Intersection", "Line-Circle Intersection", "Line-Line Intersection", "2 Circle Middleline" and some more.
    Also the more Complicated Nodes "Circle tangent to 2 Circle", "Point or Circle tangent to 3 Circles"

    666 downloads

       (3 reviews)

    2 comments

    Updated

  15. Menu-Command Distribute horizontal

    If you often have objects like imported pictures or imported PDFs with many objects or pages, this Marionette Menu Command can be handy.
    It aligns objects to the bounding box buttom and stick it together to the bounding box width.
     
     

    123 downloads

       (0 reviews)

    1 comment

    Updated

  16. 2D Light Effects PlugIn

    The Example file contains two PlugIns for 2D Light effects.
    https://youtu.be/34gu6EEvhog
     

    274 downloads

       (0 reviews)

    1 comment

    Updated

  17. 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


     

    75 downloads

       (0 reviews)

    1 comment

    Submitted

  18. Get Values from XLS

    "XLS Get Values"is to read Data directly out of a XLS Sheet. 
    The Smaller Nodes "XLS GetSheetNames", "XLS GetSheetInfos" are additional Nodes which are not essentially.
     
    use cases:
    Everywhere you want to get Data out of an XLS File instead a Textfile. 
     
    Special Features:
    1. If file Input is wrong the node will do nothing (no crash 🙂 )
    2. If the sheet name is wrong it will import first sheet
    3. If start/end is empty, it will return the complete sheet.
     

    131 downloads

       (0 reviews)

    1 comment

    Updated

  19. 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.
     

    274 downloads

       (1 review)

    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. Marionette Object shows Values from an xls

    This Example shows a Marionette Object, which contains a Vectorworks Worksheet.
    By clicking "Update" Button in the OIP, the Marionette pulls automatically the new values out of the linked xls sheet. 

    Short Manual:
    1. Import first The Worksheet in Vectorworks 2021
    2. Create a blue symbol (insert as group) that contains the worksheet
    3. Fill out Worksheet Name, Symbol Name, and File Path (Pick File Node)

    Known Limitations:
    - I see it as a fun-gadget
    - It will not enhance the VW Worksheet if new rows are added in the linked xls. 
    - It will not make the VW Worksheet smaller if rows are deleted from the linked xls.
    - It is based on the import xls from 2021 and it will update just values. No Format etc. will be updated.
     

    550 downloads

       (0 reviews)

    0 comments

    Submitted

  22. Marionette Translate Character to Geometry

    A Marionette PlugIn, that collects a custom drawing (font character, picture whatever) and refer it to a regular font character. 
    This "Font" is placed into the control geometry container. Also we could just use a blue symbol.
     
    The Heart of the script is a custom node "create font dict" which manage collecting the control geometry. Also it returns a dictionary sequence data type. A dictionary is very useful if you want to have pairs of data. In this case a character and a drawing group with informations forms a pair. 
     
    Sure, the script could be improved by several things (multi-line, alignment, page based etc. )  But I think it is very useful to have that plug in. Have fun with it. Maybe you can share your own fonts and your wonderful handwriting here. Thanks.
     
    Usecases:
    1. Handwriting Font
    2. Vectorfont (ability to use sketch view)
    3. For Milling Machines
    4. Fast inserting of object sequences
    5. ...
     
    Update v2019
    1. Script Crashed if input Geometry was None (Integrated a script blocker and an Alert Dialog )
    2. Input Dict was always None, because use of an outdated Script command (vs.GetType() instead vs.GetTypeN()). Issue in many other scripts. One of the very rare incompatibilites of Script commands the past Years.
     

    121 downloads

       (1 review)

    0 comments

    Updated

  23. Fill Spaces With Symbols

    Imagine you have client, which delivers you a room list. And a list, which objects have to be in this rooms. You can consider this lists with hundreds of rooms on your left screen and click them one by one in your rooms. You will make errors and your eyes will get squared.
    Another real interesting example how you could accelerate a routine job with a marionette script.

    92 downloads

       (0 reviews)

    0 comments

    Updated

  24. 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.

    51 downloads

       (0 reviews)

    0 comments

    Updated

  25. Marionette Launch Video Facade

    This is one of the files used in the Marionette launch video. It was created by Dominique Corpataux at Computerworks.
     
     

    320 downloads

       (0 reviews)

    0 comments

    Updated

×
×
  • Create New...