-
Ortur YRC-1: Conical Tailstock Centers
A conical (a.k.a. bullnose) center in the tailstock simplifies supporting cylindrical objects:

Ortur Chuck Rotary conical center – installed The spring-loaded tailstock bearing has a 5 mm bore. The bullnose rests against a small spacer on its 5 mm shaft to hold it away from the bearing’s mounting screws with some bearing spring compression. I turned the spacer from aluminum rod because lathe work is satisfying, but a printed spacer would work fine.
The bullnose is a cone with steps encouraging the cylinder to sit properly:

Ortur Rotary Conical Center – 10-50mm With both ends centered, the cylinder sits concentric with the chuck axis:

Ortur Chuck Rotary home switch – jaw position The chuck grabs the OD and the bullnose supports the ID, so removing crud from both ends is in order.
The bullnose won’t work for a solid rod, so a negative cone = cup center may come in handy:

Ortur Chuck Rotary cup center – installed Stipulated: A CO₂ laser will bounce right off a solid aluminum rod. Imagine I chucked up a wood dowel, OK?
A cup center is what remains afteryoinking a bullnose out of a cylinder:

Ortur Rotary Conical Centers – cup Looks like I did exactly that:

Ortur Chuck Rotary conical centers Somewhat surprisingly, the two parts nest perfectly:

Ortur Chuck Rotary conical centers – nested That’s without the shaft installed on the cup, so they won’t sit quite so neatly on the shelf.
Aligning the rotary axis along the laser’s X axis and setting the focus requires attention to detail, but a decent tailstock center makes that effort meaningful.
The OpenSCAD code as a GitHub Gist:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters// Ortur Rotary Conical centers // Ed Nisley – KE4ZNU // 2025-12-27 include <BOSL2/std.scad> Style = "Bullnose"; // [Build,Cone,Bullnose,Cup,Cone] MinDia = 10.0; MaxDia = 50.0; /* [Hidden] */ LayerThick = 0.2; // should match slicer thickness Ramp = 1.0; ID = 0; OD = 1; LENGTH = 2; HoleWindage = 0.2; Protrusion = 0.1; NumSides = 8*3*4; $fn=NumSides; Gap = 5.0; WallThick = 2.0; TailBearing = [5.0,7.0,10.0]; // tailstock shaft, LENGTH = insert depth StepHeight = 2*LayerThick; NumSteps = (((MaxDia – MinDia)/2) / Ramp); ConeOAH = NumSteps * (Ramp + StepHeight); //—– // Bullnose shape module Bullnose() { difference() { union() for (i = [0:NumSteps – 1]) up(i*(Ramp + StepHeight)) hull() cyl(StepHeight + Protrusion,r=(MaxDia/2 – i*Ramp),anchor=BOTTOM) position(TOP) cyl(Ramp,r1=(MaxDia/2 – i*Ramp),r2=(MaxDia/2 – (i+1)*Ramp),anchor=BOTTOM); } } module Cone() { difference() { Bullnose(); down(Protrusion) cyl(TailBearing[LENGTH] + Protrusion,d=TailBearing[ID],circum=true,anchor=BOTTOM); } } module Cup() { difference() { cyl(ConeOAH + TailBearing[LENGTH],d=MaxDia + 2*WallThick,anchor=BOTTOM); up(ConeOAH + TailBearing[LENGTH] + Protrusion) yrot(180) Bullnose(); down(Protrusion) cyl(TailBearing[LENGTH] + 2*Protrusion,d=TailBearing[ID],circum=true,anchor=BOTTOM); } } //—– // Build things if (Style == "Bullnose") Bullnose(); if (Style == "Cone") Cone(); if (Style == "Cup") Cup(); if (Style == "Build") { right(MaxDia/2 + Gap) Cone(); left(MaxDia/2 + WallThick + Gap) Cup(); }