It should be possible, but not simple.
Youāll need to model the cylinder and plunger of the struts separately. Cylinder as a subcomponent of the frame and plunger as a subcomponent of the door.
Component heirarchy:
Top Level: Frame
Frame has 2 subcomponents: Cylinder and Door.
Door has 1 subcomponents: Plunger
This is just 1 side. You can probably have the gas strut pieces as components with āCOPIES=1ā with COPY=1 having a horizontal offset AND a 180 degree rotation about the axis of the strut.
Tricky things:
Component Axis Placement
Keeping cylinders and plungers coaxial throughout the movement.
While Iām not going to do this fully to confirm all of this, a few things come to mind:
Do the struts FIRST as a single component, with subcomponents for the cylinder and the strut. This will allow you to easily create them as coaxial. THEN, once you are confident.
Model the frame and the door - with the door as a subcomponent of the frame.
Position the strut correctly.
Using the Outliner, move the cylinder (which is now a subcomponent of the strut) to become a subcomponent of the Frame, and move the plunger (still a subcomponent of the strut) to become a subcomponent of the Door. Strut component should now be empty - delete it!
THINK ABOUT YOUR COMPENENT AXES AGAIN! One axis needs to be the along the center of the cylinder/plunger (for the the rotation needs for COPY=0 vs COPY=1), Another axis needs to be placed to rotate correctly as the door moves.
Create a custom DC attribute in the outermost component for the open angle of the door. THIS is what will be animated.
Rotation of the cylinder will be computed - with a lot of trigonometry - as a function of the open angle āparent!door_angleā, as will the rotation of the door in relation to the frame. Rotation of the plunger will be computer - with a lot of trigonometry - as a function (again with a lot of trigonometry) of the door open angle of the door - but in relation to the door, not the frame!
The result will let you design an āonclickā action of one of the āanimateā functions when any part is clicked. If you want it to work only when the door is clicked, then the strut cylinder will have to become a sub-component of the door, not the entire trailer - and force you to add computations for the the position of axis origin of the cylinder.
See what I mean by not simple?
And I make to claim to have, in the brief time Iāve written this, covered all the details that might rear their ugly heads!
On re-reading the above before posting, one possible simplification occurs to me. If struts exists where each end is a loop rotating about a pin, then the rotation of the strut pieces when calculation COPY=0 vs COPY = 1 goes away - if you use that style of gas strut!