-
Posts
1,330 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Articles
Marionette
Store
Posts posted by Stephan Moenninghoff
-
-
-
Is there some way to do this? Just like I would if I had extracted the NURBS surface with "Create Planar Objects" given as an option? Can't seem to do this with any of the stock nodes although it should, in theory, be possible..
-
32 minutes ago, Marissa Farrell said:
@Pat Stanford & @Stephan Moenninghoff
I've been through all of those functions and unfortunately I still haven't figured it out.
The locations returned all appear to be on the layer plane instead of in their 3D location projected to the screen. I don't think the function Pat mentioned takes the Z value into account, and I've struggled to find anything that can help offset that (which is why I was playing with the Layer Ref functions)
OK, thanks, Marissa. I was just looking for a quick and dirty Marionette to fix a user problem. We'll probably have to code this properly in the SDK. Labelling parts in a drawing. Always a challenge :-)
-
7 hours ago, Alan Woodwell said:
As yo move the object you would need to have the screen plane object reposition itself.
Hi Alan, yes, that will be the next step, or, ideally, I want this to work inside the annotation space of viewports. Your example works but it converts text to polyline in the process. I understand why you need to do this. Text somehow cannot be moved in z. This was part of my problem.
@Pat Stanfordthanks for mentioning the VS function. Maybe this will do what I need. I'll have to play with it.
-
6 hours ago, Alan Woodwell said:
@Stephan MoenninghoffHi, This network places text on screen plane or Layer Plane. Hope this helps?
Hi Alan,
Thanks for the help.
I cannot download your file - the link is broken. Just to clarify: I am not having problems placing text on the screen plane or on the layer plane. The Set Planar Reference node takes care of that. What I cannot do is place text on a point on the screen plane that is a projection of a 3D point.
-
1 minute ago, Marissa Farrell said:
I do believe, however I haven't tested, that you can use the Move node to move the text to a 3D location. It would still exist on the layer plane, though, instead of the screen plane (if that even works)
Thanks Marissa, but unfortunately, it doesn't seem to work. (In theory, I am doing that already by feeding pCenter into the text's position). But I have tried move also. To no avail.
-
Is there a way to obtain screen x/y co-ordinates of 3D points or loci? I want to place text objects at the centre of 3D objects but in screen plane. I can find the objects' centre and I can place a 3D Locus there, no problem. Now I want to either place a text object in 3D or on the screen plane but where the centre point of the 3D object is. Here's a fake result:
I want this to run as an executable Marionette, not as an object because I'm looking for a specific object type in the current layer to be labelled.
I cannot seem to find a node that will return the screen plane co-ordinates of a 3D point. Also, there seems to be no way to move a text object to a specified location in 3D space.
-
- Popular Post
Hi all,
here is a little preview of some new functionality that we want to integrate into interiorcad 2018. With more and more VWX users now developing their own Marionettes, we thought it would be nice to integrate Marionette objects into interiorcad cabinets. This is merely a working prototype but we hope to get this ready for the next major version upgrade. Stay tuned and for those interiorcad users out there: now is the time to craft your own Marionettes :-)
Enjoy
--Stephan
- 5
-
Hi @Nico VindevogelI'll post a new project when I have it ready, still working on it. In the mean time, do this: Just hook the separator up anywhere in the network, I don't think its position matters. I have wired it to a node near the end though so it does not get lost in the network. Combined with the right sorting (see above) you should pretty much get the result I had. HTH.
-
Thanks everyone for the comments and custom nodes. @Patrick WinklerI hadn't even noticed that the order of indices got shuffled. As a matter of fact, it does not even matter for this project. I'll still install your custom node in case I need it for a future project. @sbarrettI'm installing yours as well. It's always good to have a few options to choose from. Thanks again to all!
-
Is it correct that the if node fills up the false output with the last index to match the list length of the true output? Should I have to run the "Delete Dups" node (thanks @DomC! ) after each if node to prevent this from happening?
-
Yes, that's what I'm doing now. It works well enough for what I'm trying to do. Thanks for confirming though!
-
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 :-).
-
Wow, that's a fast response. Works like a charm now. Thank you!
-
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?
-
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.
-
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!
-
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 operatordef 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.
-
-
-
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.
-
@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?
-
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.
-
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.
Convert a planar NURBS Surface to Polyline
in Marionette
Posted
Hmm.. looks like a different issue but who knows.
BTW it looks like the forum is breaking the links when copying and pasting. Your hyperlink comes up dead.