Help Needed to create the Mechanism

73 views
Skip to first unread message

Siddharth L

unread,
Sep 29, 2025, 10:03:53 AM (yesterday) Sep 29
to ProjectChrono

I want to model a mechanism (see attached image) with the following setup:

  • Body 1 and Body 2 are in contact, and Body 3 is an arm connected to the mechanism.

  • I want to pull the end of Body 3 at a constant speed of 30 mm/s.

  • While pulling, I need to track the force (magnitude and direction) at the pulling point until Body 1 and Body 2 slip relative to each other.

  • A constant 100 N force is applied to Body 1, trying to rotate it counterclockwise (CCW).

Could you guide me on how to create the basic shapes for these bodies in PyChrono and how to simulate this pulling motion and measure the reaction force?


mech.png


Dan Negrut

unread,
Sep 29, 2025, 5:36:19 PM (18 hours ago) Sep 29
to Siddharth L, ProjectChrono

A good start would probably be to use the Solidworks to PyChrono pipeline.

Not that you have to, but it could give you a jump start.

Dan

---------------------------------------------

Bernard A. and Frances M. Weideman Professor

NVIDIA CUDA Fellow

Department of Mechanical Engineering

Department of Computer Science

University of Wisconsin - Madison

4150ME, 1513 University Avenue

Madison, WI 53706-1572

608 772 0914

http://sbel.wisc.edu/

http://projectchrono.org/

---------------------------------------------

 

--
You received this message because you are subscribed to the Google Groups "ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email to projectchron...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/projectchrono/52f2d3e4-42f7-42c7-beb5-5e42c7b30d40n%40googlegroups.com.

Siddharth L

unread,
2:29 AM (9 hours ago) 2:29 AM
to ProjectChrono

Dear Sir,

I currently do not have access to SolidWorks. My present goal is to generate a basic planar mechanism, and I would appreciate your guidance on the best approach to start.

For example, if I need to create one body composed of three basic shapes, should I model it as three separate bodies or use the VisualShape method? Similarly, for linkages, would it be better to use EasyBox or LinkSegment?

Could you kindly provide a quick overview of the most suitable methods or components to use for this purpose? I would like to try implementing an initial-level code based on your suggestions.

Thank you for your time and support.

Siddharth L

unread,
7:11 AM (4 hours ago) 7:11 AM
to ProjectChrono

I’m working on a design optimization algorithm.
I don’t have any CAD geometry — instead, I want to generate 2D planar mechanisms using basic shapes such as circles, lines, and arcs (optionally with thickness). I don’t intend to create any full CAD models.

I need to check whether the mechanism works as expected when an external force is applied at a point. The simulation should run without considering the body’s own inertia or gravity — I only want to account for the moment generated by the external force and contact friction.

I plan to create the shapes in PyChrono programmatically, using parameters such as points, arm length, and circle radius.

alvaro diaz

unread,
10:52 AM (22 minutes ago) 10:52 AM
to ProjectChrono
Hello! I am not a developer but hopefully I can help to get you started. 

1- If you are interested in the mechanism motion and not any deformation (FEA), you don't need any shape or geometry. You can work with the CGs of each body and the location of the joints (roughly).

2- You can work with the mechanism out of the gravity and plane and therefore set "g" to zero. However, you need the bodies mass (for displacement DOFs) and Inertia (Rotation DOFs). There can be coupling but rule of thumb that works. PyChrono sets default values for mass and inertia to 1. 

3- Your model has six bodies unless the angles where you have the rotation arrows are fixed. If these angles are not fixed, each circular arrow is a REVOLUT constraint, the Yellow ball is a PRISMATIC constraint, and the blue ball is also a PRISMATIC constraint if the surface is planar, good first approximation, or a CONTACT if not, which can be more involved. My recommendation is that you start with PRISMATIC and get the model to run and then you change to contact. Note: I am assuming that the balls are fixed with the bar. 

4- Apply a body load to body 1, where if the load is always to the right, specify that the load_vector is global (local_load=False).

5- Apply a motor to set an angular speed or translational speed to whatever value (30mm/s in your case). 

6- How to measure your reaction force: no idea there on how to specifically access it from Chrono. If you were to model it yourself is basically the Lagrange multiplier associated to the velocity constraint. 

7- Set your simulation to run until there is no contact or until you reach the limit of the prismatic constrain for the approximated approach (use 99% of the limit to be safe).

8- Comments on optimization: assuming parametric optimization, you can modify the lengths, mass, Inertia and CG locations which is roughly a combination of density and geometric properties. I am assuming you'll use some gradient free optimization as computing sensitivities here is not possible with the current state of the code (as far as I know). You don't have a lot of design variables so probably genetic algorithms work just fine.

Hope that helps

Reply all
Reply to author
Forward
0 new messages