Table of Contents

Controller Page

The Controller Page is responsible for configuring and managing the CNC controller settings for the machine tool.

Key Models

The key models used by the Controller Page are:

The MachiningProjectDisplayee contains IsoCoordinateEntryDisplayee and HeidenhainCoordinateEntryDisplayee. They are used in this GUI.

Connection with Main Panel

The Controller Page is activated through the Main Panel's Environment menu. It retrieves the MachiningProject from the Main Panel and updates the model.

Layout

  • Controller Page
    • Management Panel
      • Head Line
      • Management Tabs Panel
        • Coordinate Table Tab
          • ISO Coordinate Table Panel
            • <xref:Hi.Numerical.NcEnv>.<xref:Hi.Numerical.NcEnv.IsoCoordinateTable> Display (Note that The XYZ is not sortable on the table.)
        • Datum Preset Table Tab (Only visible for Heidenhain controllers)
          • <xref:Hi.Numerical.NcEnv.HeidenhainDatumPresetTable> Panel (Note that The XYZ is not sortable on the table.)
        • Datum Shift Table Tab (Only visible for Heidenhain controllers) (Note that The XYZ is not sortable on the table.)
        • Offset Table Tab
        • Machine Tab
          • <xref:Hi.Numerical.NcEnv.RapidFeedrate_mmdmin> Settings
          • <xref:Hi.Numerical.NcEnv.ToolingTime> Settings
          • Linear Axis Limits Table
            • <xref:Hi.Numerical.NcEnv.StrokeLimitXyz_mm> Min and Max for X, Y, Z
          • Rotary Axis Table
            • <xref:Hi.Numerical.NcEnv.StrokeLimitAbc_rad> Min and Max for A, B, C
            • <xref:Hi.Numerical.NcEnv.MaxRotarySpeedABC_radds> for A, B, C
        • Brand Tab
          • <xref:Hi.Numerical.NcEnv.CncBrand> Selection Dropdown
          • Brand-specific Settings Panel (content varies based on selected brand)
        • Config Tab
          • <xref:Hi.Numerical.NcEnv.SetToolHeightCompensationOnFeatureNormal> Setting
          • <xref:Hi.Numerical.NcEnv.EnableShortestRotary> Setting
    • Viewer Panel
Tip

Viewer Panel is not essential in the single user desktop application if this page raises a new window so that there arises a duplicate rendering content with the Main Window. This page should have a code-behind boolean property to add / remove the Viewer Panel. There should not preserve space for the un-existed Viewer Panel.

Apply SetViewToIsometricView() on initialization if Viewer Panel has enabled.

Tip

Add a resizable splitter between the Manage Panel and Viewer Panel to allow users to customize the interface layout according to their needs.

Behavior

ISO Coordinate Table

The ISO coordinate table allows users to edit and manage coordinates for the <xref:Hi.Numerical.NcEnv.IsoCoordinateTable>. Each entry consists of:

  • An index identifier
  • X, Y, Z coordinate values
  • Action buttons to set the entry to program zero or machine zero

Row selection updates IsoCoordinateId.

Datum Preset and Shift Tables (Heidenhain)

These tables are specific to Heidenhain controllers and provide interfaces for:

  • Setting datum preset positions in <xref:Hi.Numerical.NcEnv.HeidenhainDatumPresetTable>
  • Configuring datum shifts in <xref:Hi.Numerical.NcEnv.HeidenhainDatumShiftTable>
  • Visualizing selected datum in the 3D viewer with HeidenhainCoordinateEntryDisplayee

Offset Table

Manages tool offsets with the following capabilities:

  • Display and edit ideal radius and height values in MillingToolOffsetTable
  • Configure radial and axial wear values
  • Option to automatically set ideal offset based on the MachiningToolHouse configuration
  • Add new tool offset entries (when not using tool house dependency)

Machine Configuration

Controls machine-specific settings:

  • <xref:Hi.Numerical.NcEnv.RapidFeedrate_mmdmin> (mm/min)
  • <xref:Hi.Numerical.NcEnv.ToolingTime> (seconds)
  • Stroke limits (minimum and maximum) for linear axes (<xref:Hi.Numerical.NcEnv.StrokeLimitXyz_mm>)
  • Stroke limits and maximum speeds for rotary axes (<xref:Hi.Numerical.NcEnv.StrokeLimitAbc_rad> and <xref:Hi.Numerical.NcEnv.MaxRotarySpeedABC_radds>)

Brand Selection

Allows switching between different CNC controller brands via <xref:Hi.Numerical.NcEnv.CncBrand>:

Each brand may have specialized settings that appear when selected.

Config Options

General configuration options including:

  • <xref:Hi.Numerical.NcEnv.SetToolHeightCompensationOnFeatureNormal> setting
  • <xref:Hi.Numerical.NcEnv.EnableShortestRotary> optimization

Source Code Locations

See HiNC GUI Architecture for git repository links.

WPF Application

  • Numerical/Controller/ControllerWindow
  • Numerical/Controller/IsoCoordinateTablePanel
  • Numerical/Controller/DatumPresetTablePanel
  • Numerical/Controller/DatumShiftTablePanel
  • Numerical/Controller/ControllerExtendedRenderingCanvasToolBar

Web Application

  • Controller/ControllerController.cs - Backend API controller
  • wwwroot/controller/controller-panel.html - Main HTML structure
  • wwwroot/controller/controller-panel.js - Main Vue.js component
  • wwwroot/controller/controller-panel.css - Main styling
  • wwwroot/controller/controller-extended-toolbar.js - Extended toolbar Vue.js component
  • wwwroot/controller/controller-extended-toolbar.css - Toolbar styling
  • wwwroot/controller/tabs/*.js - Individual tab components:
    • coordinate-table-tab.js
    • datum-preset-tab.js
    • datum-shift-tab.js
    • offset-table-tab.js
    • machine-tab.js
    • brand-tab.js
    • config-tab.js