scalar c=500[N/m]; scalar s=0.2[ m ]; scalar l "Расстояние от 'point2' до 'point4'"=0.6[ m ]; scalar m=5[ kg ]; scalar alpha=30[ deg ]; vector vector1=rotate( projectX, projectZ, 90[ deg ]-alpha ); plane plane1=planePV( point( 0 [ m ], 0 [ m ], 0 [ m ] ), vector1, l1 = 3 [ m ], l2 = 1 [ m ] ); point point1=point( 0 [ m ], 0 [ m ], 0 [ m ] ); point point2=move( point1, vector1, 15[cm] ); vector vector2=vectorToPlane( projectX, vector1 ); point point3=move( point2, vector2, 0.75[ m ] ); node node2=nodeYX( point3, vector1, vector2 ); color color1=index( 18 ); solid solid3=box( node2, 30[ cm ], 30[ cm ], 30[ cm ], mass = m, color = color1 ); point point4=move( point3, reverse( vector2 ), 0.15[ m ] ); body body1=body( color = RGB( 229, 229, 229 ) ); set ground = body1; body body1 < ( point2, plane1 ); body body2=body( color = RGB( 229, 229, 229 ) ); body body2 < ( solid3, point4 ); force force1=spring( body1, point2, body2, point4, c, s0 = l+s, work = on: ); gravity gravity1=parallel( reverse( projectY ) ); point point6=move( point3, reverse( vector1 ), 0.15[ m ] ); joint joint2=translational( body1, body2, point6, vector2, work = on: ); sensor vel=transVelocity( body1, vector2, body2, point4, fixingVector = lockVector: ); sensor dist=bodyDisplacement( body1, point2, vector2, body2, point4 ); sensor max_dist=max( dist ); reform stop=stop( ); event event1=reformsBySensor( list( stop ), dist, l+s, ratio = single:, work = on: ); sensor v_theor=sqrt((2*9.81[m/s2]*sin(alpha)+c*s/m)*s); sensor l_theor=s+2*m*9.81[m/s2]*sin(alpha)/c+l+s; sensor v_delta=abs((v_theor-vel)/v_theor); sensor l_delta=abs((l_theor-max_dist)/l_theor); /\/////////////////////////////////////////////////////////////////////////////////// /\ Единицы измерения; set units = SI;