Jump to content
Developer Wiki and Function Reference Links ×

Truss Analysis and Equipment Subparts

Recommended Posts

hey! I'm slithering over from the Python forms as I'm having some trouble getting Truss Analysis to work correctly with my plugin and it seems no one in the python forms is doing much with it. there doesn't seem to be a lot of documentation on it... 


I'm unsure when I should be init the various parts of it. I'm assuming that the things below need to be set up during the "kObjOnInitXProperties" event?

vs.DLDSetLoadDataString(kDLDSelectorGroupName, "Video")
vs.DLDSetLoadDataString(kDLDSelectorLoadID, "LED Screen")
vs.DLDSetLoadDataString(kDLDSelectorPrmWeight, "0 lb")
vs.DLDSetLoadDataString(kDLDSelPrmTotalDistWght, "0 lb/ft")
vs.DLDSetLoadDataReal(kDLDTypeDestributedLoad, vs.OLDMassDistStrToReal(f"{0} lb")[1])


and the code below needs to be set during the "kResetEventID" event? 

test = vs.OLDMassDistStrToReal(f"{wallweight/wphy}lb/ft")[1]
test2 = vs.OLDMassRealToStr(wallweight)[1]
vs.OLDSetLoadDataReal(PIO_handle, 5, test, 0)
vs.OLDSetLoadDataReal(PIO_handle, 8, test2, 0)
vs.OLDSetLoadDataReal(PIO_handle, 9, test2, 0)


things don't seem right after I do that. some guidance would be helpful. 


also are there any endpoints outside the SDK for using the Equipment Subparts feature that some of the built-in VW tools use? 

Link to comment

Hello @Jayme McColgan,

    I know less about this than you, but I am using the following line in my ResetEvent:


vs.OLDAddLoadHangPoint(PIOHand, 0, InsP, FALSE);

where InsPt is the PIO insertion point. Unless told otherwise, I believe FALSE declares it as a Point Load, and TRUE declares it as a Distributed Load.


I doubt it will solve what ails you, but it is one more piece to an undefined puzzle.


Any documentation, or usage examples, from the Mother Ship would be immensely appreciated.




Link to comment

ok after a few hours of banging my head against the wall... PROGRESS. lol 


I'm adding this to the init event:

vs.DLDSetLoadDataString(kDLDSelectorGroupName, "Audio")
vs.DLDSetLoadDataString(kDLDSelectorLoadName, "Speaker Array")


I added this during the AddState (44) event (I think that's the right one):



and I'm adding this during the Reset event

### mass is 454 grams to 1 pound
vs.OLDClearHangPtsPath(PIO_handle, 0) ### not sure if this is needed
vs.OLDAddLoadHangPoint(PIO_handle, 0, 0,0,0, True) ### should this be a (0,0,0)?
vs.OLDSetLoadDataBool(PIO_handle, kDLDSelectorInclude, True, 0)
vs.OLDSetLoadDataReal(PIO_handle, kDLDSelectorWeight, vs.OLDMassStrToReal(f"{totalweight}lb")[1], 0)


doing this seems to work pretty well. braceworks runs correctly (I think). I'm unable to connect a motor directly to my PIO. still working on that.


all that being said this is only working on a single-point object... what's the workflow for adding weight to a distributed object? would it be vs.OLDAddLoadHangPoint() in a loop down the length of my object?


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.

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