A Siemens Sinumerik 810M can generate an ellipse as a sequence of calculated points, but the supplied evidence does not establish a built-in ellipse cycle. Separate a planar XY ellipse from the supplied multi-level program: that program changes Z and shrinks the XY contour, so it does not produce only the requested 114.0 by 89.0 planar profile.
Define the Required Ellipse
For a centered ellipse with overall length 114.0 and height 89.0, calculate the semi-axes directly from the dimensions:
| Quantity | Calculation | Value |
|---|---|---|
| X semi-axis, a | 114.0 / 2 | 57.0 |
| Y semi-axis, b | 89.0 / 2 | 44.5 |
| Y-to-X scale | 44.5 / 57.0 | Approximately 0.780702 |
| X-to-Y scale | 57.0 / 44.5 | Approximately 1.280899 |
Use the first scale when the programmed base circle has radius 57.0 and only Y is scaled. Use the reciprocal when the base circle has radius 44.5 and X is scaled. Confirm which physical dimension aligns with each machine axis before generating coordinates.
Select a Programming Method
| Method | Supported use | Constraint |
|---|---|---|
| Parametric point generation | Calculate XY positions from sine and cosine | Produces straight moves between calculated points; smaller angular increments increase the point count |
| Multiple circular segments | Approximate the ellipse with separate arcs | Remains an approximation and can leave small transitions between segments |
| Single-axis scaling | Program a circle and scale one axis, if the control supports it | Controller availability is not established for every 810 variant, and cutter compensation may not recognize that the scaled contour is too small for the tool |
| CAM-generated contour | Generate and transfer the toolpath | Postprocessor output must match the actual Sinumerik control dialect |
The evidence reports 360 points for a 1-degree increment and 720 points for a 0.5-degree increment. Increasing the number of points reduces the angular interval, but no achieved contour tolerance is documented. Select the increment from the required tolerance and verify the resulting deviation independently.
Generate a Planar XY Ellipse
For an ellipse centered at the active work origin, use the parametric coordinates:
X = 57.0 * COS(angle)
Y = 44.5 * SIN(angle)
Advance the angle through one full revolution and command a linear move to every calculated XY point. On the documented 810M conversion, @630 performs the sine calculation and @631 performs the cosine calculation, with source and result held in R parameters. Treat these identifiers as evidence for the shown 810M program only; verify their behavior on the target control before machining.
- Set the work origin at the ellipse center and confirm the X and Y orientation.
- Initialize the contour angle at 360 and the endpoint at 0.
- Calculate cosine and sine into separate intermediate R parameters.
- Multiply the cosine result by 57.0 and the sine result by 44.5.
- Move linearly to the calculated point, decrement the angle, and repeat until the endpoint is reached.
- Close the contour explicitly and verify that the final point matches the initial point within the control's displayed precision.
The example uses an angular decrement of 1 between 360 and 0. One source comment describes this as a 1 mm increment, but its use as the input to sine and cosine shows that it functions as an angular step in the program.
Do Not Confuse the Supplied Program with 2D Milling
The longer parameter program calculates an ellipse in XY while also changing Z. Its core relationships are:
Z = SIN(R402) * R406
A = COS(R402) * R406
X = COS(R415) * A
Y = SIN(R415) * A * R413
R415 traverses the XY contour. R402 changes the Z level and simultaneously changes A, which shrinks or expands the XY contour. R413 scales Y; the supplied value is 1.5, while a value of 1 produces a circular XY section under these equations. This creates an ellipse-like surface in Z and XY, not a constant-depth planar ellipse.
The sample values also describe a 50 by 50 base geometry rather than the requested 114.0 by 89.0 contour. Do not copy those dimensions or the 1.5 scale factor into the requested part program.
Correct the Z-Loop Termination Before Reuse
The supplied multi-level program initializes the Z angle at 90, sets the endpoint to 0, sets the decrement to 4, and subtracts 4 before the first pass. The generated sequence starts at 86 and continues 82, 78, and so on. It reaches 2 and then -2; it never equals 0.
Because the shown termination test depends on exact equality, that combination cannot satisfy the endpoint condition as written. If this surface strategy is required, choose a decrement that lands exactly on the endpoint or add endpoint-clamping logic before the equality test. This correction is unnecessary for a constant-Z planar ellipse.
Keep 840D and 810M Syntax Separate
The direct SIN(), COS(), IF, GOTOF, and GOTOB example is identified as an 840D program. The attempted 810M conversion replaces the trigonometric expressions with @630 and @631 operations and uses numbered branch instructions. It was not demonstrated as a completed, machine-verified conversion.
The two versions also show different approach-distance notation: the 840D example uses DISR=5, while the 810M attempt uses U5 with G247 and G248. Preserve the syntax required by the installed control instead of mixing statements from the two versions.
Troubleshoot Error 3021 at the First Contour Move
The attempted 810M program reaches block N360 and then reports error 3021, described as a contour violation with cutter-radius compensation active. The documented explanation states that the compensation calculation produces a movement opposite to the programmed direction.
- Confirm whether
G41is active when N360 executes and verify that the selected compensation side agrees with the programmed contour direction. - Review the compensated approach generated by
G247, including its documentedU5distance, rather than checking only the nominal ellipse point. - Calculate sine, cosine, the level-dependent radius, X, and Y in separate intermediate R parameters. The evidence specifically recommends separating calculation and motion so each result can be inspected.
- Verify that the first calculated contour point advances in the intended direction from the approach point. A reversed or nearly zero first segment can make the compensated result oppose the programmed move.
- Run the contour without cutter compensation only as a diagnostic simulation or controlled dry run. If the uncompensated coordinates are continuous, focus the correction on tool radius, compensation side, and lead-in or lead-out geometry.
Simulator agreement does not prove that the compensated path will execute on the physical 810M. The evidence reports matching editor and 840D simulation calculations but does not document a successful machine run.
Repeat Ellipses with Work Offsets
For repeated identical contours, place the ellipse in a subprogram and shift the local origin between calls. The supplied pattern calls subprogram L199, uses G58 for the first displacement, and applies additional G59 shifts before subsequent calls. Another documented requirement uses 10 ellipses, spaced 10 mm apart along Y, with dimensions 6 by 4.5 mm.
Adapt the shift axis to the fixture: the example code shifts X, while the stated production requirement shifts Y. After the final call, cancel the displacement before returning or ending the program. Verify every transformed center in graphics or a dry run; do not assume that an additive shift has been cleared by the subprogram.
Verify Before Cutting
- Confirm whether the job requires one planar XY contour or the supplied Z-varying surface.
- Check that the semi-axes are 57.0 and 44.5 for the 114.0 by 89.0 ellipse.
- Inspect calculated points at the principal-axis positions and confirm that the maximum absolute X and Y values match those semi-axes.
- Confirm that the angular loop reaches its endpoint exactly; avoid equality-only termination when the decrement cannot land on that endpoint.
- Plot or simulate the uncompensated coordinates and check for discontinuities, duplicate points, and reversed segments.
- Add cutter compensation only after the nominal contour is continuous, then verify the approach, first compensated move, lead-out, and tool radius.
- Perform a controlled dry run above the workpiece and confirm all work-offset shifts before machining the part.
FAQ
Does the Sinumerik 810M have an ellipse milling cycle?
The evidence does not establish a built-in ellipse cycle for the 810M. Generate calculated XY points, approximate the profile with arc segments, or use verified CAM output.
What coordinates generate a 114.0 by 89.0 ellipse?
With the work origin at the center, use X=57.0*COS(angle) and Y=44.5*SIN(angle). Traverse one full revolution and verify closure at the endpoint.
Why does Sinumerik 810M error 3021 occur at the ellipse contour?
Error 3021 indicates that active cutter-radius compensation calculated a move opposite to the programmed direction. Check G41, contour direction, tool radius, the G247 approach, and the first calculated XY segment.