Hello Siddharth, I am bit confused because you don't want to use a mesh but you don't want to use basic geometry. I guess you can use ChVisualShapeLine / ChVisualShapeSegment and ChVisualShapeLineStrip / ChVisualShapePolyline although I haven't used those myself.
My recommended approach is to use prismatic joints instead of contacts to begin with, and once you have the model running change both prismatic joints to contacts or just one of them depending on your mechanism i guess. It sounds to me that you want to learn pyChrono while doing this project. If that is the case subdivide into simpler steps: 1 - Solve problem without contacts (use prismatic joints instead) and without geometry (use CGs and sliding planes for the prismatic joints). This will setup your revolut joints, springs and forces. 2 - Update one to include your geometries. This gets you a nicer visualization. 3- Update prismatic joints to contacts. Then you would have your desired goal. Note: you may have to add preloading for the torsion springs if you want to assist the motion. Hope it helps El martes, 30 de septiembre de 2025 a las 12:24:29 UTC-6, [email protected] escribió: > Hi Alvaro, > > I’m not an MBD specialist, so I’d appreciate your advice. > > I need to model a system *without detailed body shapes*, but I still need > to handle *collision/contact* and detect *slippage*. > > - > > *Body 1* is always trying to rotate *CCW* due to a constant *100 N > load*, but its motion is resisted by *Body 2*. > - > > A *linear pull* is applied to *Body 3*; this force is transferred to *Body > 2*, causing Body 2 to try to rotate *CCW*. > - > > During this continuous pull, I need to track the *force in the pulling > direction* up to the moment when *slip occurs between Body 1 and Body > 2*. > - > > *Body 1* has a *torsional spring (CCW)* that helps it rotate CCW more > easily. > - > > *Body 2* has a *torsional spring (CW)* that keeps it in its initial > position after slippage occurs. > > How can I model this kind of force transfer and slip detection *without > using basic geometry*? > Any guidance or recommended approach would really help me kick-start this > project. > Thank You > > Regards, > SIDDHARTH L > > > On Tuesday, 30 September 2025 at 8:22:45 pm UTC+5:30 [email protected] > wrote: > >> 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/0173d398-5a4c-4bab-9814-2558ae4a52b2n%40googlegroups.com.
