the frog Posted July 17, 2017 Share Posted July 17, 2017 (edited) This is a very weird script. It erases the symbols inside the resource manager. The primary idea of the script was to design frames of different shapes straight from the size of the picture image using multiple symbols for base. This is not possible in VW because of the way symbols are packed. Marionette is THE solution. I started from a normal script based on size of the image, a shape and path extrude. It woks fine but you cannot have a library of shapes (see script picture). So looking at Stephan script I borrowed the beginning (popup menu) and tried. First I made some symbols, than I replaced in the resource manager, not knowing how to use the popup menu and symbol in folder nodes. I could then get my shapes to appear (Stephan I will need a lesson on the symbol folder node). So normally from there select in the OIP -> content node + ungroup gives me a 2d poly able to replace my first script rectangle. At this point using the path extrude should work but here comes the awkward and strange thing. Instead of shaping the frame I only get the 3d poly rendering without the shape. At this stage the symbol as disappeared from the resource manager; I still have the name, the vignette image but the symbol itself is gone. If I edit the symbol the vignette vanishes and nothing is left. You can try by drawing your own symbol and see what will happen. I am glad to have invented the symbol destroyer frame_test_.vwx Edited July 17, 2017 by the frog Quote Link to comment
DomC Posted July 18, 2017 Share Posted July 18, 2017 (edited) Hi 1. "Symbol in Folder v02"- Node This "Symbol in Folder v02"- Node, returns all Symbols out of a Symbol-Folder Name, which you can input with a String. Alternatively you can pull (import) all Symbols out of an external File if you feed "isFile" input with a True boolean. It looks like you just want to use one symbol. Just make a blue Symbol of your cadre and insert your cadre symbol with the standard Symbol-Node. You don't need "Symbol in Folder"-Node. 2. The Input Popup. Not that's the issue here and I don't want to be a smartass to other Marionette makers but it would hurt to not comment that :-) Your input popup returns integers from 0 to 7. Then he make a attach the same index number as in the popup to the integer. "If input is 0 then it return cadre1" as example. You can "eat" those 30 Nodes if you just edit the input node as following. It is allowed to do this because this popup anyway is custom edited node. : #SM #Dom output string instead of index numbers @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): this = Marionette.Node( 'Popup' ) this.SetDescription('This node demonstrates the use of a Popup OIP control. The values returned by this node will be integers based on your selection starting with 0 for the first option and increasing by 1 for consecutive options.') cadres = ['cadre 1', 'cadre 2', 'cadre 3', 'cadre 4', 'Paperback', 'Penguin', 'Generic'] input = Marionette.OIPControl( 'Popup', Marionette.WidgetType.Popup, 0, cadres) input.SetDescription('an OIP control representing the options designated within the script editor') output = Marionette.PortOut('int') output.SetDescription('an integer corresponding with the option selected in the OIP. Returned values range from 0 to one less than the number of options.') def RunNode(self): input = self.Params.cadres[self.Params.input.value] self.Params.output.value = input 3. Symbol eater I wrote that peace of code in the "Symol in Folder" Node so I wand to defend it against blaming it to be a sombol-eater :-). The Symbol Folder node, should not delete anything. It just returns names and handles. If you import the symbols from an external file, it will create a symbol folder with the file name and automatically import the symbols (which will nested automatically into this folder). And at the end of the script all symbols will be moved in the symbol folder again. I can't remember why I did this but I can't exclude an issue with that. I guess you use the the content node. And this returns the content of your symbol definition. If you delete or use that content in something that eats It (An extrude?) your Symbol content is vanished out of your symbol definition. You should first insert your symbol into the drawing (Standard Symbol node) and then you can make whatever you want with it. Your symbol definition will not be affected by this. We are waiting eagerly to see more of your example. DomC Edited July 18, 2017 by DomC Quote Link to comment
the frog Posted July 19, 2017 Author Share Posted July 19, 2017 Thanks for the answer The explanations are very clear but I don’t understand everything about them. Being in a rush on work I will have to let it go for a while. When the script will be ready I should have about 150 different types of shapes for the picture framing, from XVII century to XXI this is the reason why I started from the bookshelf script. I thought to separate in centuries and from there into depth. If I use the symbol node , can I pick in the OIP choice? So next thing for me is to work on your part 3: from the list turn it into a usable object (maybe a copy node would make it) use the copy and put back the content into the symbol ? Too many guesses and no time to try. Quote Link to comment
DomC Posted July 19, 2017 Share Posted July 19, 2017 Hi Thanks for the Feedback. Yeah, time is a problem. I think it needs about 100-200 hours (without any help) to get some kind of routine. If you have time to do further work on your project: Quote When the script will be ready I should have about 150 different types of shapes for the picture framing You could create a symbol list (Vectorworks Worksheet). Copy-paste in excel (or similar) and form a list ['Symbol-1','Symbol-2','Symbol-3','Symbol-150'] so you can create a "hardcoded" (if you add symbols, you have to manually update your popup list ). Sure, we could create a dynamic list of symbols and fill them in a list value for the popup automatically. Just Enter the popup Node, pressing OK and the popup shows all new Symbols. Quote I thought to separate in centuries and from there into depth. If I use the symbol node , can I pick in the OIP choice? Exactly, if you modificate the Input Node, as I explained. Or you could use the If Nodes in Stephan's Example to "translate" the Numbers into Symbol Names, but with 150 Symbols you will got 450 Nodes just to choose symbol Name :-) Quote So next thing for me is to work on your part 3: from the list turn it into a usable object (maybe a copy node would make it) use the copy and put back the content into the symbol ? Yes that is possible. There is something I maybe have to clarify: 1. The symbol definition is not the same, like a Symbol in drawing. If you delete, manipulate a symbol in drawing, nothing happens with the symbol definition. 2. The "Symbol in Folder"-Node access directly to the symbol definition if you want. But it is not designed to get directly a single symbol with a specific name. 3. So the standard workflow is, you first insert the symbol into the drawing. And then use that "symbol in drawing" -object. There are different ways like always: 3.a ungroup the symbol with the node from here: https://forum.vectorworks.net/index.php?/topic/47801-the-rest-of-domc-nodes/#comment-240786 from "Operation Nodes" 3.b Or Make your symbols blue symbols, so you just have to ungroup I recommend you do it with 3b. That is the way which works, without any additional nodes, just with standard-nodes. I can remember there were discussions about this here, but I can't find the thread now. I am pretty sure there was something better than using a custom created node. Example attached ... Access Symbols.vwx 1 Quote Link to comment
the frog Posted August 7, 2017 Author Share Posted August 7, 2017 Hello back from hell So cool this symbol node I wish I knew how to script ! I have tried your script, it works well until I wrap. Then I get an error message and the result is the circle and the rectangle from the symbol So I don't know if it's my computer or if you get the same result. I am surprised because I thought you needed 3d poly to path extrude and in your script it's working with 2d. Second question if I use the symbol node would I have to get in the script and add the symbol name in the list ? tanks for the help Quote Link to comment
DomC Posted August 7, 2017 Share Posted August 7, 2017 Hi Seems, that the"ConvertToGroup"-Node, fails in this situation because there is something unclean with the output of this operation. The pragmatic solution would be, to make your profiles blue symbols and give up "ConvertSymbolToGroup". You can edit the symbol settings (right click resource browser) and check "insert as group or similar" Speaks something against this? I will look at the SymbolToGroup-Node, if I have time for this. This will not be soon. Quote 2. if I use the symbol node would I have to get in the script and add the symbol name in the list ? Yes, the symbol list in the symbol-name inputter, ist not dynamically. It could be ... but the list eitherway would only be updated, if you edit input node and exit it. Quote Link to comment
the frog Posted August 7, 2017 Author Share Posted August 7, 2017 Thanks for the answers Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.