diff --git a/OpenNest.Posts.Cincinnati/CincinnatiPostConfig.cs b/OpenNest.Posts.Cincinnati/CincinnatiPostConfig.cs
new file mode 100644
index 0000000..d651210
--- /dev/null
+++ b/OpenNest.Posts.Cincinnati/CincinnatiPostConfig.cs
@@ -0,0 +1,261 @@
+namespace OpenNest.Posts.Cincinnati
+{
+ ///
+ /// Specifies how coordinate positioning is handled between parts.
+ ///
+ public enum CoordinateMode
+ {
+ /// Set absolute position.
+ G92,
+
+ /// Use relative/incremental positioning.
+ G91,
+
+ /// Use machine coordinate system.
+ G53
+ }
+
+ ///
+ /// Specifies how G89 (hole drilling/tapping parameters) are provided.
+ ///
+ public enum G89Mode
+ {
+ /// Use external library file for G89 parameters.
+ LibraryFile,
+
+ /// Explicitly define G89 parameters in the program.
+ Explicit
+ }
+
+ ///
+ /// Specifies where kerf compensation is applied.
+ ///
+ public enum KerfMode
+ {
+ /// Controller side (using cutter compensation codes).
+ ControllerSide,
+
+ /// Pre-applied to part geometry during post-processing.
+ PreApplied
+ }
+
+ ///
+ /// Specifies which side of the cut line kerf compensation is applied to.
+ ///
+ public enum KerfSide
+ {
+ /// Kerf applied to the left side of the cut.
+ Left,
+
+ /// Kerf applied to the right side of the cut.
+ Right
+ }
+
+ ///
+ /// Specifies how M47 (optional stop) commands are used.
+ ///
+ public enum M47Mode
+ {
+ /// Always include M47.
+ Always,
+
+ /// Include M47 with block delete functionality.
+ BlockDelete,
+
+ /// Automatically determine M47 placement.
+ Auto,
+
+ /// Do not use M47.
+ None
+ }
+
+ ///
+ /// Specifies when pallet exchange occurs.
+ ///
+ public enum PalletMode
+ {
+ /// No pallet exchange.
+ None,
+
+ /// Pallet exchange at end of sheet.
+ EndOfSheet,
+
+ /// Pallet exchange at start and end of sheet.
+ StartAndEnd
+ }
+
+ ///
+ /// Configuration for Cincinnati post processor.
+ /// Defines machine-specific parameters, output format, and cutting strategies.
+ ///
+ public class CincinnatiPostConfig
+ {
+ ///
+ /// Gets or sets the configuration name/identifier.
+ /// Default: "CL940"
+ ///
+ public string ConfigurationName { get; set; } = "CL940";
+
+ ///
+ /// Gets or sets the units for posted output.
+ /// Default: Units.Inches
+ ///
+ public Units PostedUnits { get; set; } = Units.Inches;
+
+ ///
+ /// Gets or sets the decimal accuracy for numeric output.
+ /// Default: 4
+ ///
+ public int PostedAccuracy { get; set; } = 4;
+
+ ///
+ /// Gets or sets how coordinate positioning is handled between parts.
+ /// Default: CoordinateMode.G92
+ ///
+ public CoordinateMode CoordModeBetweenParts { get; set; } = CoordinateMode.G92;
+
+ ///
+ /// Gets or sets whether to use subprograms for sheet operations.
+ /// Default: true
+ ///
+ public bool UseSheetSubprograms { get; set; } = true;
+
+ ///
+ /// Gets or sets the starting subprogram number for sheet operations.
+ /// Default: 101
+ ///
+ public int SheetSubprogramStart { get; set; } = 101;
+
+ ///
+ /// Gets or sets the subprogram number for variable declarations.
+ /// Default: 100
+ ///
+ public int VariableDeclarationSubprogram { get; set; } = 100;
+
+ ///
+ /// Gets or sets how G89 parameters are provided.
+ /// Default: G89Mode.LibraryFile
+ ///
+ public G89Mode ProcessParameterMode { get; set; } = G89Mode.LibraryFile;
+
+ ///
+ /// Gets or sets the default G89 library file path.
+ /// Default: empty string
+ ///
+ public string DefaultLibraryFile { get; set; } = "";
+
+ ///
+ /// Gets or sets whether to repeat G89 before each feature.
+ /// Default: true
+ ///
+ public bool RepeatG89BeforeEachFeature { get; set; } = true;
+
+ ///
+ /// Gets or sets whether to use exact stop mode (G61).
+ /// Default: false
+ ///
+ public bool UseExactStopMode { get; set; } = false;
+
+ ///
+ /// Gets or sets where kerf compensation is applied.
+ /// Default: KerfMode.ControllerSide
+ ///
+ public KerfMode KerfCompensation { get; set; } = KerfMode.ControllerSide;
+
+ ///
+ /// Gets or sets the default side for kerf compensation.
+ /// Default: KerfSide.Left
+ ///
+ public KerfSide DefaultKerfSide { get; set; } = KerfSide.Left;
+
+ ///
+ /// Gets or sets how M47 is used in interior cuts.
+ /// Default: M47Mode.Always
+ ///
+ public M47Mode InteriorM47 { get; set; } = M47Mode.Always;
+
+ ///
+ /// Gets or sets how M47 is used in exterior cuts.
+ /// Default: M47Mode.Always
+ ///
+ public M47Mode ExteriorM47 { get; set; } = M47Mode.Always;
+
+ ///
+ /// Gets or sets the safety head raise distance (in machine units).
+ /// Default: 2000
+ ///
+ public int? SafetyHeadraiseDistance { get; set; } = 2000;
+
+ ///
+ /// Gets or sets the distance threshold for M47 override.
+ /// Default: null
+ ///
+ public double? M47OverrideDistanceThreshold { get; set; } = null;
+
+ ///
+ /// Gets or sets whether to use anti-dive functionality.
+ /// Default: true
+ ///
+ public bool UseAntiDive { get; set; } = true;
+
+ ///
+ /// Gets or sets whether to use smart rapids optimization.
+ /// Default: false
+ ///
+ public bool UseSmartRapids { get; set; } = false;
+
+ ///
+ /// Gets or sets when pallet exchange occurs.
+ /// Default: PalletMode.EndOfSheet
+ ///
+ public PalletMode PalletExchange { get; set; } = PalletMode.EndOfSheet;
+
+ ///
+ /// Gets or sets whether to use line numbers in output.
+ /// Default: true
+ ///
+ public bool UseLineNumbers { get; set; } = true;
+
+ ///
+ /// Gets or sets the starting line number for features.
+ /// Default: 1
+ ///
+ public int FeatureLineNumberStart { get; set; } = 1;
+
+ ///
+ /// Gets or sets whether to use speed/gas commands.
+ /// Default: false
+ ///
+ public bool UseSpeedGas { get; set; } = false;
+
+ ///
+ /// Gets or sets the feedrate percentage for lead-in moves.
+ /// Default: 0.5 (50%)
+ ///
+ public double LeadInFeedratePercent { get; set; } = 0.5;
+
+ ///
+ /// Gets or sets the feedrate percentage for lead-in arc-to-line moves.
+ /// Default: 0.5 (50%)
+ ///
+ public double LeadInArcLine2FeedratePercent { get; set; } = 0.5;
+
+ ///
+ /// Gets or sets the feedrate multiplier for circular cuts.
+ /// Default: 0.8 (80%)
+ ///
+ public double CircleFeedrateMultiplier { get; set; } = 0.8;
+
+ ///
+ /// Gets or sets the variable number for sheet width.
+ /// Default: 110
+ ///
+ public int SheetWidthVariable { get; set; } = 110;
+
+ ///
+ /// Gets or sets the variable number for sheet length.
+ /// Default: 111
+ ///
+ public int SheetLengthVariable { get; set; } = 111;
+ }
+}