Main > Main Forum
World Series Baseball 99 - Arcade Build HELP!!
PL1:
The objective of this spring test is to determine initial values for the minimum and maximum amount of spring stretch/tension.
- If you're using a different spring than this one, you'll need to do this test to find the right numbers for your spring.
Test process:
- Draw a line on a board.
- Mount the spring on that line using a wood screw.
- Use something like a hook from a Harbor Freight hook/pick set to stretch the spring like a pinball plunger -- it worked really well. ;D
- Mark the no stretch, minimum stretch, and maximum stretch points on the line.
-- Minimum stretch is slightly greater than the least spring tension required to turn the potentiometer so the cam is always pulled back to the bumper when the bat is released.
-- Maximum stretch is the most spring tension desired for this controller.
- Measure the three marks relative to the wood screw.
Spring stretch test measurements:
No stretch = 50mm
Minimum stretch = 80mm
Maximum stretch = 160mm
The distance between minimum stretch and maximum stretch (80mm) is the distance we want to use for the cam circumference.
The formula for the circumference of a circle = 2 * π * circle radius.
The cam only turns 180 degrees (half of a circle) so the cam circumference = π * cam radius.
π * cam radius = cam circumference ==> 3.14 * cam radius = 80mm ==> cam radius = 26mm.
Next thing to do is write the code for the cam model.
Scott
Nitro0602:
Holly crap.. that is really cool.. totally out of my expertise.. but amazing work man! This looks very promising!
PL1:
--- Quote from: Nitro0602 on May 28, 2022, 02:23:25 am ---totally out of my expertise..
--- End quote ---
You don't need any fancy programming skills.
- Install the OpenSCAD software.
- Run the OpenSCAD program.
- Highlight/copy/paste the 156 lines of code from reply #24 into OpenSCAD.
- Save the file. I used the filename "Hub and Bat - Bat Controller.scad".
- Press F5 to generate a preview of the part.
- Right click + drag to slide the view of the part. (no rotation)
- Left-click + drag to rotate the view of the part.
- Scroll wheel to zoom the view in/out.
Right now, the baseball bat is 75mm/3" long and the barrel (fat part you hit the ball with) is 12mm diameter. (12.7mm = 1/2")
Do the shapes and proportions look good to you?
-------------------
Code for the cam is almost done.
- Had to increase the cam radius from 26mm to 33mm so there's just enough room for the shaft collar hub, bumper notches, and the mounting block for the spring screw.
- The increased cam radius changes the amount of spring stretch from 80mm to 104mm.
- This should still be within a reasonable range of stretch and tension for the spring. ;D
Scott
PL1:
Here's the first draft for the cam.
"Cam - Bat Controller.scad"
--- Code: ---// Cam - Bat Controller (v0)
// The diameter values may need to be *very slightly* larger to account for the 180-sided polygon used to render circles -- see "undersized holes" at https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Primitive_Solids#cylinder
/////////////////////////////
// Adjustable variables
/////////////////////////////
// Shaft collar and screw variables
ShaftCollarOD = 13.2; // Shaft collar outer diameter
ShaftCollarHeight = 8.1; // Shaft collar height
ShaftCollarScrewDia = 4.85; // Shaft collar screw diameter
ShaftCollarHubDia = 22.2; // Shaft collar hub dia
// Screw block variables
ScrewBlockX = 6; // Screw block X-axis size
ScrewBlockY = 10; // Screw block y-axis size
SpringScrewDia = 3.2; // Screw hole diameter for spring screw
// Cam variables
CamRadius = 33; // Cam radius
CamThick = 8; // Cam thickness
BumperOffset = 18; // Bumper offset
BumperDia = 13.5; // Bumper diameter
ShaftNotchDia = (ShaftCollarHubDia + ShaftCollarOD)/2; // Ensures notch is larger than the shaft collar and smaller than the shaft collar hub.
// Number of fragments (polygon sides) used to render a full circle.
$fn = 180; // Default = 180 Typical range = 6 - 360
// 6 will render a circular hole as a hexagon, 8 will render a circular hole as an octagon.
// Lower the number for faster rendering, raise the number for smoother rendering.
/////////////////////////////
// Make the part
/////////////////////////////
difference(){ // Cam body cylinders minus cam back half, shaft notch, bumper notches, and skeleton holes
union(){ // Cam body cylinders
// Cam lower half cylinder
translate([0, 0, - CamThick/4])
cylinder (h = CamThick/2 + 0.01, r1 = CamRadius + CamThick/2, r2 = CamRadius, center=true);
// Cam upper half cylinder
translate([0, 0, + CamThick/4])
cylinder (h = CamThick/2 + 0.01, r1 = CamRadius, r2 = CamRadius + CamThick/2, center=true);
} // End cam body cylinders
//
// Cam back half
translate([0, - (CamRadius + CamThick/2)/2 - 1, 0])
cube ([CamRadius * 2 + CamThick + 2, CamRadius + CamThick/2 + 2, CamThick + 2], center=true);
// Shaft notch
cylinder (CamThick + 2, d = ShaftNotchDia, center=true);
// Left bumper notch
translate([- BumperOffset, 0, 0])
color("white")
cylinder (CamThick + 2, d = BumperDia, center=true);
// Right bumper notch
translate([BumperOffset, 0, 0])
color("white")
cylinder (CamThick + 2, d = BumperDia, center=true);
// Left skeleton hole
rotate([0, 0, 120])
translate([BumperOffset, 0, 0])
color("pink")
cylinder (CamThick + 2, d = BumperDia, center=true);
// Right skeleton hole
rotate([0, 0, 60])
translate([BumperOffset, 0, 0])
color("pink")
cylinder (CamThick + 2, d = BumperDia, center=true);
} // End cam body minus shaft collar and bumper notches
//
difference(){ // Shaft collar hub minus shaft collar hole and setscrew hole
// Shaft collar hub
cylinder (CamThick, d = ShaftCollarHubDia, center=true);
// Shaft collar hole
color("blue")
cylinder (CamThick + 2, d = ShaftCollarOD, center=true);
// Setscrew hole
translate([0, - ShaftCollarHubDia/2, 0])
rotate([90, 0, 0])
color("red")
cylinder (ShaftCollarHubDia, d = ShaftCollarScrewDia, center=true);
} // End shaft collar hub minus shaft collar hole and setscrew hole
//
difference(){ // Screw mount block minus spring screw hole
// Screw mount block
translate([CamRadius - ScrewBlockX/2, - ScrewBlockY/2, 0])
cube ([ScrewBlockX, ScrewBlockY + 0.01, CamThick + 0.01], center=true);
// Spring screw hole
translate([CamRadius - ScrewBlockX/2, - ScrewBlockY/2, 0])
rotate([0, 90, 0])
color("aqua")
cylinder (ScrewBlockX + 2, d = SpringScrewDia, center=true);
} // End screw mount block minus spring screw hole
//
--- End code ---
Printing the handle and cam now -- they should be done in a few hours.
While they're printing, it's time to make the next test rig by scribbling on a board and drilling a few holes. ;D
Scott
PL1:
Two swings and two misses. :badmood:
1. The vertical setscrew hole in the bat/hub is too small. :banghead:
- Might need to make a test print so people can find the perfect setscrew hole size for their 3d printer and slicer program.
2. After less than a dozen full pulls/releases, the cam suffered some major layer adhesion failures.
- You can see in the attached picture that the setscrew has rotated clockwise relative to the body of the cam and forced a piece out.
I should have anticipated this problem because the force is transfered via a setscrew engaging with only 4.5mm of the wall of the setscrew hole and the screw hole is parallel to the print layers -- the plane in a 3d print that is easiest to break. :embarassed:
A flange shaft coupler like this one should be a good replacement for the shaft coupler in the cam.
- Four M3 x 15mm screws through the flange and cam body should transfer the torque without damaging the cam. ;D
Scott