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 El martes, 30 de septiembre de 2025 a las 5:11:07 UTC-6, [email protected] escribió: > 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. > On Tuesday, 30 September 2025 at 11:59:59 am UTC+5:30 Siddharth L wrote: > >> 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. >> On Tuesday, 30 September 2025 at 3:06:19 am UTC+5:30 Dan Negrut wrote: >> >>> 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 <(608)%20772-0914> >>> >>> http://sbel.wisc.edu/ >>> >>> http://projectchrono.org/ >>> >>> --------------------------------------------- >>> >>> >>> >>> *From:* [email protected] <[email protected]> *On >>> Behalf Of *Siddharth L >>> *Sent:* Monday, September 29, 2025 7:22 AM >>> *To:* ProjectChrono <[email protected]> >>> *Subject:* [chrono] Help Needed to create the Mechanism >>> >>> >>> >>> 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*? >>> >>> >>> >>> >>> -- >>> 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 [email protected]. >>> To view this discussion visit >>> https://groups.google.com/d/msgid/projectchrono/52f2d3e4-42f7-42c7-beb5-5e42c7b30d40n%40googlegroups.com >>> >>> <https://urldefense.com/v3/__https:/groups.google.com/d/msgid/projectchrono/52f2d3e4-42f7-42c7-beb5-5e42c7b30d40n*40googlegroups.com?utm_medium=email&utm_source=footer__;JQ!!Mak6IKo!KyCQHUEKrTdDDkGXfCVvr8AhY2nZIovjo0DEy4dwkIK18o0Dw7IFkmv3QmbgwP39p-O0VjI12BAwwOIGWrY8-w$> >>> . >>> >> -- 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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/projectchrono/f73aba5b-b71f-4e0f-8edd-2f56237e5badn%40googlegroups.com.
