scalar m=2[ kg ]; scalar l=1[ m ]; scalar r=1[ m ]; point point_B=point( r, 0 [ m ], 0 [ m ] ); point point2=point( -r, 0 [ m ], 0 [ m ] ); point point3=point( 0 [ m ], -r, 0 [ m ] ); line line1=circlePPP( point_B, point2, point3 ); scalar r_rel=0.001[ m ]; point point_A=pointCyl( -90[deg]-30[deg], r, 0 [ m ] ); point point_D=move( point_A, vectorPP( point_A, point_B ), 2*l ); gravity gravity1=parallel( reverse( projectY ) ); solid solid1=cylinder( point_A, point_D, r_rel, mass = m ); color color1=index( 9 ); body body1=body( color = color1, visible = show: ); set ground = body1; body body1 < ( line1, point_B ); line line2=polyLine( list( point_A, point_D ) ); body body2=body( color = RGB( 255, 153, 153 ) ); body body2 < ( point_A, point_D, solid1, line2 ); joint joint1=contactPointLine( point_A, line1, work = on: ); joint joint2=contactPointLine( point_B, line2 ); vector vector2=rotate( vectorPP( point_B, point_A ), projectZ, -90[ deg ] ); sensor phi=angleVV( reverse( projectX ), vectorPP( point_B, point_A ) ); sensor phi_theor=arccos((l+sqrt(l*l+32*r*r))/(8*r))*1[ rad ]; sensor Na=jointForce( force:, body2, point_A, vectorPP( point_A, point( 0 [ m ], 0 [ m ], 0 [ m ] ) ), joint1, fixing = lock: ); sensor Na_theor=m*9.81[m/s2]*tg(phi_theor); sensor Nb=jointForce( force:, body2, point_B, vector2, joint2 ); sensor Nb_theor=m*9.81[m/s2]*cos(2*phi_theor)/cos(phi_theor); sensor phi_delta=abs((phi_theor-phi)/phi_theor); sensor Na_delta=abs((Na_theor-Na)/Na_theor); sensor Nb_delta=abs((Nb_theor-Nb)/Nb_theor); /\/////////////////////////////////////////////////////////////////////////////////// /\ Единицы измерения; set units = SI;