@@ -41,9 +41,12 @@ const SubsystemRowInterface: React.FC<SubsystemRowProps> = ({ robot, driver, seq
4141 const [ force , setForce ] = useState < number > (
4242 ( ( driver as SliderDriver ) || ( driver as HingeDriver ) || ( driver as WheelDriver ) ) . maxForce
4343 )
44+ const [ unstickForce , setUnstickForce ] = useState < number > (
45+ PreferencesSystem . getRobotPreferences ( robot . assemblyName ) . unstickForce
46+ )
4447
4548 const onChange = useCallback (
46- ( vel : number , force : number ) => {
49+ ( vel : number , force : number , unstick : number ) => {
4750 if ( driver instanceof WheelDriver ) {
4851 const wheelDrivers = robot ?. mechanism
4952 ? World . simulationSystem
@@ -81,6 +84,7 @@ const SubsystemRowInterface: React.FC<SubsystemRowProps> = ({ robot, driver, seq
8184 ; ( ( driver as SliderDriver ) || ( driver as HingeDriver ) ) . maxForce = force
8285 }
8386
87+ PreferencesSystem . getRobotPreferences ( robot . assemblyName ) . unstickForce = unstick
8488 PreferencesSystem . savePreferences ( )
8589 } ,
8690 [ driver , robot . mechanism , robot . assemblyName ]
@@ -101,7 +105,7 @@ const SubsystemRowInterface: React.FC<SubsystemRowProps> = ({ robot, driver, seq
101105 format = { { minimumFractionDigits : 2 , maximumFractionDigits : 2 } }
102106 onChange = { ( _ , velocity : number | number [ ] ) => {
103107 setVelocity ( velocity as number )
104- onChange ( velocity as number , force )
108+ onChange ( velocity as number , force , unstickForce )
105109 } }
106110 step = { 0.01 }
107111 />
@@ -115,7 +119,7 @@ const SubsystemRowInterface: React.FC<SubsystemRowProps> = ({ robot, driver, seq
115119 format = { { minimumFractionDigits : 2 , maximumFractionDigits : 2 } }
116120 onChange = { ( _ , force : number | number [ ] ) => {
117121 setForce ( force as number )
118- onChange ( velocity , force as number )
122+ onChange ( velocity , force as number , unstickForce )
119123 } }
120124 step = { 0.01 }
121125 />
@@ -130,6 +134,17 @@ const SubsystemRowInterface: React.FC<SubsystemRowProps> = ({ robot, driver, seq
130134 } }
131135 />
132136 ) }
137+ < Slider
138+ min = { 0 }
139+ max = { 15000 }
140+ value = { unstickForce }
141+ label = "Unstick Force"
142+ onChange = { ( _ , value : number | number [ ] ) => {
143+ setUnstickForce ( value as number )
144+ onChange ( velocity , force , value as number )
145+ } }
146+ step = { 100 }
147+ />
133148 </ Stack >
134149 </ Box >
135150 < SectionDivider />
0 commit comments