A two-step optimization for crankshaft counterweights | Synapse