Jump to content
Developer Wiki and Function Reference Links ×

Symbol killer using path extrude help needed


Recommended Posts

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

Capture d’écran 2017-07-17 à 10.59.10.png

Capture d’écran 2017-07-17 à 10.57.56.png

frame_test_.vwx

Edited by the frog
Link to comment

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.

596e74d354f4e_SymbolNode.png.9f889c8df5166a40e198598361b4051d.png:


 

#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 by DomC
Link to comment

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.

Link to comment

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

596fd93acd436_AccessSymbolContent.png.1717d3750a77a5f1f8cb788042342307.png

 

Access Symbols.vwx

  • Like 1
Link to comment
  • 3 weeks later...

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

Capture d’écran 2017-08-07 à 08.04.38.png

Link to comment

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.

Blue Symbol.PNG

Link to comment

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...