Marissa Farrell

Marionette Maven
  • Content count

  • Joined

  • Last visited

Community Reputation

238 Spectacular

About Marissa Farrell

  • Rank
    500 Club

Personal Information

  • Occupation
    Quality Assurance Specialist
  • Hobbies
    snowboarding, macrame, beadwork, embroidery, Binding of Isaac, Marionette, arts & crafts, 3D Printing, reading, saxophone
  • Location
    Maryland :(

Contact Info

  • Skype

Recent Profile Visitors

2,751 profile views
  1. So, Marionette doesn't like special characters in node names. I think if you change your Angle-Metric to Angle_Metric for the line defining the node name, you may be all set. That's the only change I made when opening the file you have attached. this = Marionette.Node( 'Angle_Metric' )
  2. Hey Stephan, I think sometimes when networks get wrapped, duplicate objects are created. I was able to bypass this issue by using a Get Item node in your lines wrapper using an index value of 0. This is a known issue that I believe is logged in our bug tracking system. If I cannot find that entry, I will add one using your file as an example.
  3. @BillW The script below works for me. It just took some reorganization, let me know if you're still having an issue with it. @Marionette.NodeDefinition class Params(metaclass = Marionette.OrderedClass): def getcontent(): import os fref = os.path.join(vs.GetFolderPath(20) , 'Angle-Metric.txt' ) content = [] if os.path.exists(fref): f = open(fref) line = f.readline() # First line not used line = f.readline() while line: sline = line.split('\t',1) content.append(sline[0]) line = f.readline() f.close() else: content = ['Undefined'] return content #APPEARANCE #Name this = Marionette.Node( 'Angle_Metric' ) this.SetDescription( 'Select an Angle-Metric section size' ) #OIP Controls types = getcontent() sectionType = Marionette.OIPControl('Section Type', Marionette.WidgetType.Popup, 0, types ) sectionType.SetDescription( "List of valid section types" ) #Output Ports sectionsize = Marionette.PortOut('Type') sectionsize.SetDescription( "The resultant section definition" ) #BEHAVIOR def RunNode(self): #inputs sectionType = self.Params.types[self.Params.sectionType.value] #outputs self.Params.sectionsize.value = sectionType
  4. Yep! You'll want to do this a little differently. #OIP Controls types = content.getcontent() sectionType = Marionette.OIPControl('Section Type', Marionette.WidgetType.Popup, 0, types ) sectionType.SetDescription( "List of valid section types" ) and def RunNode(self): #inputs sectionType = self.Params.types[self.Params.sectionType.value] should do the trick. Let me know if that's still not working and I'll open up VW to figure it out, this is just from memory.
  5. I would also suggest looking at Model > 3D Power Pack > Create Helix-Spiral. You could use that to make your spiral shape, ungroup it to get the nurbs curve, and perform an extrude along path command with that as the path and a rectangle as your profile.
  6. I don't want to say no definitively, but it really depends on how often that external list will change. Marionette Node parameters are only updated when the script is updated (opening then closing the script), which makes dynamically populated OIP controls really fussy. If this text file will always hold the same parameters, then it can probably be done, but if the file is going to be updated, you'll have to remember to update the script every time that happens. (It may also update itself once you run it once, we've seen that before in testing, but I'm not certain it's reliable) Even then, I haven't tried this myself, so it may not work how I anticipate.
  7. As long as you are inserting a red symbol that contains your Marionette Object, each instance will be independent from the rest. You can insert as many as you want and change their parameters independently in that case.
  8. Does your object insert other symbols? If so, move those symbols into the new document first.
  9. You can *sort of* do this. When you create your symbol, check "Convert to Plug In Object" in the Symbol Options dialog. Right now there are some issues when importing these symbols into different documents, and this also would kind of eliminate the symbol aspect as it would insert as a different object each time, possibly increasing filesize, but these are known issues and are being investigated. If you want to bring the symbol into another document, I would suggest copy-pasting an instance and then create a new symbol with the Plug In Object option checked in your new document. You can always give it a try and see how it goes for you.
  10. Assuming you are replacing the objects wired in there, if you use a Bool node from the Input category and give it a name, it will present a checkbox in the OIP when you convert it to a wrapper or object.
  11. You first need to import it into your current document. Only resources in open files can be duplicated.
  12. Sarah wrote a script that does a search and replace with Marionette. These examples can be expanded upon to further suit your needs.
  13. For the time being, you can use this Marionette Menu Command in 2018 to prefix your classes. It will prompt you for the prefix you would like for your classes. Instructions on how to create a Marionette Menu Command are included in the post. VW 2018 is required. I would suggest trying this on a test file before using it on any working file you have. The action is undo-able, but use at your own risk. EDIT: Special note on this. Currently Marionette Menu Commands will bring Marionette classes in with them, so you may have extra classes after running this command. I am entering a bug to try to fix this.
  14. Prefix Classes

    Version 1.0.0


    Starting in Vectorworks 2018, users can now create menu commands defined by Marionette networks. To do this, select a wrapper in your file, right click, and choose "Convert to Menu Command..." This will open a dialog window where you can name this command. A background process will save your Menu Command to a file in your User Folder. Once that's complete, you can access the menu command by navigating to Tools > Marionette Commands > [YOUR COMMAND HERE] This node when converted to a Menu command will prefix all of your classes, excluding None and Dimension, with the Prefix of your choice. By default, the prefix will be "Prefix-" Keep in mind, if you want the dash to appear for hierarchical display, you must include it in the string.
  15. I've attached a simple example. The PIO Handle node allows you to get the handle to the Marionette object itself, so the Record gets attached to that instead. Right now this is a one-way relationship, the object will only update if you update the values in the Shape pane, but it is possible to make it a 2-way relationship, it's just a little more involved. MarionetteDatabaseExample_MFarrell.vwx