The Sagrotan/Dettol soap dispensers are very simple contraptions inside. In effect, a single cog determines how much soap is pulled/pushed by the moving piston. Originally, the cog moving the piston has a pin that is offset by 6mm, resulting in 12mm of stroke. I have designed alternative cogs that offer a reduced amount of stroke varying between the original spec down to 50%.
The quantity of soap should be proportional to the amount of stroke reduced, but is a little off. My experiments place it at 0.1g/mm at the original 12mm stroke (1.2g of soap), and around 0.075g/mm at 6mm stroke (0.45g). Depending on your soap density, this may be different, as the pump operates volumetrically.
The models are named according to the offset of the pin (in mm * 10), double it for the stroke length.
Print with supports. PLA is harder than ABS and PETG at room temperature, so I suggest using that.
The author marked this model as their own original creation.