Maybe you could make a little cam-lock utilising friction. It wouldbe designed to drag over the surface of the part in onedirection but stop it in the other. There may be a little backlashin the system but I'm not too sure.
Post your assembly and screen capture here let's take a look.
I've attached an image of the assembly. It's a bitcomplicated so to make it easier to understand I will post asimplified assembly hopefully in a day or so. I don't have alot of experience on forums, so if the image doesn't come throughlet me know. And thanks for your help! I had aboutgiven up.
Attached (I hope) is a zipped folder of the assembly. Ok,the way this works is. The top of this assembly connects to ahousing that is pressurized up to 5000 psi. The water goesthrough the eight holes in 24101 and pushes the rotator hub RD-0174down 2 inches. The upper clutch 26379 keeps the rotatorhub from rotating clockwise viewed from top, forcing the splinedroller clutch RD-0177 to rotate counter-clockwise. When thewater pressure is released, the nitrogen spring at the bottom 10731pushes the rotator hub back up. The splined roller clutch hassmall rollers in the wedge shaped slots that engage and force therotator hub, drill actuation shaft 24103 and drill switching arm24099 to rotate counter-clockwise 90 degrees. The rotatorindexing pins RD-0175 contacts the inside land of the indexing ringRD-0196 ensuring that the assembly can only rotate 90 degrees.
The best way to simulate movement in just one direction for arevolute joint is to define an action/reaction torque between theparts connected.
What you do is work with some of the function expressioncapabilities of COSMOSMotion to measure the direction of rotation(using angular velocity) and then when the rotation is in adirection where it should transmit torque, you apply a functionthat prevents rotation.
You can use the built in IMPACT function to do this or write yourown force function. It can be quite detailed in adjusting thesensitivity of the torque (ie how quickly it stops rotation in theopposite direction).
COSMOSMotion uses coordinate frames to define theposition/orientation of all entities (Parts, joints, forces). Youcan measure a wide array of results at these positions while thesimulation is running and use them as a means of adjusting aforce
Let's assume that a positive rotation is permitted for the clutch,but a negative rotation will lock the components together (ie theclutch engages). If we measure the angular velocity WZ(I,J,J),where I is the outer rotating part and J is the inner portion ofthe clutch, then we just need to write a function that only appliesa force to stop rotation when WZ is negative.
I,J,J means measuring relative angular velocity of I with respectto J and in the J coordinate system (not the global coordinatesystem)
Let's use an IF condition. Refer to the COSMOSMotion online helpfor more background on these functions The If condition has 3conditions. When the function <0, =0, >0. In our case we canuse the angular velocity for our condition. IF(WZ(I,J,J): Applytorque to stop rotation, do nothing do nothing)
So only when WZ<0 will a force apply.
The force function needs to apply more force, the greater thenegative velocity. We can use a step function to make this areasonable gradual force, but with an upper limit on how muchtorque can be be transmitted by the clutch
So try a step function like: STEP (WZ(I,J,J), -.1, -10000,0,0)
This will ramp up a torque from zero at zero rads/sec to -10000 N.m(or whatever the current units are) at -0.1 rad/sec
You can obviously change the velocity threshold or the max torqueto suit your needs (or add a more complex torque expression).
This is a topic that is covered in the training material to someextent if you have an opportunity to take a training class.
I hope this helps give you some idea of a technique you can use torestrict motion based on some condition. This is one of manyapplications using function expressions.