Jump to content

Jayme McColgan

Member
  • Posts

    196
  • Joined

  • Last visited

Posts posted by Jayme McColgan

  1. 13 minutes ago, MullinRJ said:

    In what context?

     

    Raymond

    sorry shot that one off quickly with no good context... lol  when a user updates a field in OIP, is it possible to see what field they updated before jumping into the ResetEvent flow where it redraws everything? 

  2. On 5/16/2023 at 5:45 AM, jcogdell said:

    The first thing to do is to turn most of them off so only a single line is visible, this makes it far easier to see the data that the line is presenting.

    Personally the Du (Deflection unified) is the first thing I tend to look at as this gives a very quick indicator of whther the truss is overloaded and can be compared with the manufacturers load charts

    Another option is to use the Nx (or force normal) line as this will show the force acting on the truss at a given point
    Its also a good idea to adjust the inflence line scaling in the braceworks settings to make it easier to see the lines.

     

    Another option if you are using a hoist as a drop, is to look at its high hook weight equivalent field in the Hoist object properties, this will tell the load acting on the spreader truss at that point. This is a good option if the truss you are working with doesn't have a Braceworks cross section available in the database.

     

     

    because we mostly do shows in ballrooms, if we are doing spanner truss its probably connected directly to the truss below it and not using any drop down motors. i guess for the sake of running weights i could fake it and add a drop motor to get the weights and then put it back before sending it off for approval. 

  3. I got a 2 part question on dealing with linked text.

     

    i built a dialog that shows a symbol that has linked text on it using vs.CreateSymbolDisplayControl() i would like to fill out that linked text in the symbol thats being displayed in the dialog box. is that possible? 

     

    then after I'm done in the dialog, the plugin drops that symbol into the drawing and i want to be able to manipulate the linked text (sizing, style, etc)... is it possible to inset a symbol (with linked text) into a drawing, then dive into that symbol and get access to the text thats in it? 

  4. On 4/1/2023 at 11:53 PM, MullinRJ said:

    Hi @Jayme McColgan,

     

       The easiest way is to delete the first (0th) element N times. Your code is moving up the list as your list is shrinking, so yes, there will be residual entries left over.

     

    Try:

    for i in range(vs.GetChoiceCount(dialog1, 36)): 
          vs.RemoveChoice(dialog1, 36, 0)

     

    Raymond

     

    omg that worked... lol man that really should be a note on the VS reference page for vs.RemoveChoice() lol

    • Love 1
  5. hey everyone,

     

    I'm having some trouble in my dialog with populating a dropdown based on another dropdown. i can't figure out how to properly clear the list and repopulate it with the new data... it always seems to leave behind something from the previous list. i've tried various combination of vs.SelectChoice()vs.RemoveChoice(), and vs.AddChoice(). 

     

    here's my current iteration... 

     

    def Dialog_Handler4(item ,data):
      if item == 33:
        for i in range(vs.GetChoiceCount(dialog1, 36)):
        	vs.RemoveChoice(dialog1, 36, i)
    
        for j in range(len(formattted_labels[data][2])):
          vs.AddChoice(dialog1, 36, formattted_labels[data][2][j], j)

     

  6. heres another take on how i insert lighting devices for a stage wash plugin i built.... 

     

    def placelights():
      cur_lights = []
      vs.Symbol(symbolName, x, y, -22.5)
      last = vs.LNewObj()
      vs.Move3DObj(last, 0, 0, z_location - 3)
      vs.ResetObject(last)
      cur_lights.append(last)
      vs.DSelectAll()
    
      for i in range(len(cur_lights)):
        vs.DSelectAll()
        vs.SetSelect(cur_lights[i])
        vs.DoMenuTextByName('Convert To Instrument',0)

     

    although i didn't know vs.ApplyLightInfoRecord() existed at the time. lol 

  7. 4 minutes ago, Pat Stanford said:

    You didn't say you were trying to do this by script. 😉

     

    Take a look at SetDrawingRect and the inverse GetDrawingSizeRect and GetDrawingArea.

     

    HTH

     

    yeah i've been trying that but when i go to print the sizing is all messed up and based on the print paper size not but the size i set with SetDrawingRect()... i guess back to banging my head against the wall trying different ways. lol 

  8. after creating a new sheet layer, id like to change the paper size. normally this is done by Page Setup > Printer Setup > Paper Size. 

     

    ideally id like to select a custom paper size or create a custom paper size. anyway of doing this? 

     

     

  9. On 9/20/2020 at 7:39 PM, Mark Aceto said:

    Screenshot attached of WIP. I made the truss silver, and the mover clamps black, so detail could be visible with lights attached.

     

    I know VW engineering is working on the hoist bug but I narrowed it down to adding the pickup symbol. That's what causes the flipped (up) motor to bump up above the top of the chain to a Z height that's actually higher than the real Z / high hook height.

     

    Btw the file size is currently at 20M (including the roof system) with all caching disabled. Very happy about that. I could knock it down to 15MB if I purged everything I'm playing around with that isn't pictured.


    Very excited to share this!

     

    Screen Shot 2020-09-20 at 4.31.21 PM.png

    Screen Shot 2020-09-20 at 5.34.59 PM.png

    which rendering mode did you use for that? 

  10. hey yall,

     

    I'm gonna start here and might move this to the bracework forum if its better there... 

     

    an i attach a custom PIO to a truss system and have it carry weight? if so what do i need to add to my PIO for this to work? 

     

    and also can can i attach custom symbols to a truss system? you know when you hover over a truss and you get the red line and such.

  11. i was bored on a show so i decided to ask the ChatGPT from OpenAI to "build a python Vectorworks plugin that horizontally distributes all the selected items evenly" and this is what it spit out. interesting.  

     

    # Import the Vectorworks Python API
    import Vectorworks as vw
    
    # Import the VWObjects module
    from Vectorworks.VWObjects import *
    
    # Define the plug-in class
    class CExamplePlugin:
    
      # Called when the plug-in is loaded
      def Load(self):
        # Get the selected objects
        selectedObjects = vw.selection.GetAllObjects()
    
        # Calculate the total width of the selected objects
        totalWidth = 0
        for obj in selectedObjects:
          bounds = obj.GetBounds()
          totalWidth += bounds.GetRight() - bounds.GetLeft()
    
        # Calculate the space between the objects
        space = (totalWidth / len(selectedObjects)) - totalWidth
    
        # Distribute the objects horizontally
        for obj in selectedObjects:
          bounds = obj.GetBounds()
          obj.SetBounds(bounds.GetLeft() + space, bounds.GetTop(), bounds.GetRight() + space, bounds.GetBottom())
    
      # Called when the plug-in is unloaded
      def Unload(self):
        # Clean up resources here
        pass
    
    # Create an instance of the plug-in class
    plugIn = CExamplePlugin()

     

    • Like 4
×
×
  • Create New...