Jump to content

Stephan Moenninghoff

Member
  • Content Count

    695
  • Joined

  • Last visited

Posts 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. 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?


  3. 13 hours ago, the frog said:

    hello

    I looked at your book script more than impressive; you do know how to use the lists.

     

    About the Marionette object, I am using the symbols to move faster.

     

    I transform my Marionette object into a parametric symbol and this is what I use in the plans. Of course first I make a symbol of the script (thanks webinar) and this is what I put in my plan. If I know I have to move the object often, I copy an ungroup the object (loosing the Marionette properties), and make a symbol, not parametric of course, with the same name. This is the object I move until I find its place. I wait to change the properties until the last moment or if I know I wont move it again. Then I replace by the parametric symbol and ungroup it to transform it again into a parametric object.

     

    I seems a long journey for a little result, but when you have time for a coffee between each move because 20 marionette objects are moving in a zoom, it worth the gymnastic.

     

     

    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.


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


  5. 1 hour ago, Alan Woodwell said:

    Hi, I see its cold over there in Germany today. 36Dec C here today. Not sure where I would rather be. :)

     

    Plus one, so not that cold. Suits me fine. Expecting some snow though.


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


  7. 1 hour ago, Robert Anderson said:

    Stephan, most impressive. (I loved the fact that you had a Karl May collection!) Could one move examples from all the collections into a "general random" folder and get a truly randomized collection of books?

    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. 


  8. 41 minutes ago, Alan Woodwell said:

    @Stephan MoenninghoffHi, I notice that a lot of the new nodes are by 'HMK' is that Hans M K  and one by 'Nicholas G'. I haven't seen them in the Marionette Forum. If they have more I would certainly like to see any that they have to contribute to the Forum.

    Thanks

     

    Ok i see them all now https://www.extragroup.de/xg/team/

    Great work Team I want to see more please.

    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.


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

    Texture_Box.gif

    • Like 1

  10. 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 :-)


  11. 17 hours ago, Alan Woodwell said:

    What I wanted to say was you 3D of each book, some have upto 732 3D polygons which will slow the average computer and cause slowness as you add more shelves of books. You will need to simplify the 3D books so the file size is smaller and things run faster.

    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.

 

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