Pipe Cut Template Builder

Wrap-around templates for pipe cuts, from the actual cylinder geometry. Cut a pipe end at an angle, or saddle a branch onto a header at any angle — the intersection is solved analytically, unwrapped flat, and exported as a polyline with the deviation stated rather than assumed.

Dimensions

What are you cutting?
Units
The pipe being cut. Outside diameter, not nominal bore.
Cut angle
θ square

θ is measured from square. 0° is a square cut; 45° is the usual mitre. The other common convention measures from the pipe axis and gives the complement, so this field says "from square" rather than just "angle".

0 to 89 degrees. At 90° the cut plane is parallel to the axis and never closes.
Template
Where the template starts. Rotates the unwrap; changes nothing else.
Degrees, on top of the position above. For lining up with an existing mark.
How far the exported polyline may depart from the true curve. Physical, so 0.05 mm stays 0.05 mm in inch mode. Roughly 0.01 to 1.

Results

One open polyline on the CUT layer. No seam edges, no datum, no text.

Print at full size

Print at 100% / Actual Size. Turn "Fit to Page" off. Every sheet carries a 100 mm ruler — measure it before you cut. If it is not 100 mm, the print was scaled and the template is wrong.

Preview

Unwrapped template

  • Cut line — the only thing in the DXF
  • Seam edges and datum — paper boundary, not a cut

Read left to right as the pipe rolls one full turn. The horizontal axis is arc length around the outside; the vertical axis is distance along the pipe.

The joint

How this tool is verified

  • Geometry checked against hand-derived golden cases and geometric invariants — developed arc equals true circumference, metric and imperial inputs give identical millimetre geometry.
  • Every exported DXF is read back and audited by ezdxf, an independent DXF library that had no part in writing it (ezdxf 1.4.4).
  • Output opened and accepted in Autodesk Inventor and AutoCAD on a real seat (2026-08-10).

The method, the reports and the responsibility boundary are on the Approach page.

Built by Ruthen Systems

The same geometry core powers custom generators for specific shops — your rules, your standards, your output formats. If you keep redoing this by hand with your own rules attached, that is the version worth having.

How a custom generator is built

Assumptions and limits

Read these before you cut anything. They describe exactly what this tool does and does not account for.

  • Templates are generated on the pipe OUTSIDE surface from outside diameters. No wall-thickness compensation, bevel, root gap or kerf is applied.
  • The intersection is solved analytically. The exported polyline is a sampled approximation of that curve, held within the maximum deviation you set.
  • No material thickness, kerf, bevel, weld gap or fit-up allowance is applied anywhere. The template is the theoretical intersection of two outside surfaces.
  • Saddles are centred: the branch centreline passes through the header centreline. Lateral offset (a branch that runs past the header axis) is not covered.
  • The branch must be no larger than the header. That is a geometric limit, not a policy — a larger branch has no closed intersection curve.

Output is a planning and fabrication aid. You are responsible for verifying dimensions, tolerances and material behaviour before production — full disclaimer.

Worked example

A 88.9 OD branch saddling square onto a 168.3 OD header.

  • Template width279.29 mm
  • Axial travel12.70 mm
  • Deviation achieved≤ 0.05 mm

Both numbers are hand-checkable against the geometry. The width is the circumference, π × 88.9 = 279.29 mm. The axial travel is how much deeper the cut runs at the flanks than at the crown: √(84.15² − 44.45²) = 71.45 against 84.15, a difference of 12.70 mm. Both are measured from the header axis, so the difference is what you actually mark on the pipe.

Method

Both cut types are the same problem: find where a cylinder's surface meets another surface, then unroll the cylinder flat. Unrolling is exact — a cylinder is a developable surface, so arc length around it becomes distance along the paper with no distortion whatsoever. A point at angle φ and axial position z lands at (R·φ, z), and the template is exactly π·OD wide.

The two profiles

Everything reduces to one function: the axial position of the cut as you go round the pipe. For an angled end cut, a plane tilted by θ from square gives a pure sinusoid, z = R·tan θ·(1 − sin φ). For a saddle, substituting the branch surface into the header's equation y² + z² = Rh² gives a quadratic whose relevant root is t = [√(Rh² − R²cos²φ) − R·sin φ·cos α] / sin α. Neither is a fitted curve or a table lookup, and neither is taken from a pipefitter's handbook — the published formulas were checked against these, and agree.

The two are not independent. Let the header grow without bound and its surface becomes a plane, so the saddle must reduce to the angled cut — and it does, at θ = 90° − α. That link is a test, and it is the test that caught a sign error which every other check passed: written with the wrong sign the miter is still a sinusoid of the right amplitude and period, so only the comparison against the saddle exposed that the same joint unwrapped mirrored depending on which mode you picked.

Why the export is approximate, and by how much

The intersection is solved analytically. The exported polyline is a sampled approximation of that curve, held within the maximum deviation you set.

So the question is not whether there is an error but whether it is bounded and reported. The sampler subdivides until no chord departs from the true curve by more than the deviation you asked for, putting vertices where the curvature is rather than spreading them evenly — which is why a template with a stated 0.05 mm needs a few hundred points rather than a few thousand. The achieved figure is then measured again afterwards, converging on the true maximum by search rather than reading it off the same grid the sampler used, so it is a check on the sampler rather than a restatement of its own stopping rule.

