Jump to content

sbarrett

Vectorworks, Inc Employee
  • Posts

    311
  • Joined

  • Last visited

Posts posted by sbarrett

  1. Hi Martin,

     

    I looked at your file, and it is actually a weird glitch that I have seen happen once or twice. Somehow, your H pass node is connected to the sequence node twice. This shouldn't be possible - it is definitely a bug, but if you disconnect the H pass node completely and reconnect it, it should work properly.

     

    HTH,

    Sarah

  2. I can tell you that when building templates, we STRONGLY recommend to leave the None class as None. There are a lot of different instances where the None class will be recreated even if you change its name, apart from scripts specifically. If it is important for your office to change the None class to 0, you can do this by mapping your classes to the AIA/NCS standard. Go to File > Document Settings > Standard Naming and choose AIA/NCS. This will set your None class to 0 and set your Dimension class to A-ANNO-DIMS. If you don't check "Enable Auto-classing" you can still use all of your office standard classes.

     

    5a7b6649ce759_ScreenShot2018-02-07at3_46_02PM.thumb.png.6eb2e3ec0bc016ce2ec39767df165f71.png

     

    hope that helps,

    -Sarah

     

     

  3. Hello Martin,

     

    To answer your question about filtering - you can filter by object type. You can find a list of Vectorworks object types here: http://developer.vectorworks.net/index.php/VS:Function_Reference_Appendix#objects

     

    I have added a section that filters by object type to your network. 

     

    5a53829ca5b2b_ScreenShot2018-01-08at9_34_00AM.thumb.png.ba36731dd077e8a9ab77834aea62c99a.png

     

    I find this little network to be very useful - changing the value of the integer changes the object type you are looking for, but you can also change the Get Type node to another Get Object Info node that gives you a number value and the Integer node to the appropriate value you want to match it to.

     

    Autonumber_ID_sb.vwx

  4. I just checked the network I sent and I forgot to connect a node. It now works so that each extrude takes the class of the corresponding profile.

     

    Essentially, each input is a list of objects or a list of classes, and it applies the class from the class list to the corresponding object in the object list, so you don't need a separate EAP node, you can use input lists of matching lengths.

    Profilsymbol_am_Pfad_sb.vwx

  5. In looking at your network again - you don't actually need the list explode node. You are performing the same operation on each of the objects so you can send the whole list into one Path Extrude node. I made some changes to your network based on this, including duplicating the curve for every element in that list and sending them to the same node.

     

    Let me know if you have any questions. As a rule, I try not to repeat nodes when I don't need to, especially inputs.

    Profilsymbol_am_Pfad_sb.vwx

  6. Hello,

     

    Does the error persist? are you able to rerun the network/create a Marionette Object on subsequent attempts? I know there was an error in the code of that node that was fixed recently. When I tried your file, I got that error once but it didn't persist.

     

    I can see from the network though that the Delete node attached to the List Explode node will be a problem - if there are no objects going through the wire to the Delete node, it will produce an error. Detaching the Delete node shouldn't change your network. If you do want to use a Delete node in the future, I would recommend the modified Delete node in the file I attached. (This modified Delete node is only a stopgap until the default one is changed.)

     

    HTH

     

    -Sarah

    Delete.vwx

     

     

     

  7. 6 minutes ago, Heblon said:

    awesome! thanks a lot.

     

    Yeah I changed the script of the input-popup node, but somehow i changed every node, maybe I should duplicate the node first and try it again.

     

    Cheers!

     

    Whenever you change the code inside a node, you should first delete the very first line of code that starts: #COMMAND;

     

    This line creates a link between a text file and the node so nodes can be updated with new versions of Vectorworks. Deleting this line breaks the link, similar to ungrouping a symbol, allowing you to edit the node without affecting others. You can then save it as a plug-in object to use again later.

     

    Best of luck!

  8. I have added another version of the node that has an input instead of an OIP input. I also simplified it (I removed the aspect of overriding the document units). To create a pop up menu to choose symbols is definitely possible - it involves a tiny bit of coding though. There is a Popup node in the Input folder, and it allows you to create a popup list if you double click on it and follow the instructions in the code. The output of the node is the index of the list item chosen, so if you have a matching list of strings elsewhere in your Marionette network than you can use a Get Item node and the output of the Popup node to access the correct string. 

     

    To delete an object based on a True/False value, you can use a Valve node in the Data Flow folder, which allows you to block aspects of your network, or you can use a Filter node and my version of a Delete node - I put examples of how they work in the new Format Units file.

    FormatUnits.vwx

  9. In order for trailing zeros to show up, the number must first be converted to a string - I have written a node that converts numbers to strings as well as adds document units, its called Format Units. I have added another node to the file that does the same thing except does not add the unit abbreviation.

     

    HTH

     

    FormatUnits.vwx

  10. Hello @Spotbenny-

     

    I think this has to do with the difference between a Marionette Object and 3D geometry in Vectorworks - a Marionette Object acts like a hybrid symbol, so 2D objects have to be converted to 3D to display outside of Top/Plan. To do this, you can convert your text to polys and then convert those polys to 3D polys. I think that will work. There is a node in the Objects - Text folder called Convert to Poly Group, I believe.

  11. Hello all, is there an easy way to find out if an object is a 2D or 3D object? I feel like there has to be some sort or properties call but I am not aware of it. I need a way to filter objects in a script by whether they are 2D or 3D, but all I can think to do is filter by object type, and that seems way too involved.

     

    Thanks!

  12. Hello,

     

    Its hard to know exactly what is happening based on images. If you could share the file that would be much more helpful. The things I notice in the image of the script are 1) I am not sure why there is a Mix2 node - it seems like you are just trying to create three curves based on an original and two offset vectors but I am not sure without seeing the curves and the values in the script. 2) Your circle is not connected to the network so I don't really know how you want to use it.

  13. It looks like the first time you selected the network, a few of the string nodes didn't get selected with it, and the inputs that SHOULD have been connected to are the ones that showed up on the outside of the wrapper. I haven't been able to replicate that however.

     

    Your next step could be to start experimenting with the Set Text Properties and Set Character Properties nodes to position and format the text within the box.

  14. With Marissa's example, I believe you would have to attach a Delete node as well as the Get String node to the Text node. The reason is that both the Text node and the Print List node are create Text Objects and you only need the one being created by the Print List node.

  15. On 9/5/2017 at 10:11 AM, willofmaine said:

    Yes, very easy.  So how come it won't work in a larger network?  The prefix displayed with a Marionette object seems nonsensical.

     

    To explain what is happening in the video, when you use the Text node, you are converting the number and strings of the prefix and suffix to a Vectorworks text object. If you debug the network, you would see that the info going from that list would consist of a Vectorworks handle, and two numbers. What is being printed by the Print List node is the unique name of the handle, not the strings that make up the text object. For this example, I would use a list node to list your prefix, number value, and suffix, then send that through a Str node to create a single string, then add it to the list that you send to the print list node.

     

    I hope that helps!

     

  16. On 5/16/2017 at 6:24 PM, Jab_be said:

     

    Sorry for this probably stupid question but... How using this wonderfull script in an other file?

    I tried to "export scrit" and import in an other file but, i've un error each time.

     

     

    Hello @Jab_be,

     

    If you want to save a Marionette script to use in another file, the easiest way is to wrap the network, select the wrapper and go to Modify -> Create Symbol... and make sure that "Convert to Plug-In Object" is checked. Now your network is a Plug-In Object in your document and you can import it into another document just like any other Plug-In Object.

    • Like 2
  17. @Mandolomo  I don't know if changing the text's justification will help much because the network is set up so that the text box is only as big as the text inside. Changing the horizontal alignment will change the position of the entire text box - if you make the text box bigger then the justification will change the way you want it to.

  18. I reworked your network a bit - instead of creating the rectangles and arcs and then moving them based on the position of the text, I used Get Rectangle nodes to get the different control points of the text box and had those points be the starting points of the rectangles and arcs. I wrote a custom node that draws a rectangle from a width and height and center point. I then added the pop up node - basically whatever list you give it, the output is the index value of that list. So if its the first item in the list, the output is 0, the second item, the output is 1, etc. You can then use the Get Item node with a list of values (corresponding to the list in the Popup node) and then feed the Popup node to the Index input of the Get Item node. I set up the network so you can use the popup to choose left, top, right, or bottom for the arrow positions.

     

    If you want to make it a resource, all you have to do is select the Marionette object, go to Modify - Create Symbol... and make sure that Convert to Plug-In Object is checked. Then it will be available in your resource browser just like any other object.

     

    Position_Label_Combined.vwx

    • Like 1
  19. Hello @Mandolomo-

     

    I see that you are using an educational version of Vectorworks but it is v 2016. I would recommend upgrading to 2017, because Marionette is much easier to use - mainly because there is now a search function in the Resource Manager which allows you to search for nodes by name, as well as the nodes are in page units, so you can scale your drawing and the nodes will remain page size.

     

    I would recommend using the Get Rectangle Node in the Objects-Rectangles category to get you a position on your object. Even if you object is not a rectangle, it will give you the bounding box of the object so it will still work

     

    I have attached a doc that has a Popup node that you can edit. Just double click on the node and read the grayed out lines inside for instructions.  Popup.vwx

×
×
  • Create New...