Jump to content

Stephan Moenninghoff

Member
  • Content Count

    654
  • Joined

  • Last visited

Everything posted by Stephan Moenninghoff

  1. Could the slider be modified to accept its min, max and default values from input ports? Let's assume I wanted to set the amount of an element in a list by slider. In that case I would need to get the list length for its maximum and default values. If anyone can help me I would be most grateful. I promise to learn Python one day. All this Marionette wiring is keeping me off it, I guess :-).
  2. Wow, that's a fast response. Works like a charm now. Thank you!
  3. I had assumed that the "Split List" node will split a list at a given index. I have used this node before with simple lists and it worked as advertised. Now I'm trying to split a zipped list and I'm finding that the split is not carried out at the specified index. It seems the list is split at the previous, unzipped index. This is the list to split (at index 15): Number of Items: 30 [0] = [(525.1999999999999, 0, 187), [182.71333333333334, 73]] [1] = [(0, 0, 0), [174.82333333333332, 97]] [2] = [(707.9133333333333, 0, 151), [151.42333333333332, 69]] [3] = [(525.1999999999999, 0, 0), [182.71333333333334, 107]] [4] = [(347.33666666666664, 0, 272), [177.86333333333332, 105]] [5] = [(0, 0, 97), [174.82333333333332, 82]] [6] = [(174.82333333333332, 0, 133), [172.51333333333332, 56]] [7] = [(707.9133333333333, 0, 88), [151.42333333333332, 63]] [8] = [(707.9133333333333, 0, 220), [151.42333333333332, 105]] [9] = [(174.82333333333332, 0, 242), [172.51333333333332, 82]] [10] = [(0, 0, 179), [174.82333333333332, 105]] [11] = [(859.3366666666666, 0, 204), [140.66333333333333, 69]] [12] = [(859.3366666666666, 0, 0), [140.66333333333333, 103]] [13] = [(525.1999999999999, 0, 107), [182.71333333333334, 80]] [14] = [(174.82333333333332, 0, 67), [172.51333333333332, 66]] [15] = [(707.9133333333333, 0, 325), [151.42333333333332, 67]] [16] = [(347.33666666666664, 0, 76), [177.86333333333332, 70]] [17] = [(859.3366666666666, 0, 103), [140.66333333333333, 101]] [18] = [(347.33666666666664, 0, 0), [177.86333333333332, 76]] [19] = [(0, 0, 284), [174.82333333333332, 80]] [20] = [(525.1999999999999, 0, 330), [182.71333333333334, 80]] [21] = [(707.9133333333333, 0, 0), [151.42333333333332, 88]] [22] = [(525.1999999999999, 0, 260), [182.71333333333334, 70]] [23] = [(859.3366666666666, 0, 273), [140.66333333333333, 52]] [24] = [(859.3366666666666, 0, 325), [140.66333333333333, 91]] [25] = [(347.33666666666664, 0, 146), [177.86333333333332, 72]] [26] = [(174.82333333333332, 0, 0), [172.51333333333332, 67]] [27] = [(347.33666666666664, 0, 218), [177.86333333333332, 54]] [28] = [(0, 0, 364), [174.82333333333332, 97]] [29] = [(174.82333333333332, 0, 189), [172.51333333333332, 53]] This is the first list: Number of Items: 60 [0] = (525.1999999999999, 0, 187) [1] = [182.71333333333334, 73] [2] = (0, 0, 0) [3] = [174.82333333333332, 97] [4] = (707.9133333333333, 0, 151) [5] = [151.42333333333332, 69] [6] = (525.1999999999999, 0, 0) [7] = [182.71333333333334, 107] [8] = (347.33666666666664, 0, 272) [9] = [177.86333333333332, 105] [10] = (0, 0, 97) [11] = [174.82333333333332, 82] [12] = (174.82333333333332, 0, 133) [13] = [172.51333333333332, 56] [14] = (707.9133333333333, 0, 88) [15] = [151.42333333333332, 63] [16] = (707.9133333333333, 0, 220) [17] = [151.42333333333332, 105] [18] = (174.82333333333332, 0, 242) [19] = [172.51333333333332, 82] [20] = (0, 0, 179) [21] = [174.82333333333332, 105] [22] = (859.3366666666666, 0, 204) [23] = [140.66333333333333, 69] [24] = (859.3366666666666, 0, 0) [25] = [140.66333333333333, 103] [26] = (525.1999999999999, 0, 107) [27] = [182.71333333333334, 80] [28] = (174.82333333333332, 0, 67) [29] = [172.51333333333332, 66] [30] = (707.9133333333333, 0, 325) [31] = [151.42333333333332, 67] [32] = (347.33666666666664, 0, 76) [33] = [177.86333333333332, 70] [34] = (859.3366666666666, 0, 103) [35] = [140.66333333333333, 101] [36] = (347.33666666666664, 0, 0) [37] = [177.86333333333332, 76] [38] = (0, 0, 284) [39] = [174.82333333333332, 80] [40] = (525.1999999999999, 0, 330) [41] = [182.71333333333334, 80] [42] = (707.9133333333333, 0, 0) [43] = [151.42333333333332, 88] [44] = (525.1999999999999, 0, 260) [45] = [182.71333333333334, 70] [46] = (859.3366666666666, 0, 273) [47] = [140.66333333333333, 52] [48] = (859.3366666666666, 0, 325) [49] = [140.66333333333333, 91] [50] = (347.33666666666664, 0, 146) [51] = [177.86333333333332, 72] [52] = (174.82333333333332, 0, 0) [53] = [172.51333333333332, 67] [54] = (347.33666666666664, 0, 218) [55] = [177.86333333333332, 54] [56] = (0, 0, 364) [57] = [174.82333333333332, 97] [58] = (174.82333333333332, 0, 189) [59] = [172.51333333333332, 53] Is this the correct behaviour?
  4. Thanks, I'll try that. Actually, it is not only moving/duplicating the Marionettes that is taking a long time but also placing them as red symbols in the first place. I have logged a bug with Vectorworks. Let's see if there is a solution.
  5. That will do nicely, thanks, Dom. Actually, having the popup saying "Add" when the node itself is still labeled "Subtract" gives an indication that it hasn't been run in that mode yet. You rock!
  6. Hey @DomC, I have merged the add and the subtract nodes to get a single node with a popup-menu that lets me change its type in the OIP. I'm switching between add and subtract so often that I found it tiresome to rewire everything every time I made a mistake. Do you happen to know how the title of the node can be changed to show the type of calculation that has been chosen? Here's the node's code: # @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): this = Marionette.Node('COULD THIS BE DYNAMIC??') this.SetDescription( 'Add or Subtract' ) a = Marionette.PortIn( 0 ) b = Marionette.PortIn( 0 ) c = Marionette.PortOut() calcType = Marionette.OIPControl( "Calculation Type", Marionette.WidgetType.Popup, 0, ['Add', 'Subtract'] ) calcType.SetDescription( "The Calculation Type" ) a.SetDescription( '' ) b.SetDescription( '' ) c.SetDescription( '' ) import operator def RunNode(self): calcType = self.Params.calcType.value a = self.Params.a.value b = self.Params.b.value if calcType == 0: self.Params.c.value = Marionette.TupleMap(operator.add, a, b) elif calcType == 1: self.Params.c.value = Marionette.TupleMap(operator.sub, a, b) Node attached, too. Dynamic Add_Subtract.vwx
  7. OK, no new features for the bookshelf this week. I'm attending the "BAU 2017" in Munich. "Been there, done it, got the t-shirt". Unfortunately, all t-shirts are size S... :-)
  8. OK, I got it. What you do is: 0_0 0_1 ... 0_9 1_0 1_1 ...etc. That's it. No Letters. @MarissaF@sbarrett not sure if this has been documented yet? This thread hasn't been updated in a while and I couldn't find this information anywhere.
  9. Plus one, so not that cold. Suits me fine. Expecting some snow though.
  10. @Alan Woodwell That sounds like a great idea for another "shelf life" marionette (should we create a new tag? I'm also working on a new "shelf life" Marionette this weekend). Can't wait to see the finished script. BoxShot app has parametric bottles, bags, cream tubs etc., so no end of possibilities there. I'll make some as soon as I get the chance. I noticed you used the "Get Bounding Box" node to get at the symbol footprints. I would never have tried that because the description reads "Returns the bounding box's coordinates of an objects *projection on the screen*. If this also works for the 3D projected footprint (as apparently it does) the description should be changed to reflect that, don't you agree?
  11. Ah, you mean like on a real messy person's shelf? :-) I cringe when I think of Karl May mixed with Penguin and trashy novels but hey, why not. I am sure there are marionetteers on this forum who could change the "Symbol in Folder" Node (was that even one of @DomC's?) to drill down into subfolders. That way the cake could be kept and eaten at the same time. Then again, one might want to exclude the Karl Mays after all (and the encyclopaedia). About time I learned Python.
  12. Yes, Hans Martin Kern is our CTO and my associate in the company and Nicolas Goutte is our Python Guru. They helped me with some of the changes made to the Index and Random Chunk Nodes.
  13. Thanks, @MarissaF :-). Marionette is highly addictive. I had a couple of hours to spare today (a rare occurrence) and I had to make a decision what to do. Of course I ended up wiring a spike for a textured, parametric box, my next pet project ("anything you can put on a shelf"). I wish I could do more Python sometimes to be more flexible. Having said that - what we can do just with nodes is already very good. I hope, Marionette will get regular updates with new features.
  14. Ah, I didn't think of the preceding 0. Thanks, Alan. Does Random still work now? I can't test just now. My PC is busy rendering and on the Mac it's still crashing. (They are on it though. This is slated to be fixed for SP3 :-)
  15. I have uploaded the current version of my parametric books. Features: Places books from a designated symbol folder in a box ("shelf") Eliminates books that are too tall or wide for the box Allows to randomize the sequence of placement within each book collection (symbol folder) Option to repeat the list to fill long shelves Six different types of random angles or all straight Offset from shelf edge (Random Max/Min) Allows for any number of stacks in-between standing books Number of books per stack (Random Max/Min) Offset and angles for stacked books (Random Max/Min) Option to have only stacks, no upright books Download Link: https://forum.vectorworks.net/applications/core/interface/file/attachment.php?id=4863 Alternate Link: http://www.interiorcad.org/upload/marionette/Marionette-Books.vwx.zip Known Issues: Modifying existing Marionettes runs smoothly, even with long shelves. However, placing new objects using the red symbol in the document or duplicating an existing Marionette takes a long time. I don't know if this is my own wiring or something else. I have logged a bug with Vectorworks. Let's see what it turns out to be. The gap between angled books and stacks is not correct. I'm running out of time :-). Maybe I'll fix that later. Here's a video to explain a little more in-depth what this does:
  16. Is there something I can do to freeze a Marionette object node and effectively stop it from regenerating each time I move it? I would prefer it if it would only regenerate when parameters are changed.
  17. @Coastal Design you may want to check out interiorcad for Vectorworks. It will generate DXF files for just about any type of router and you can export your 3D parametric cabinet or individual parts without any extra manual work involved. Here are some Youtube videos and there is more info on https://en.extragroup.de. Cheers --Stephan
  18. @the frog can you explain how you did this successfully? I cannot get this to work. I use 0 to 9 and then what? A? What about labels starting with A? How does Marionette know that my "A" is not part of a label? Thanks!
  19. I can't see any difference in performance on my end between books consisting of meshes and books modeled in VWX. If you have time, would you try using the Penguin paperback collection instead of the Paperbacks? Does that make a difference on your computer in terms of execution speed? BTW the reason why I'm using the meshes is I made them outside of VWX (in an app designed to do just box shots of objects) and then imported them via OBJ. The UV mapping of the textures will get destroyed once I enter the mesh.
  20. @MarissaFthat's some good news. I have a Windows machine here which I will use to continue working on this project for the time being. Thanks!
  21. Thanks for all your comments. @Alan WoodwellI see the same problem with the "get list length" node. It will start to return zero after a few times running the network. I did put this down to my own noob wiring but maybe you are on to something there. What I am doing is I am sorting the books and then shuffling them inside their sorted blocks so I don't get very wide books stacking on top of very narrow books. At the same time, the stacks don't look totally neat. As I mentioned before, my next step would be to fix the distance between leaning books and stacks. Still a bit of work remaining but I'm loving it. Placing the books manually would have been hours of very dull, repetitive work.
  22. No luck. Still crashing. I did hesitate to report this as a bug as it may be the way I'm connecting my network that is causing the crashing. However I see no way of debugging this.

 

7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114

 

© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

×
×
  • Create New...