module threaded_insert( s = undef, d = undef, l = undef, gap = 0) { if( 3==s) threaded_insert( d = 4.6 , l = 4.6, gap = gap); else if( 4==s) threaded_insert( d = 6.3 , l = 6.35, gap = gap); else if( 5==s) threaded_insert( d = 7.1 , l = 9.5, gap = gap); else if( 6==s) threaded_insert( d = 8.7 , l = 12.7, gap = gap); else if( 8==s) threaded_insert( d = 10.24, l = 12.7, gap = gap); else { assert( is_undef(s), "Unknown size (expected 3 for M3, ...) or manual (d,l)."); assert( is_num(d), "Diameter d (numeric) or size expected."); assert( is_num(l), "Length l (numeric) or size expected."); cylinder( d = d+2*gap, h = l+2*gap); } }