Most tools of this kind ask for a number of ordinates instead. That is a proxy for the thing that matters: on a 180 mm branch into a 200 mm header, sixteen ordinates is 2.46 mm out at its worst point — a visible scribing error, and nothing on screen says so. Asking for the deviation directly makes the trade-off the one you actually care about.

The equal-diameter corner

When branch and header are the same size the intersection collapses to two flat ellipses that cross, so the cut has a genuine sharp corner on each side — the profile becomes proportional to |sin φ|, whose slope jumps. Chord-tolerance subdivision cannot resolve a corner: it halves forever and still rounds the nose off. So those angles are declared in advance and a vertex is placed exactly on each. The tool tells you the corner is real rather than letting it look like a defect.

Angles, and saying which one

An angle field on a pipe tool is ambiguous unless it says what it is measured from, and both conventions are in common use. The cut angle here is measured from square, so 0° is a square cut. The branch angle is measured between the centrelines, so 90° is a square tee. Each has a diagram next to it rather than only a sentence.

A branch angle above 90° is accepted rather than folded onto its supplement. 45° and 135° are the same physical joint measured to opposite ends of the header, but the template for one is the mirror image of the template for the other, and handing you a mirrored template for an angle you typed in good faith is exactly the sort of quiet wrongness this tool is built to avoid. The seam moves with it, so the long point stays the long point.

Printing

Each sheet is an SVG sized in millimetres with a viewBox spanning the same number of units, so one unit is one millimetre and the browser carries that to paper. Large pipes tile across several sheets with 10 mm of overlap and registration ticks to align to — ticks butt together far more accurately than cut paper edges. There is no PDF library involved: that would add a second rendering path outside the parity checks to make a file the browser prints anyway.

What no stylesheet can do is stop a print dialog applying "Fit to page". Hence the 100 mm ruler on every sheet. It costs nothing, and it turns "print at 100%" from an instruction you have to trust into one you can check with the tape already in your pocket.

What is in the file

One open POLYLINE on the CUT layer in DXF R12, and nothing else. Open rather than closed: joining the two ends would draw a straight line across the template that is not a cut. The seam edges and the datum line in the preview mark the boundary of the paper, not lines to cut on the pipe, and they are not exported. The vertices in the file are the same vertices the deviation figure was measured against — checked by re-parsing the file rather than by comparing objects in memory.

Questions

What is the difference between the two modes?

One engine, one difference. An angled end cut is a cylinder cut by a flat plane, which happens when you saw a pipe off at an angle. A saddle is a cylinder cut by another cylinder, which happens where a branch meets a header. Both unwrap the same way and both use the same sampler and the same tolerance; only the axial profile differs.

How is the cut angle measured on an angled end cut?

From SQUARE. Zero degrees is a square cut, perpendicular to the pipe axis. Forty-five degrees is the classic mitre. The field is labelled "Cut angle from square" rather than just "Angle" because the other convention — measuring from the pipe axis — is equally common in the trade and gives the complement, so an unlabelled 30 could mean either 30 or 60. The diagram beside the field shows exactly which one is meant.

How is the branch angle measured on a saddle?

Between the two CENTRELINES. Ninety degrees is a square tee, where the branch is perpendicular to the header. Forty-five degrees is a lateral. Note that 45 and 135 describe the same physical joint measured to opposite ends of the header, and the tool accepts both — it mirrors the template accordingly rather than quietly folding one onto the other.

Is the exported curve exact?

The intersection is solved analytically. The exported polyline is a sampled approximation of that curve, held within the maximum deviation you set. So the honest description is "analytic geometry, exported to a stated deviation" — not "an exact DXF curve", which no polyline of a cylinder intersection can be.

What deviation should I ask for?

The default of 0.05 mm is finer than you can mark, cut or fit, and costs nothing but a few hundred vertices. Loosen it if your CAM system chokes on vertex count; tighten it if you are driving a machine directly. The tolerance is physical, so it means 0.05 mm whether you work in millimetres or inches — it is not reinterpreted as 0.05 inches when you switch units.

Why does the equal-diameter case have a corner?

Because the real intersection has one. Two cylinders of equal diameter meet in two flat ellipses which cross at a point on each side, so the cut genuinely has a sharp corner there rather than a tight curve. The sampler places a vertex exactly on it. A tool that smooths that corner is wrong, not kind.

Where does the seam go?

Wherever you want the template to start. The three named positions are the long point (where the pipe keeps its full length), the side (a quarter turn from it) and the short side. Changing the seam rotates which part of the pipe lands at the left-hand edge of the template and changes nothing else — same curve, same circumference, same accuracy. There is also a free rotation in degrees if you want to line the seam up with an existing weld or a mark.

Can I trust the printed template at full size?

Check the ruler. Every sheet carries a 100 mm scale bar, and if it measures 100 mm the template is right. Print dialogs apply "Fit to page" by default and will silently shrink everything; no stylesheet can stop that, so the ruler is there to catch it. Set the printer to 100% or Actual Size and turn Fit to Page off.

What is in the DXF?

One open POLYLINE on the CUT layer, and nothing else. No seam edges, no datum line, no text, no construction geometry — the seam edges you see in the preview are the boundary of the paper template, not lines to cut on the pipe. It is R12, which every CAD package reads, and the vertices are the same ones the accuracy figure was measured against.

Does it handle offset branches or unequal wall thicknesses?

No. The branch centreline must pass through the header centreline, and everything is computed on outside surfaces from outside diameters. An offset branch is a genuinely different intersection, not a small correction, and rather than approximate it the tool leaves it out.