docs(posts): replace bundled manual with implementation references
This commit is contained in:
@@ -217,3 +217,7 @@ docs/superpowers/
|
||||
|
||||
# Local test config (contains user-specific paths to proprietary test assets)
|
||||
OpenNest.Tests/test-config.json
|
||||
|
||||
# Vendor programming manuals: keep reference copies outside source control.
|
||||
CINCINNATI LASER PROGRAMMING MANUAL.pdf
|
||||
TF5200_programming_manual_en.pdf
|
||||
|
||||
@@ -137,6 +137,8 @@ Always keep `README.md` and `AGENTS.md` up to date when making changes that affe
|
||||
|
||||
**Do not commit** design specs, implementation plans, or other temporary planning documents (`docs/superpowers/` etc.) to the repository. These are working documents only — keep them local and untracked.
|
||||
|
||||
Keep vendor programming manuals and full-text extracts outside source control unless redistribution permission has been established. Maintain project-written post behavior references instead: [Cincinnati CL](docs/cincinnati-post-output.md) and [Cincinnati CI Fiber](docs/cincinnati-ci-fiber-post-output.md). Cite the manual edition and relevant sections, distinguish controller rules from machine-specific macros, and document unconfirmed behavior without copying vendor text.
|
||||
|
||||
## Key Patterns
|
||||
|
||||
- OpenNest.Core uses multiple namespaces: `OpenNest` (root domain), `OpenNest.CNC`, `OpenNest.Geometry`, `OpenNest.Converters`, `OpenNest.Math`, `OpenNest.Collections`.
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,69 @@
|
||||
# Cincinnati CI Fiber Post Output Reference
|
||||
|
||||
Project-written summary of `OpenNest.Posts.CincinnatiCIFiber`, not a vendor
|
||||
manual or a machine-operation guide. For the separate CL-series post, see
|
||||
[Cincinnati output](cincinnati-post-output.md).
|
||||
|
||||
Controller reference used during development: Beckhoff *TF5200 | TwinCAT 3 CNC
|
||||
Programming manual*, version 1.33, May 19, 2026
|
||||
(`TF5200_programming_manual_en.pdf`). Obtain the applicable documentation from
|
||||
Beckhoff and Cincinnati. Vendor PDFs and full-text extracts stay outside source
|
||||
control; redistribution permission has not been established.
|
||||
|
||||
## Output contract
|
||||
|
||||
The current [writer](../Posts/OpenNest.Posts.CincinnatiCIFiber/CIFiberProgramWriter.cs)
|
||||
uses the Cincinnati machine-sample convention, not a generic TF5200 laser API:
|
||||
|
||||
- Header: nest/configuration/material comments; `V.E.MATERIAL`, `V.E.THICKNESS`,
|
||||
`V.E.X_SIZE`, `V.E.Y_SIZE`, and `V.E.UNIT`. Sheet weight is omitted by default.
|
||||
- Startup: `G90`, `L PROGRAMSTART.NC`, then `P3=V.E.R3`, `$GOTO NP3:`, and `N0:`.
|
||||
- Parts follow plate order. `V.E.R4` identifies the part within its sheet;
|
||||
numbered contour labels and `V.E.R3` continue across sheets for restart lookup.
|
||||
- Each contour: `/L "L0"`, restart number, rapid to pierce, then interior
|
||||
`/L "L2"` with `G41` or exterior `/L "L4"` with `G42`; linear lead-in,
|
||||
`/L "L6"`, cutting moves, and `/L "ZHSOFF"`.
|
||||
- Tail: `/L "L0"`, `L PROGRAMEND.NC`, `M50`, `M30`, and `%`.
|
||||
- Motion endpoints are sheet-absolute XY. Arc `I`/`J` are offsets from the arc
|
||||
start, matching the G162 convention; the post does not explicitly emit G162.
|
||||
- Hole subprogram geometry is inlined. Suppressed moves and, by default,
|
||||
wholly scribe contours are omitted.
|
||||
- Files use UTF-8 without a BOM and CRLF lines. Default accuracy is three decimal
|
||||
places: coordinates trim trailing zeros; dimensional header values retain them.
|
||||
|
||||
## Configuration and boundaries
|
||||
|
||||
See [CIFiberPostConfig](../Posts/OpenNest.Posts.CincinnatiCIFiber/CIFiberPostConfig.cs)
|
||||
for macro names, material mappings, unit codes, precision, and table limits.
|
||||
The post is named for the machine family; table size belongs in configuration.
|
||||
|
||||
- Assign linear lead-ins before posting, including circular holes. The writer
|
||||
rejects missing or arc-first lead-ins. Its conservative rule cites the G238
|
||||
compensation-selection restriction in TF5200 §13.2.4.1; do not generalize it
|
||||
to every controller compensation mode.
|
||||
- `/L` calls are skippable; `L PROGRAMSTART.NC` and `L PROGRAMEND.NC` are not.
|
||||
Macro bodies, process settings, restart handling, and compensation cancellation
|
||||
belong to the machine configuration. The post does not emit an explicit G40.
|
||||
- `InchUnitCode` defaults to `1`; `MetricUnitCode` defaults to `0` but remains
|
||||
unconfirmed. Table limits compare directly with nest dimensions, without unit
|
||||
conversion. Do not assume changing the unit code establishes metric support.
|
||||
- Multiple nonempty plates are written sequentially, but dimensional header
|
||||
values come only from the first plate and the pallet-change tail occurs once.
|
||||
This is not proof of a qualified multi-sheet machine cycle.
|
||||
- Validation can throw after output has started. Discard any output from a failed
|
||||
post; it may be incomplete. Successful generation and tests do not establish
|
||||
that a program is safe to run on a particular machine.
|
||||
|
||||
## Verification
|
||||
|
||||
[Output-contract tests](../OpenNest.Tests/CincinnatiCIFiber/CIFiberPostProcessorTests.cs)
|
||||
cover a square with a hole, coordinate transforms/formatting, lead-in rejection,
|
||||
table bounds, and suppression/scribe handling. Run:
|
||||
|
||||
```sh
|
||||
dotnet test OpenNest.Tests/OpenNest.Tests.csproj --filter FullyQualifiedName~CincinnatiCIFiber
|
||||
```
|
||||
|
||||
Keep this summary aligned with the implementation and tests. Cite the relevant
|
||||
manual section for controller rules and distinguish those rules from
|
||||
Cincinnati-specific macros and behavior observed in a machine sample.
|
||||
@@ -2,8 +2,14 @@
|
||||
|
||||
Reference for the G-code structure emitted by `OpenNest.Posts.Cincinnati`.
|
||||
Every code listed here maps to a section in the Cincinnati Laser Programming
|
||||
Manual (`docs/CINCINNATI LASER PROGRAMMING MANUAL.pdf`, EM-423 R-02/11).
|
||||
Section numbers in parentheses (e.g. `§1.52`) refer to the manual.
|
||||
Manual (EM-423 R-02/11). Section numbers in parentheses (e.g. `§1.52`)
|
||||
refer to that edition. Obtain the applicable manual from Cincinnati; vendor
|
||||
manuals are not bundled because redistribution permission has not been established.
|
||||
|
||||
This is a project-written implementation reference, not a replacement for the
|
||||
machine's programming, operating, or safety documentation. Keep vendor PDFs and
|
||||
full-text extracts outside source control; do not re-add them without permission.
|
||||
For the separate CI Fiber post, see [CI Fiber output](cincinnati-ci-fiber-post-output.md).
|
||||
|
||||
If you add a new emission in the post, either cite the manual section it maps
|
||||
to, or flag it here as a known custom extension. "Custom code" in this project
|
||||
|
||||
Reference in New Issue
Block a user