User Tools

Site Tools


workshop:metalworking:lathe:star300

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
workshop:metalworking:lathe:star300 [2021/06/07 22:39] yentworkshop:metalworking:lathe:star300 [2024/01/12 08:33] (current) yent
Line 1: Line 1:
 +====== Star 300 lathe ======
  
 +Documentation : {{:workshop:metalworking:lathe:socomo_star_300.pdf}}
 +
 +===== Pitch settings finder =====
 +
 +<html>
 +<script type="text/javascript">
 +    document.addEventListener("DOMContentLoaded", function(event) {
 +        var gear_combinations = {
 +            '33/xx/66': 33/66,
 +            '33/xx/78': 33/78,
 +            '33/xx/84': 33/84,
 +            '33/xx/90': 33/90,
 +            '35/xx/66': 35/66,
 +            '35/xx/78': 35/78,
 +            '35/xx/84': 35/84,
 +            '35/xx/90': 35/90,
 +            '42/xx/66': 42/66,
 +            '42/xx/78': 42/78,
 +            '42/xx/84': 42/84,
 +            '42/xx/90': 42/90,
 +            '48/xx/66': 48/66,
 +            '48/xx/78': 48/78,
 +            '48/xx/84': 48/84,
 +            '48/xx/90': 48/90,
 +            '66/xx/33': 66/33,
 +            '66/xx/35': 66/35,
 +            '66/xx/42': 66/42,
 +            '66/xx/48': 66/48,
 +            '66/xx/78': 66/78,
 +            '66/xx/84': 66/84,
 +            '66/xx/90': 66/90,
 +            
 +            '33/78/66/84': 33/78 * 66/84,
 +            '33/78/66/90': 33/78 * 66/90,
 +            '33/78/84/66': 33/78 * 84/66,
 +            '33/78/84/90': 33/78 * 84/90,
 +            '33/84/48/90': 33/84 * 48/90,
 +            '33/84/66/78': 33/84 * 66/78,
 +            '33/84/66/90': 33/84 * 66/90,
 +            '33/84/78/66': 33/84 * 78/66,
 +            '33/84/78/90': 33/84 * 78/90,
 +            '33/84/90/48': 33/84 * 90/48,
 +            '33/84/90/66': 33/84 * 90/66,
 +            '33/84/90/78': 33/84 * 90/78,
 +            '33/90/48/84': 33/90 * 48/84,
 +            '33/90/66/78': 33/90 * 66/78,
 +            '33/90/66/84': 33/90 * 66/84,
 +            '33/90/78/66': 33/90 * 78/66,
 +            '33/90/78/84': 33/90 * 78/84,
 +            '33/90/84/48': 33/90 * 84/48,
 +            '33/90/84/66': 33/90 * 84/66,
 +            '33/90/84/78': 33/90 * 84/78,
 +            '35/78/66/84': 35/78 * 66/84,
 +            '35/78/66/90': 35/78 * 66/90,
 +            '35/78/84/66': 35/78 * 84/66,
 +            '35/78/84/90': 35/78 * 84/90,
 +            '35/84/48/90': 35/84 * 48/90,
 +            '35/84/66/78': 35/84 * 66/78,
 +            '35/84/66/90': 35/84 * 66/90,
 +            '35/84/78/66': 35/84 * 78/66,
 +            '35/84/78/90': 35/84 * 78/90,
 +            '35/84/90/48': 35/84 * 90/48,
 +            '35/84/90/66': 35/84 * 90/66,
 +            '35/84/90/78': 35/84 * 90/78,
 +            '35/90/48/84': 35/90 * 48/84,
 +            '35/90/66/78': 35/90 * 66/78,
 +            '35/90/66/84': 35/90 * 66/84,
 +            '35/90/78/66': 35/90 * 78/66,
 +            '35/90/78/84': 35/90 * 78/84,
 +            '35/90/84/48': 35/90 * 84/48,
 +            '35/90/84/66': 35/90 * 84/66,
 +            '35/90/84/78': 35/90 * 84/78,
 +            '42/66/78/84': 42/66 * 78/84,
 +            '42/66/78/90': 42/66 * 78/90,
 +            '42/66/84/78': 42/66 * 84/78,
 +            '42/66/84/90': 42/66 * 84/90,
 +            '42/78/48/90': 42/78 * 48/90,
 +            '42/78/66/84': 42/78 * 66/84,
 +            '42/78/66/90': 42/78 * 66/90,
 +            '42/78/84/66': 42/78 * 84/66,
 +            '42/78/84/90': 42/78 * 84/90,
 +            '42/78/90/48': 42/78 * 90/48,
 +            '42/78/90/66': 42/78 * 90/66,
 +            '42/78/90/84': 42/78 * 90/84,
 +            '42/84/48/90': 42/84 * 48/90,
 +            '42/84/66/78': 42/84 * 66/78,
 +            '42/84/66/90': 42/84 * 66/90,
 +            '42/84/78/66': 42/84 * 78/66,
 +            '42/84/78/90': 42/84 * 78/90,
 +            '42/84/90/48': 42/84 * 90/48,
 +            '42/84/90/66': 42/84 * 90/66,
 +            '42/84/90/78': 42/84 * 90/78,
 +            '42/90/48/78': 42/90 * 48/78,
 +            '42/90/48/84': 42/90 * 48/84,
 +            '42/90/66/78': 42/90 * 66/78,
 +            '42/90/66/84': 42/90 * 66/84,
 +            '42/90/78/48': 42/90 * 78/48,
 +            '42/90/78/66': 42/90 * 78/66,
 +            '42/90/78/84': 42/90 * 78/84,
 +            '42/90/84/48': 42/90 * 84/48,
 +            '42/90/84/66': 42/90 * 84/66,
 +            '42/90/84/78': 42/90 * 84/78,
 +            '48/66/78/84': 48/66 * 78/84,
 +            '48/66/78/90': 48/66 * 78/90,
 +            '48/66/84/78': 48/66 * 84/78,
 +            '48/66/84/90': 48/66 * 84/90,
 +            '48/66/90/78': 48/66 * 90/78,
 +            '48/66/90/84': 48/66 * 90/84,
 +            '48/78/42/90': 48/78 * 42/90,
 +            '48/78/66/84': 48/78 * 66/84,
 +            '48/78/66/90': 48/78 * 66/90,
 +            '48/78/84/66': 48/78 * 84/66,
 +            '48/78/84/90': 48/78 * 84/90,
 +            '48/78/90/42': 48/78 * 90/42,
 +            '48/78/90/66': 48/78 * 90/66,
 +            '48/78/90/84': 48/78 * 90/84,
 +            '48/84/33/90': 48/84 * 33/90,
 +            '48/84/35/90': 48/84 * 35/90,
 +            '48/84/42/90': 48/84 * 42/90,
 +            '48/84/66/78': 48/84 * 66/78,
 +            '48/84/66/90': 48/84 * 66/90,
 +            '48/84/78/66': 48/84 * 78/66,
 +            '48/84/78/90': 48/84 * 78/90,
 +            '48/84/90/33': 48/84 * 90/33,
 +            '48/84/90/35': 48/84 * 90/35,
 +            '48/84/90/42': 48/84 * 90/42,
 +            '48/84/90/66': 48/84 * 90/66,
 +            '48/84/90/78': 48/84 * 90/78,
 +            '48/90/33/84': 48/90 * 33/84,
 +            '48/90/35/84': 48/90 * 35/84,
 +            '48/90/42/78': 48/90 * 42/78,
 +            '48/90/42/84': 48/90 * 42/84,
 +            '48/90/66/78': 48/90 * 66/78,
 +            '48/90/66/84': 48/90 * 66/84,
 +            '48/90/78/42': 48/90 * 78/42,
 +            '48/90/78/66': 48/90 * 78/66,
 +            '48/90/78/84': 48/90 * 78/84,
 +            '48/90/84/33': 48/90 * 84/33,
 +            '48/90/84/35': 48/90 * 84/35,
 +            '48/90/84/42': 48/90 * 84/42,
 +            '48/90/84/66': 48/90 * 84/66,
 +            '48/90/84/78': 48/90 * 84/78,
 +            '66/42/78/84': 66/42 * 78/84,
 +            '66/42/78/90': 66/42 * 78/90,
 +            '66/42/84/78': 66/42 * 84/78,
 +            '66/42/84/90': 66/42 * 84/90,
 +            '66/48/78/84': 66/48 * 78/84,
 +            '66/48/78/90': 66/48 * 78/90,
 +            '66/48/84/78': 66/48 * 84/78,
 +            '66/48/84/90': 66/48 * 84/90,
 +            '66/48/90/78': 66/48 * 90/78,
 +            '66/48/90/84': 66/48 * 90/84,
 +            '66/78/33/84': 66/78 * 33/84,
 +            '66/78/33/90': 66/78 * 33/90,
 +            '66/78/35/84': 66/78 * 35/84,
 +            '66/78/35/90': 66/78 * 35/90,
 +            '66/78/42/84': 66/78 * 42/84,
 +            '66/78/42/90': 66/78 * 42/90,
 +            '66/78/48/84': 66/78 * 48/84,
 +            '66/78/48/90': 66/78 * 48/90,
 +            '66/78/84/33': 66/78 * 84/33,
 +            '66/78/84/35': 66/78 * 84/35,
 +            '66/78/84/42': 66/78 * 84/42,
 +            '66/78/84/48': 66/78 * 84/48,
 +            '66/78/84/90': 66/78 * 84/90,
 +            '66/78/90/33': 66/78 * 90/33,
 +            '66/78/90/35': 66/78 * 90/35,
 +            '66/78/90/42': 66/78 * 90/42,
 +            '66/78/90/48': 66/78 * 90/48,
 +            '66/78/90/84': 66/78 * 90/84,
 +            '66/84/33/78': 66/84 * 33/78,
 +            '66/84/33/90': 66/84 * 33/90,
 +            '66/84/35/78': 66/84 * 35/78,
 +            '66/84/35/90': 66/84 * 35/90,
 +            '66/84/42/78': 66/84 * 42/78,
 +            '66/84/42/90': 66/84 * 42/90,
 +            '66/84/48/78': 66/84 * 48/78,
 +            '66/84/48/90': 66/84 * 48/90,
 +            '66/84/78/33': 66/84 * 78/33,
 +            '66/84/78/35': 66/84 * 78/35,
 +            '66/84/78/42': 66/84 * 78/42,
 +            '66/84/78/48': 66/84 * 78/48,
 +            '66/84/78/90': 66/84 * 78/90,
 +            '66/84/90/33': 66/84 * 90/33,
 +            '66/84/90/35': 66/84 * 90/35,
 +            '66/84/90/42': 66/84 * 90/42,
 +            '66/84/90/48': 66/84 * 90/48,
 +            '66/84/90/78': 66/84 * 90/78,
 +            '66/90/33/84': 66/90 * 33/84,
 +            '66/90/35/84': 66/90 * 35/84,
 +            '66/90/42/78': 66/90 * 42/78,
 +            '66/90/42/84': 66/90 * 42/84,
 +            '66/90/48/78': 66/90 * 48/78,
 +            '66/90/48/84': 66/90 * 48/84,
 +            '66/90/78/42': 66/90 * 78/42,
 +            '66/90/78/48': 66/90 * 78/48,
 +            '66/90/78/84': 66/90 * 78/84,
 +            '66/90/84/33': 66/90 * 84/33,
 +            '66/90/84/35': 66/90 * 84/35,
 +            '66/90/84/42': 66/90 * 84/42,
 +            '66/90/84/48': 66/90 * 84/48,
 +            '66/90/84/78': 66/90 * 84/78
 +        };
 +
 +        var levers = [
 +            {'M': 52/40, 'W': 44/48, 'X': 39/52},
 +            {'I': 30/60, 'II': 45/45, 'III': 60/30},
 +            {'a': 21/40, 'b': 33/55, 'c': 39/52},
 +            {'1': 30/60, '2': 39/52, '3': 40/48}
 +        ];
 +
 +        var selectors = [gear_combinations].concat(levers);
 +
 +        var combine = function(sets) {
 +            var selset = sets.shift();
 +            
 +            var cbn = [];
 +            if(sets.length) {
 +                var sub = combine(sets);
 +                for(var k in selset)
 +                    for(var i=0; i<sub.length; i++)
 +                        cbn.push({name: k + ' ' + sub[i].name, pitch: selset[k] * sub[i].pitch});
 +                
 +            } else {
 +                for(var k in selset)
 +                    cbn.push({name: k, pitch: selset[k] * (40/39) * 6});
 +            }
 +            
 +            return cbn;
 +        };
 +
 +        var combinations = combine(selectors);
 +        combinations.sort(function(a, b) {
 +            if(a.pitch > b.pitch) return 1;
 +            if(a.pitch < b.pitch) return -1;
 +            return 0;
 +        });
 +        for(var i=0; i<combinations.length; i++) {
 +            combinations[i].name = combinations[i].name.replace(/([MWXabc])\s+/g, '$1');
 +            combinations[i].pitch = combinations[i].pitch.toFixed(4);
 +        }
 +
 +        var lookup = function(pitch /* mm */, combinations, max_error /* % */) {
 +            if(max_error === undefined)
 +                max_error = 0.002;
 +            
 +            var results = [];
 +            for(var i=0; i<combinations.length; i++) {
 +                var error = Math.abs(pitch - combinations[i].pitch) / pitch;
 +                if(error > max_error) continue;
 +                results.push({name: combinations[i].name, pitch: combinations[i].pitch, error: (100 * error).toFixed(3) + '% / ' + (1000 * Math.abs(pitch - combinations[i].pitch)).toFixed(1) + 'µm'});
 +            }
 +            
 +            results.sort(function(a, b) {
 +                var ga = a.name.split(' ')[0].length;
 +                var gb = b.name.split(' ')[0].length;
 +                if(ga > gb) return 1;
 +                if(ga < gb) return -1;
 +                if(a.error > b.error) return 1;
 +                if(a.error < b.error) return -1;
 +                return 0;
 +            });
 +            
 +            return results;
 +        };
 +        
 +        var output = jQuery('#star300_pitch_calculator [data-output]');
 +        var say = function(msg) {
 +            jQuery('<div />').html(msg).appendTo(output);
 +        };
 +        
 +        jQuery('#star300_pitch_calculator button').on('click', function() {
 +            output.empty();
 +            
 +            var pitch = parseFloat(jQuery('#star300_pitch_calculator input[name="pitch"]').val());
 +            if(isNaN(pitch)) {
 +                say('Not a valid pitch');
 +                return;
 +            }
 +            
 +            var unit = jQuery('#star300_pitch_calculator select[name="unit"]').val();
 +            if(!unit.match(/^(mm|tpi|module)$/)) {
 +                say('Not a valid unit');
 +                return;
 +            }
 +            
 +            var accuracy = parseFloat(jQuery('#star300_pitch_calculator input[name="accuracy"]').val());
 +            if(isNaN(accuracy)) {
 +                say('Not a valid accuracy');
 +                return;
 +            }
 +            
 +            if(unit == 'tpi') pitch = 25.4 / pitch;
 +            if(unit == 'module') pitch = pitch * Math.PI;
 +            
 +            accuracy /= 100;
 +            
 +            say('Looking for ' + pitch.toFixed(4) + 'mm pitch with ' + (100 * accuracy).toFixed(3) + '% accuracy');
 +            
 +            var results = lookup(pitch, combinations, accuracy);
 +            if(!results.length) {
 +                say('No combination found');
 +                return;
 +            }
 +            
 +            say('Results (' + results.length + ') :');
 +            for(var i=0; i<results.length; i++) {
 +                say(results[i].name + ' gives ' + results[i].pitch + 'mm pitch with ' + results[i].error + ' error');
 +            }
 +        });
 +    });
 +</script>
 +
 +<table id="star300_pitch_calculator">
 +    <tr>
 +        <td>
 +            Pitch
 +            <input type="number" name="pitch" value="1" />
 +            <select name="unit">
 +                <option value="mm">mm</option>
 +                <option value="tpi">TPI</option>
 +                <option value="module">module</option>
 +            </select>
 +        </td>
 +        <td>
 +            Accuracy
 +            <input type="number" name="accuracy" value="0.2" /> %
 +        </td>
 +        <td>
 +            <button>Lookup</button>
 +        </td>
 +    </tr>
 +    <tr>
 +        <td colspan="3" data-output style="font-family: 'Courier New', Courier, monospace"></td>
 +    </tr>
 +</table>
 +
 +</html>
 +
 +===== Gearbox setup =====
 +
 +{{ :workshop:metalworking:lathe:gearbox.svg }}