Jump to content

Stephan Moenninghoff

  • Posts

  • Joined

  • Last visited

Posts posted by Stephan Moenninghoff

  1. 18 hours ago, MRoth said:

    - It seems as if you always fill one half of the shelf with plates and the other with glasses and bowls. Is that correct?

    Not strictly. Diameters are used to determine which is the largest object participating in the zig-zag array. Objects falling below a certain diameter are assembled in rows, then the remaining space is used to distribute them and as a last step they are shuffled about by a random value.

    18 hours ago, MRoth said:

    - What are the diameters of your dishes?

    It doesn't matter.

    18 hours ago, MRoth said:

    - Are there any specifications for your shelf regarding size? For example, only with certain depths?

    Not really. The only limit is that I will stop filling up the shelf once I have finished the last of the distributor modules (because I cannot loop).


  2. 20 hours ago, MRoth said:

    Are these all individual objects that can be placed completely randomly or would it be possible, for example, to pack the glasses in a predefined block. This block would have a length that could be used again.

    They are stacked symbols and symbols outside of the max vertical shelf space get deleted. That's all straightforward . The hard part is: objects get placed randomly. That's kind of the point of the object. You want each shelf with a different set of objects and different placement. So, it's not about the stacking, it's about placement on the horizontal plane in x and y and filling up the shelf in x and y. Does that make sense? I'm posting the object soon anyway. Maybe it becomes clearer then. 


    • Like 3
  3. 8 minutes ago, MRoth said:

    Is this about your books or another project?


    A new project. I'm filling up a shelf with plates, bowls, glasses etc. Mainly round or roughly that shape. So I'm doing the math but it is impossible to guess the total length as the filling is not linear, as with the books because I have the shelf depth to take into account. So, I'm looping through the process until I have filled the shelf. I can see no other way.



  4. I wonder if an option could be added to create a loop that will be executed until some condition is met. Think about filling up a shelf until full and then stop. I haven't found a way to do this other than repeating a wrapper n times and using valves to stop the unused wrappers getting executed. Unfortunately, this makes debugging inside of Marionettes very slow because the valve does not seem to start working until the object has been exited. Also, with each repeated wrapper, the compile time gets longer. This makes duplicating the object slow in the document (although I am sure my wiring could be optimised 🙂 ).

    Any ideas? Could this even be implemented at node level?

  5. On 6/2/2020 at 12:23 PM, Zeno said:

    I need to create a single panel on the cabinet's rear attached. I would like to generate a single panel, not adding a 3d extra part. It is possibile? (number 1)

    I think I answered this already? You need an extra 3D part. There are no disadvantages as to manufacturing because you can still attach your fittings. The only drawback would be that the individual custom part would not adapt to reshaping of the parent cabinet.


    On 6/2/2020 at 12:23 PM, Zeno said:

    And (2) can I add a connection to create a 270 degrees opening?

    You can. This type of hinge is not supported by the interiorcad hinge tool - yet) but you can still add it. Import the hardware, attach an interiorcad 3D drilling, group it and run the "Assign Fitting Type" command (under interiorcad > Fittings). Place it appropriately and send to CNC or export parts list. It will be accounted for in both types of exports.


    On 6/2/2020 at 3:03 PM, Zeno said:

    Similar problem on opening with irregular angle, Interiorcad can't fine a correct element to open the part

    Angular doors are supported. You may have to play with the type of construction where the door hinges. Manufacturers require very precise parameters for particular hinge types.


    Here is an example document listing all supported types of angular door construction types:

    Angular hinges.vwx

    • Like 1
  6. Hi Zeno, for the c-shaped panel, you need to use a custom part. You can still use your usual fittings. If the custom part touches the surrounding parts, a grid will be shown as soon as one of the interiorcad tools is running. 

    As for the cutout, here is a little movie showing how to go about:

    • Like 1
  7. 5 minutes ago, Martin Lerch said:

    Hi Stephan,

    I just found your post while struggling with a similar problem. The valve node hasn't become smarter since, has it?

    Thanks Martin

    Not yet. I think I read somewhere that it is not as easy and straightforward to implement as one would imagine 🙂

    • Like 1
  8. 13 hours ago, Bas Vellekoop said:

    The exclamation point makes it seem that i should know what 'regenerate' in this situation means, I do not,  please help 😂

    Sorry, my bad. I should have said 'Reset' or 'Update' Those are the terms used for this ('Reset on Move' or 'Update' Button.)


    • Like 1
  9. 58 minutes ago, Bas Vellekoop said:


    Sorry, I do not get it I think 🙂

    If I was unclear then let me try to rephrase it. 


    1. Is it through a script or Marionette possible to create some sort of button that makes Vectorworks recalculate the CSG solids that are present in the VW file?

    2. Would through an VW enhancement request it be possible to add this as an automatic part of History-Based Modelling? (Vectorworks recognizes you changed a symbol that is used in a solid addition or subtraction and recalculates the CSG solid automatically?


    Thanks for your help and patience 🙂  

    No trouble at all!

    1. Yes. You can tell your Marionette to do whatever you want it to. (Always remember that you may need to regenerate it though!)

    2. Not for me to say.

  10. 1 minute ago, m.graf said:

    If i have to check my network in a wrapper, i make new "outputs" with named pass nodes (first behind the nodes at the beginning than in the middle ...) then from line to line or node to node i check the Dataflow in the wrapper. (very lengthy 😕

    That's my advice as well. Very good point!

    1 minute ago, m.graf said:

    Number two on my wishlist: wrappers with big Networks (>100 nodes) have to be closed faster! 

    Has this become slower? I had to wait longer than I remembered when I did my last fairly substantial project. Your tiling object must have been horrendous!

  11. 12 minutes ago, Aneesh Carvalho said:

    @Stephan Moenninghoff Yes, I did do that. However, I don't want the symbol to be placed on the line at the symbol's current center point. I'd like to change the symbol's point of inclusion. Let me know if I'm making any sense.

    Thank You

    Sure. Use the move node or feed what comes out of the "Get Point on Poly" (at the p port) into a "get xy" node. perform your additions to the x and y coordinates and feed that back into a point 2 node. That's your new coordinate.

    • Like 1
  12. 26 minutes ago, Aneesh Carvalho said:

    @Pat Stanford and @Stephan Moenninghoff Your suggestions were great. Pat's suggestion did however work for me for what I was trying to achieve. However, I'd like to know if it's possible to change the co-ordinates of a symbol in marionette?

    I used DomC's "Create Symbol" node but the coordinates are not what I want them to be.

    I want to be able to create a symbol and place them evenly on the points of a line you just helped me solve. Your help has been much appreciated.

    Thank You

    The Symbol node takes a point input. Just replace the locus node with the symbol node and reference your symbol.

    • Like 1
  13. @Pat Stanford it may be worth noting that you cannot convert a line to a polygon without adding a third vertex. This is totally logical to old VWX dinosaurs but may not be for newbies. @Aneesh Carvalho other than that, what Pat says. That method will give you the first point on the polygon only so you need to use some more nodes to get the others. Something like this works:


    Name the polygon (bottom of the Object Info Palette) and use that as a criteria in the "Objs by Crit" node to identify the object that you want the Marionette to act on. Note that the polygon has three vertices, so it looks like a line but is, in fact, a polygon.

    • Like 2
  • Create New...