The Siemens NX CAM Engraving operation refuses imported DXF curves by design and exposes only Notes, Labels, and Symbols in its geometry selector. This article explains why, and documents three field-validated workarounds for engraving Adobe Illustrator logos and arbitrary polylines through Planar Mill, Surface Contour, and automation journals.
Overview
The Engraving operation in Siemens NX5 through NX10 is purpose-built for drafting text annotations, not for arbitrary model geometry. When a user imports a logo from Adobe Illustrator as a DXF, the resulting curves arrive as UF_spline_type, UF_line_type, or UF_circle_type objects inside the part file. Launching the Engraving operation and trying to window-select that geometry produces an empty selection set because the underlying UF_OPER call only enumerates UF_draft_note_entity_t, UF_draft_label_entity_t, and UF_draft_symbol_entity_t entities.
This article documents:
- The architectural reason behind the NX engraving operation's text-only filter
- The canonical planar text engraving workflow using Drafting + Manufacturing
- Three field-proven workarounds for engraving imported DXF geometry
- Tool recommendations and feeds/speeds for fine engraving
- DXF import pre-flight to minimize downstream failures
- A troubleshooting matrix keyed to common symptoms
- Verification and toolpath validation steps
Why the Text Engraving Operation Will Not Accept Curves
The Engraving operation in NX5 (and carried forward through NX10) is bound to annotation geometry. Internally, the operation calls UF_OPER_ask_geom_id_array only against draft entity types. Imported DXF entities arrive in NX as model geometry:
-
UF_spline_type- splines -
UF_line_type- line segments -
UF_circle_type- arcs and circles - Composite curve containers
These are not drafting entities. The selection dialog filters them out because the operation cannot translate a UF_spline_type directly into a stroke pattern without an intermediate character decomposition. Therefore, attempting to select a logo curve chain inside the Text Engraving operation is unsupported by design.
The single exception: if the DXF contains true drafting text (TEXT entities), the importer places them as NX Notes. Those Notes will be selectable from inside the Engraving operation. Adobe Illustrator by default exports curves as splines, not as text - so a logo almost always fails this filter.
Configuration Prerequisites
Before launching the Engraving operation or its workarounds, ensure the following are in place:
| Item | Requirement | Notes |
|---|---|---|
| NX License | NX Manufacturing / Mach bundle | Engraving belongs to the mill-turn machining bundle |
| Active Application | Manufacturing, with PROGRAM, TOOL, GEOMETRY, METHOD parent nodes defined |
Required for any operation |
| Drafting Module | Licensed | Required for planar text workflow |
| DXF/DWG Translator | Licensed | Maps DXF layers to NX layer categories |
| Font Availability | Single-stroke (engraving) fonts loaded | E.g., ENGRAVING_5PT, ROMULUS, or Hershey-style fonts |
| Post Processor | Built and tested for the target control | Engraving uses simple G01/G02 moves plus ramps |
Workflow A: Planar Text Engraving (The Supported Path)
This is the canonical Siemens-recommended workflow for text engraving on a flat face. It uses Drafting to host the text, then Manufacturing to cut it. The approach has been stable from NX5 through NX10, with only minor UI refinements in NX6.
-
Switch to Drafting.
Application → Drafting. -
Create a sheet. Right-click the part node and select
New Sheet. Confirm sheet name (e.g.,Sheet 1) and size (typicallyCfor A2 orBfor A3). -
Toggle Display Sheet off. On the Drafting toolbar, click
Display Sheetto dismiss the sheet border. The graphics window now behaves like Modeling while Drafting remains the active application. -
Create the text block.
Insert → Annotation → Text. Place an origin on or near the part, select a single-stroke font (e.g.,ROMULUS,ENGRAVING_5PT, orISOCPEUR), and enter the engraving string. Single-stroke fonts are mandatory; closed-counter fonts likeROMANproduce toolpath anomalies. -
Return to Manufacturing.
Application → Manufacturing. -
Create the Engraving operation. In the Operation Navigator, pick the program/tool/method/geometry set.
Create Operation → mill_planar → Engraving (Planar Text). Choose a 2D planar face as the geometry. -
Select the draft text. When the selection dialog prompts
Select Text, click the text block created in step 4. In NX5, the dialog asks for textLeft,Right, orOnthe geometry; NX6 and later collapse this to a single selection. -
Configure the operation.
- Depth =
0.005"to0.015"per pass - Multiple depths via the
Passestoggle - Engage motion =
Ramp(preferred for engraving) - Steep angle =
90°for vertical walls - Cut direction = typically
Climb
- Depth =
-
Generate toolpath. Click
GeneratethenGenerate Tool Path(orGenerate and Simulate). - Post-process. Output CLS, then post with the configured Post Builder post.
NX5 vs NX6+ Operation Differences
| Feature | NX5 | NX6 and Later |
|---|---|---|
| Text selection prompt | Asks for text Left, Right, or On the curve |
Single Select Text prompt |
| Multiple depth cuts | Supported | Supported |
| Ramp engage moves | Supported | Supported |
| Default behavior on shaded splines | Filters to drafting entities only | Same |
| Steep angle audit | Manual | Auto-warns on out-of-steep moves |
The NX6 simplification removed a usability hurdle for new users but did not extend the supported geometry types.
Workflow B: Engraving Imported DXF Geometry
When the engraving source is geometry (curves, splines, polylines from Illustrator → DXF), three field-validated workarounds exist. Pick based on face geometry:
Workaround 1: Planar Mill with ON Boundaries (Flat Faces)
This is the most direct substitute when the engraving target is a planar face and the source is a curve chain.
- Create a
mill_planaroperation of typePlanar Mill. - Set Boundary Type to
ONand chain the DXF curves as boundaries. - Set Cut Pattern to
Standard Drive. This follows the chain in order and repositions between chains via clearance plane. - Set Floor using a negative stock offset into the part to create the engraved recess (typically
-0.005"to-0.010"). - Tool diameter should match the visual line width of the engraved result.
Why this works: Standard Drive walks the chain in order and re-positions to the next chain through clearance - exactly mimicking text-stroke behavior. The floor offset into the part produces the recessed line.
Workaround 2: Surface Contour with Curve/Point Drive (3-D Surfaces)
For engravings on free-form surfaces, use surface contouring driven by the curves.
- Create a
mill_contouroperation of typeSurface Contour. - Set Drive Method to
Curve/Point. - Click each DXF curve to drive the toolpath. To avoid repeat window-clicking on hundreds of curves, chain the geometry with the
Connected Curvesintent and useMB2to add additional chains into one selection set. - Apply Depth of Cut Per Pass and Multiple Stepover for layered engraving.
- Use a ball mill or conical engraver as the cutter.
Field note: NX7.5 users reported that without Connected Curves intent, each curve must be clicked individually, which becomes prohibitive above a few dozen curves. The journal approach below addresses that.
Workaround 3: Automation Journal (High-Volume / Image Engraving)
For production runs with hundreds of curves, write a CAM Automation Journal (.tcl) that loops through DXF curve objects and emits tool moves per curve. This is the most scalable approach and is what experienced NX power users adopt for image-style work.
# Conceptual .tcl loop: emit motion per curve in selected set
set op [UF_OPER_ask_operation_by_name "ENGRAVING_OP"]
set geoms [UF_OPER_ask_geom_id_array $op]
foreach obj $geoms {
set type [UF_OBJ_ask_type $obj]
switch -- $type {
"UF_spline_type" {
set params [UF_CURVE_ask_spline_params $obj]
# tessellate, sample NURF knots, emit G01 moves
# ... CLS output logic ...
}
"UF_line_type" {
set ends [UF_CURVE_ask_line_data $obj]
# emit G01 from [lindex $ends 0] to [lindex $ends 1]
}
"UF_circle_type" {
# emit G02/G03 arc
}
default {
# skip unsupported
}
}
}
Tool Selection for Fine Engraving
Engraving tools fail by snapping or chipping when plunged. Field-tested recommendations from Siemens manufacturing power users:
| Tool Type | Diameter | Use Case | Notes |
|---|---|---|---|
| Ball mill | 1/16" (0.0625") | General-purpose text | Standard, robust, forgiving |
| Ball mill | 1/32" (0.0312") | Fine logos | Reduce ramp angle to ≤ 1° |
| Ball mill | 1/64" (0.0156") | Hairline text | Spindle ≥ 30,000 RPM required |
| 4-sided pyramidal | .001" - .010" tip | Micro-engraving | 5° - 15° included draft angle |
| Conical engraver | 30° or 60° included | V-carved text | Produces constant-width grooves |
Starting Feeds and Speeds
| Tool | RPM | Feed (IPM) | Stepover Notes |
|---|---|---|---|
| 1/16" ball | 12,000 | 10 | 0.005" - 0.010" |
| 1/32" ball | 18,000 | 6 | 0.003" - 0.005" |
| 1/64" ball | 30,000 | 3 | 0.001" - 0.002" |
| 4-sided .005" tip | 40,000 | 2 | 0.001" |
Always use ramp engagement at ≤ 5° to load the tool gradually. Plunging into a flat face with a 1/32" ball is a guaranteed snap.
DXF Import Best Practices
Adobe Illustrator DXF outputs frequently produce downstream engraving failures. Apply these pre-flight steps before importing into NX:
- Convert all paths to polylines with maximum chord deviation ≤ 0.0005". Illustrator defaults to higher deviation, which produces faceted engraving output.
- Explode blocks so each path is selectable downstream.
-
Delete duplicate geometry using Illustrator's
Path → Simplifyor theRemove Brushesfilter. -
Scale to physical units. DXF commonly ships in inches but Illustrator may export in mm depending on
R12compatibility settings - confirm by inspecting a known reference. - Re-anchor at a single origin to ease boundary chaining in NX.
-
Import via
File → Import → DXF/DWGand map cut lines to a unique layer category, e.g.,LAYER_ENGRAVE. This dramatically simplifies boundary selection later.
.ai curves as splines, not as TrueType text. NX imports splines as spline bodies, which the Engraving operation cannot select. The DXF layer name is the single biggest lever you have at import time - tag every cut line explicitly.Troubleshooting Matrix
| Symptom | Probable Cause | Resolution |
|---|---|---|
| Only Notes / Labels / Symbols listed in the selection dialog | DXF arrived as geometry, not text | Switch to Planar Mill + ON Boundaries (Workaround 1) |
| All curves imported but selection reverts to single curve per operation | Multiple unchained geometries | Chain with Connected Curves + MB2, or use automation journal |
| Toolpath lifts between characters excessively | Operate in Planar text with Lift engage |
Set engage to Ramp, disengage to Off
|
| Tool snaps at start of cut | Plunge into face | Switch to Ramp engage at 3° - 5° |
| Text appears mirrored | Wrong plane orientation or text direction | Verify WCS in geometry set; rotate text about Z |
| Engraving depth inconsistent across letters | Bottom stock offset on same face as floor | Use floor surface offset or separate geometry for floor |
| Toolpath missing characters | Font has closed loops (e.g., e, a) that NC post ignores |
Use single-stroke fonts; avoid ROMAN or COMPLEX
|
| Operation fails to generate any toolpath | Empty drafting text selection | Confirm the text entity was selected, not its leader line |
| Engraved output faceted | DXF chord deviation too high | Re-export from Illustrator with chord ≤ 0.0005" |
| Toolpath misaligned from DXF origin | Layer offset not respected on import | Re-import with origin-on-design-WS option enabled |
| Cutter pushes through stock on first loop | Ramp engages from below floor | Invert ramp direction; verify engage starts above stock |
Verification Procedure
After generating the toolpath, perform these validation steps before posting to the control:
-
Visual toolpath check. Run
Simulate Tool Pathwith the part loaded. Confirm the path traces every character or curve in order with no skipped segments. - Gouge check. In Simulation, enable gouge check coloring and confirm no red marks on surrounding faces. Engraving at the wrong Z offset commonly gouges the floor outside the intended boundary.
- Steep angle audit. Verify all engage moves are ramps, not plunges. The Steep Angle field should report 90° engages with low ramp angle, not 0° (vertical plunge).
-
Material removal simulation. Run a
Material Removal Simulationwith engraving depth stock and confirm the recess lands where expected. -
Post-process audit. Open the generated CLS in
Edit CLSand verifyGOTOpositions,CIRCLE/POCKETcycles, and feed numbers match the planned parameters. -
Dry run on the machine. With
DRY_RUNset on the control (or with the spindle disabled), air-cut the path to verify motion, clearance, and inter-chain lifts. Check for any near-collisions with the fixture or clamps. - Witness cut. For new tools or new material, run a witness on scrap using the same parameters and inspect the result under magnification.
NX Version Compatibility
| NX Version | Engraving Behavior | Notes |
|---|---|---|
| NX5 | Planar Text with Left/Right/On prompts |
Last version with three directional choices |
| NX6 | Single text prompt; UI cleanup to ramp motion | Usability improvement; no new geometry support |
| NX7.5 | Same as NX6; users on this version report "select one curve at a time" limitations in workarounds | Most field reports of "select with window" issues originate here |
| NX10 | Same behavior; multi-axis engraving for 4/5-axis still limited | Curve/point drive remains the substitute for image work |
| NX12 and later | Improved surface contour drives; image engraving still absent from the Engraving operation | Streamline-of-curve drive as an alternative |
Version labels at a glance: NX1 in the new convention corresponds to UG v19 in the legacy numbering, so by that mapping today's NX would be the equivalent of UG v24 - a useful cross-reference when porting older workflows.
Support and Documentation
For license, post-processor, and journal-related questions, use the official Siemens channels:
- Siemens NX documentation portal: docs.sw.siemens.com
- Siemens Support Center: support.sw.siemens.com
- Post Builder kit (ships with NX Manufacturing): see
%UGII_BASE_DIR%\postbuild\
Frequently Asked Questions
Why does the NX Engraving operation only let me pick Notes, Labels, and Symbols?
Because the operation is hard-coded to accept drafting annotation entities. Imported DXF curves and splines are model geometry, not drafts, so the selection filter excludes them. This is by design in NX5 through NX10 and later versions - the operation decomposes a character into a stroke offset and has no rule for toolpath ordering over arbitrary splines.
Can NX engrave a logo drawn in Adobe Illustrator?
Not directly through the Text Engraving operation. Import the DXF and use Planar Mill with ON Boundaries (cut pattern Standard Drive) for flat faces, or Surface Contour with Curve/Point drive for 3-D surfaces. Both produce equivalent visual results when configured with the right floor offset and tool diameter.
What font should I use for engraving in NX?
A single-stroke drafting font such as ROMULUS, ENGRAVING_5PT, or ISOCPEUR. Avoid decorative fonts like ROMAN COMPLEX because their closed counter-shapes defeat NC toolpath generation and produce missing or doubled strokes.
What is the smallest tool NX engraving users typically run?
1/64" ball mills at 30,000 RPM are common in production; 4-sided pyramidal cutters go as small as .001" tip with 5° - 15° drafts. Always use ramp engagement at ≤ 5° and verify with a witness cut on scrap before running in production.
Does Siemens support 4-axis image engraving like Mastercam?
No - the NX Engraving operation does not perform axis substitution for 4-axis rotary engraving in stock form. Workaround: use Surface Contour with Curve/Point drive on a wrapped-cylinder surface, with axis substitution enabled in the geometry set.
How do I select many curves at once for an engraving operation?
Chain them with Connected Curves, then use MB2 to add additional sets into one chain. For very large numbers (300+ curves), an automation journal loops over the geom array and emits moves per curve - this is the fastest path for image-style work.