Jump to content

Steven Morgan

Member
  • Posts

    75
  • Joined

  • Last visited

Everything posted by Steven Morgan

  1. I have a custom Node that I have inserted into hundreds of Marionette Objects. I want to be able to edit the node and have that automatically update in all of the Plug-In Objects. Currently when I edit the node in the Script Editor or an external editor I have to then go into that node in every object, open the script, save the script and then it updates. I see the code changes take place but they don't update until I re-save that script. Am I missing a step or is this not possible currently?
  2. Try converting the accessories to geometry instead of a symbol. I've noticed if I have 2 clamp symbols they will disappear on me.
  3. This is brilliant @MullinRJ, thanks as usual. Didn't even think about going to AddResourceToList route. Cheers
  4. Seems easy enough but having some trouble. I have some Symbol inside of Symbol Folders in my current file that I want to build into Resource Lists. MasterFile.VWX (Current open document) Symbol folder 1 Symbol folder 2 Symbol folder 3 I have List1:=BuildResourceList(16,0,'Symbol Folder 1',NumItems); I have tried using a negative value for the folder index as well. Currently it just lists every single Symbol in my file and not the specified sub-folder. I see some Remarks that say BuildResourceList doesn't have the ability to find Symbols inside of Symbol Folders (only top level) but it looks like that was resolved in VWX 2020. Am I missing something here? Was hoping to avoid having to use BuildResourceListN2 with separate files for each folder, which I do have working.
  5. It looks like you may have edited your 2D or 3D symbol and adjusted the X-axis of only one of them. Two options: 1) In your resource browser Edit the symbol's 2D and 3D geometry and make sure the origin points are set to the same coordinate. 2) Edit the 2D geometry, delete everything, right click in dead space and click "Generate 2D geometry from 3D" and it will trace your 3D geometry and now match.
  6. Firing this one back up. Have done some testing but can't seem to get it to work. Hoping to share Plugins via the Workgroup so that I can make plugin updates that automatically go out to my organization. Any trick to doing this? Adding them to my Workgroup folder they aren't visable when editing my Workspace
  7. @Arthur_Devillers better late than never. To have it see the truss inside of a Hanging Position you need to check the "Plug In Objects" box in the Criteria window.
  8. Oh man, didn't even think of that. Thanks so much. Screenshots for any other rookies out there in the future: VAR h:HANDLE; boolResult:BOOLEAN; cntrlX,cntrlY:REAL; BEGIN cntrlX:=pControlPoint01X; cntrlY:=pControlPoint01Y; RECT(0,0,50,50); PushAttrs; TextSize(9); { avoid accidental small text size rising the error "An incorrect object is described" } TextOrigin(cntrlX,cntrlY); CreateText('Text'); PopAttrs;
  9. Seems like an easy one but I can't seem to find the property to enable on this text. I have a custom PIO that spits out a box and some text, I want to be able to re-position the text, and perhaps have it generate a Leader Line to its text origin? Similar to how you can slide text around in Label Legends, Hang Position ,etc.
  10. Out of curiosity does anybody know how Production-Assist/Deersoft is making these UI windows? And generally what language/data exchange method they are using to drive all this? Wildly impressive. Sorry if it's a bit of an amateur question.
  11. No worries thanks Pat, copying out to a new file seems to fix it. I'll put in a bug report.
  12. File attached, for some reason the colors aren't changing on the 4'6" Stage Deck Height. It was working, sent the file back and forth with someone and then it was broke. Tried resetting all plugins, creating a new viz, even making a separate record that it references and still nothing. Any ideas? DATAVIZ-ISSUE.vwx
  13. Ah wasn't aware of that command. Works perfect. Example for anybody else: PROCEDURE makeExtrude2; BEGIN { 3D EXTRUDE } BeginXtrd(0,STR2NUM(sHeight)); { Create extruded case } Rect(0",0",STR2NUM(sLength),STR2NUM(sWidth)); EndXtrd; HdlExtrude:=LNewObj; { Store extrude to handle } { ADD TEXT } TextSize(2); TextJust(2); TextOrigin(0,0); BeginText; 'PID' EndText; HdlCasePID:=LNewObj; SetObjectVariableBoolean(HdlCasePID, 1160, False); EndSym; hdlSym:=LNewObj; END;
  14. I am trying to run a script that create an extrude with a bit of text on it that is ONLY a 3D Symbol and contains no 2D info. The extrude part is easy but I am not able to find a way to CreateText as 3D only. Is there anyway to do this? I've tried creating the text and doing a ResetOrientation3D; Rotate3D(0,0,0); Move3D(0,0,0); but it remains a hybrid 2d/3d symbol.
  15. You could draw a 2D arch and then do an Extrude Along Path with an I-Beam profile. Or use the "Structural Member" tool and then bend it with the Deform tool in the 3D Toolset
  16. I would also recommend AutoPlot which does this very easily. But using built in tools I would make the truss a Hanging Position and attach all the objects to it. You will then see the "Total Hung Weight" of the Hanging Position. From there you can run a report showing each hang position and its weight.
  17. Have you tried doing a Purge command on the file? Does it crash with other instruments?
  18. Is there a way to detect when a file is saved in an Event Based plugin? Looking to export a XML file anytime the document is saved. Or a DoMenuTextByName('Save',0) = TRUE then execute but I know that's not the correct syntax. Thanks!
  19. Absolutely brilliant answer @Jesse Cogswell, worked great. THank you
  20. I'm sure the answer is no, but is there anyway to have a PIO get the hanging position name that it is placed on? Exactly how Spotlight Instruments detect the Hanging Position they're attached to? My exact application is when a custom Truss Tag PIO is placed on a piece of truss I want it to auto fill its Position field.
  21. Try switching the Array Tool rendering mode from Hidden Line to Wireframe.
  22. Thanks Joshua, I'll give Eval a shot I hadn't come across that in the docs before, very new to this so I appreciate the help. For an overview the goal of the script is to: 1) Search all symbols in the Resource Manager that have attatched Record "LED" 2) Store all those Symbol Names to the Popup 3) The popup allows easily switching the symbol via the populated list Hopefully I'm going about it the right way currently.
  23. Thank you both so much this works great. I'm a little hung up on the function to filter out by Record Name. If I replace GetSymNameWithRec in the loop with GetNameFomResourceList directly it works for troubleshooting sake. I'm able to loop through all the Symbols and add their names into the Popup. I know I need to take the INT in to find the corresponding NameFromResource list, I'm just not sure how to add a "IF R IN['LED_TILE']" argument. Thanks again FUNCTION GetSymNameWithRec(i1:INTEGER):INTEGER; BEGIN { Filter Params } Symbol(((T=SYMBOL) & (R IN ['LED_Tile']))); { Currently works if used to replace function } GetNameFromResourceList(List1,i1); END; { ======== RUN SCRIPT ======== } BEGIN result:=GetCustomObjectInfo(objName,objHd,recHd,wallHd); vsoGetEventInfo(theEvent, theButton); CASE theEvent OF kObjOnInitXProperties: {OIP STARTS UP } BEGIN result:=SetObjPropVS(kObjXPropHasUIOverride,TRUE); {Enables OIP to be overriden} result:=SetObjPropVS(kWidgetButton,TRUE); {Enables buttons in the OIP} result:=vsoInsertAllParams; {Adds all 'non-hidden' params into the OIP} vsoWidgetPopupClear(1); List1:=BuildResourceList(16, 0, '', NumItems); I := 1; SymNam := GetSymNameWithRec(I); { user defined function } WHILE (SymNam <> '') DO BEGIN vsoWidgetPopupAdd(1, SymNam, SymNam); I := I + 1; SymNam := GetSymNameWithRec(I); END;
  24. Hello all, I am trying to gather all Symbol Names that have Record "x" attached to them in my file and store them to a Popup Menu in the OIP. I am a little stumped on the vsoWidgetPopupAdd that keeps throwing an error. Any ideas? result:=GetCustomObjectInfo(objName,objHd,recHd,wallHd); vsoGetEventInfo(theEvent, theButton); CASE theEvent OF kObjOnInitXProperties: {OIP STARTS UP } BEGIN result:=SetObjPropVS(kObjXPropHasUIOverride,TRUE); {Enables OIP to be overriden} result:=SetObjPropVS(kWidgetButton,TRUE); {Enables buttons in the OIP} result:=vsoInsertAllParams; {Adds all 'non-hidden' params into the OIP} result:=vsoInsertWidget(2,kWidgetPopup,kSeparator1ID,'Tile',0); result:=vsoWidgetPopupClear(2); result:=vsoInsertWidget(1,8,kSeparator1ID,'LED 2',0); result:=vsoWidgetPopupAdd(kSeparator1ID,0,'LED Tile 1');
×
×
  • Create New...