Main > Main Forum |
New Product: SWYM: Star Wars Yoke Mount |
<< < (11/11) |
PL1:
--- Quote from: telengard on May 07, 2025, 05:42:11 pm ---Here are the measurements --- End quote --- Perfect. :cheers: (14mm - 20mm) / 2 = -3mm Add another -3mm wiggle room to allow for gravity dragging the housing down/back until the side of the housing screw holes rests against the screws. The screw holes need to be offset -6mm on the Y-axis (toward the front) so Line 16 is now "HousingBoltYOffset = -6;". Here's the updated code and a .zip with all of the .scad and .stl files. --- Code: ---// Wedge for mounting metal Star Wars yoke housing by Jasonbar. v1.1 // Use #12 x 3/4" sheet metal screws. ///////////////////////////// // Define the variables ///////////////////////////// HousingBaseX = 125; // Metal housing mount base X-axis width (top face of the wedge) HousingBaseY = 130; // Metal housing mount base Y-axis depth (top face of the wedge) ///////////// Rendered in red ///////////// HousingBoltX = 86; // Metal housing mount bolt hole center-to-center X-axis distance HousingBoltY = 87; // Metal housing mount bolt hole center-to-center Y-axis distance HousingBoltXOffset = 0; // Metal housing mount bolt pattern X-axis offset distance from center HousingBoltYOffset = -6; // Metal housing mount bolt pattern Y-axis offset distance from center BasePlateX = 125; // Base plate X-axis width (bottom face of the wedge) BasePlateY = 150; // Base plate Y-axis depth (bottom face of the wedge) ///////////// Rendered in blue ///////////// BasePlateBoltX = 100; // Base plate diamond mount bolt pattern X-axis center-to-center distance BasePlateBoltY = 120; // Base plate diamond mount bolt pattern Y-axis center-to-center distance from center BasePlateBoltXOffset = 0; // Base plate diamond mount bolt pattern X-axis offset distance from center BasePlateBoltYOffset = 0; // Base plate diamond mount bolt pattern Y-axis offset distance FrontDrop = 70; // Right angle drop height at front of wedge BackHeight = 3; // Height at back of wedge WedgeAngle = 55; // Wedge angle RoundoverDia = 6; // Edge roundover diameter BoltDia = 5.2; // Bolt hole diameter BoltDepth = 19; // Bolt hole depth ///////////// Rendered in white ///////////// HollowDia = 50; // Center hollow diameter HollowScaleX = 1; // X-axis scale for HollowDia HollowScaleY = 1.5; // Y-axis scale for HollowDia HollowHeight = 200; // Hollow height HollowAngle = 30; // Hollow angle ///////////// Rendered in purple ///////////// FrontHollowDia = 35; // Front hollow diameter FrontHollowScaleX = 1; // X-axis scale for FrontHollowDia FrontHollowScaleY = 1.6; // Y-axis scale for FrontHollowDia FrontHollowHeight = 68; // Front hollow height FrontHollowOffsetX = 40; // Front hollow X-axis offset from center hollow FrontHollowOffsetY = -34; // Front hollow Y-axis offset from center hollow ///////////// Rendered in limegreen ///////////// BackHollowDia = 32; // Back hollow diameter BackHollowScaleX = 1; // X-axis scale for BackHollowDia BackHollowScaleY = 1.4; // Y-axis scale for BackHollowDia BackHollowHeight = 35; // Back hollow height BackHollowOffsetX = 42; // Back hollow X-axis offset from center hollow BackHollowOffsetY = 28; // Back hollow Y-axis offset from center hollow DrillTempThick = 3.1; // Drill template thickness // 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. ///////////////////////////// // Define modules ///////////////////////////// module SquareHoles(){ translate([-HousingBoltX/2, -HousingBoltY/2, -BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Front left translate([HousingBoltX/2, -HousingBoltY/2, -BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Front rightt translate([HousingBoltX/2, HousingBoltY/2, -BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Back right translate([-HousingBoltX/2, HousingBoltY/2, -BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Back left } // End SquareHoles module // module DiamondHoles(){ translate([0, -BasePlateBoltY/2, BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Front translate([0, BasePlateBoltY/2, BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Back translate([-BasePlateBoltX/2, 0, BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Left translate([BasePlateBoltX/2, 0, BoltDepth/2]) cylinder (BoltDepth + 0.1, d = BoltDia, center=true); // Right } // End DiamondHoles module // module Label(letter, size=12) { rotate ([0, 0, 0]) { color("black") linear_extrude(height=DrillTempThick/2 + 0.01, convexity=4) text(letter, size=size*22/30, font="Bitstream Vera Sans", halign="center", valign="center"); } } // End Label module // ///////////////////////////// // Make the part ///////////////////////////// difference(){ // Wedge body minus holes and hollows hull(){ // Wedge body translate([RoundoverDia/2,RoundoverDia/2, RoundoverDia/8]) cylinder (RoundoverDia/4, d = RoundoverDia, center=true); // Front left lower corner translate([BasePlateX - RoundoverDia/2, RoundoverDia/2, RoundoverDia/8]) cylinder (RoundoverDia/4, d = RoundoverDia, center=true); // Front right lower corner translate([BasePlateX - RoundoverDia/2, BasePlateY - RoundoverDia/2, RoundoverDia/8]) cylinder (RoundoverDia/4, d = RoundoverDia, center=true); // Back right lower corner translate([RoundoverDia/2, BasePlateY - RoundoverDia/2, RoundoverDia/8]) cylinder (RoundoverDia/4, d = RoundoverDia, center=true); // Back left lower corner translate([BasePlateX - RoundoverDia/2, BasePlateY - RoundoverDia/2, BackHeight]) sphere (d = RoundoverDia); // Back right upper corner translate([RoundoverDia/2, BasePlateY - RoundoverDia/2, BackHeight]) sphere (d = RoundoverDia); // Back left upper corner translate([BasePlateX - RoundoverDia/2, BasePlateY - RoundoverDia/2, BackHeight]) rotate([-WedgeAngle, 0, 0]) translate([0, -HousingBaseY, 0]) sphere (d = RoundoverDia); // Top right upper corner translate([RoundoverDia/2, BasePlateY - RoundoverDia/2, BackHeight]) rotate([-WedgeAngle, 0, 0]) translate([0, -HousingBaseY, 0]) sphere (d = RoundoverDia); // Top left upper corner translate([BasePlateX - RoundoverDia/2, BasePlateY - RoundoverDia/2, BackHeight]) rotate([-WedgeAngle, 0, 0]) translate([0, -HousingBaseY, -FrontDrop]) sphere (d = RoundoverDia); // Front right drop corner translate([RoundoverDia/2, BasePlateY - RoundoverDia/2, BackHeight]) rotate([-WedgeAngle, 0, 0]) translate([0, -HousingBaseY, -FrontDrop]) sphere (d = RoundoverDia); // Front left drop corner } // End wedge body // color("red") translate([BasePlateX/2, BasePlateY - RoundoverDia/2, BackHeight]) rotate([-WedgeAngle, 0, 0]) translate([HousingBoltXOffset, HousingBoltYOffset - HousingBaseY/2, RoundoverDia/2]) SquareHoles(); // Call SquareHoles module color("blue") translate([BasePlateX/2 + BasePlateBoltXOffset, BasePlateY/2 + BasePlateBoltYOffset, 0]) DiamondHoles(); // Call the DiamondHoles module color("white") translate([BasePlateX/2 + BasePlateBoltXOffset, BasePlateY/2 + BasePlateBoltYOffset, 0]) rotate([-HollowAngle, 0, 0]) translate([0, 0, HollowHeight/4]) scale([HollowScaleX, HollowScaleY, 1]) cylinder (HollowHeight + 0.01, d = HollowDia, center=true); // Center hollow color("purple") translate([BasePlateX/2 + BasePlateBoltXOffset - FrontHollowOffsetX, BasePlateY/2 + BasePlateBoltYOffset + FrontHollowOffsetY, FrontHollowHeight/2]) scale([FrontHollowScaleX, FrontHollowScaleY, 1]) cylinder (FrontHollowHeight + 0.01, d = FrontHollowDia, center=true); // Front left hollow color("purple") translate([BasePlateX/2 + BasePlateBoltXOffset + FrontHollowOffsetX, BasePlateY/2 + BasePlateBoltYOffset + FrontHollowOffsetY, FrontHollowHeight/2]) scale([FrontHollowScaleX, FrontHollowScaleY, 1]) cylinder (FrontHollowHeight + 0.01, d = FrontHollowDia, center=true); // Front right hollow color("limegreen") translate([BasePlateX/2 + BasePlateBoltXOffset - BackHollowOffsetX, BasePlateY/2 + BasePlateBoltYOffset + BackHollowOffsetY, BackHollowHeight/2]) scale([BackHollowScaleX, BackHollowScaleY, 1]) cylinder (BackHollowHeight + 0.01, d = BackHollowDia, center=true); // Back left hollow color("limegreen") translate([BasePlateX/2 + BasePlateBoltXOffset + BackHollowOffsetX, BasePlateY/2 + BasePlateBoltYOffset + BackHollowOffsetY, BackHollowHeight/2]) scale([BackHollowScaleX, BackHollowScaleY, 1]) cylinder (BackHollowHeight + 0.01, d = BackHollowDia, center=true); // Back right hollow } // End wedge body minus holes and hollows // translate([-BasePlateX-20, 0, 0]) { // Drill template difference(){ // Template base minus drill holes and labels hull(){ // Template base translate([RoundoverDia/2,RoundoverDia/2, DrillTempThick/2]) cylinder (DrillTempThick, d = RoundoverDia, center=true); // Front left lower corner translate([BasePlateX - RoundoverDia/2, RoundoverDia/2, DrillTempThick/2]) cylinder (DrillTempThick, d = RoundoverDia, center=true); // Front right lower corner translate([BasePlateX - RoundoverDia/2, BasePlateY - RoundoverDia/2, DrillTempThick/2]) cylinder (DrillTempThick, d = RoundoverDia, center=true); // Back right lower corner translate([RoundoverDia/2, BasePlateY - RoundoverDia/2, DrillTempThick/2]) cylinder (DrillTempThick, d = RoundoverDia, center=true); // Back left lower corner } // End template base // color("blue") translate([BasePlateX/2 + BasePlateBoltXOffset, BasePlateY/2 + BasePlateBoltYOffset, 0]) DiamondHoles(); // Call the DiamondHoles module translate([BasePlateX/2, BasePlateY/2 + 20, DrillTempThick/2]) Label("SW Yoke Wedge"); // Call the label module for SW Yoke Wedge translate([BasePlateX/2, RoundoverDia, DrillTempThick/2]) Label("Player"); // Call the label module for Player translate([BasePlateX/2, BasePlateY - RoundoverDia, DrillTempThick/2]) Label("Monitor"); // Call the label module for Monitor } // End template base minus drill holes and labels // } // End drill template // --- End code --- Scott |
PL1:
Telengard tried the printed wedge and it ended up being way too tall on his cab. :banghead: If you have the same issue, here's a countersunk yoke mount model. https://forum.arcadecontrols.com/index.php/topic,169763.0.html Scott |
telengard:
Huge shout out to PL1 (Scott), he did another rev of the mount and it is absolutely perfect! The first one was totally my fault, I really needed to measure/mockup better beforehand. :laugh2: |
Navigation |
Message Index |
Previous page |