Giter VIP home page Giter VIP logo

nclcut's Introduction

NCLcut: Efficient NCL File Shortening Tool

Overview

NCLcut is a specialized tool designed to efficiently shorten large NCL (Numerical Control Language) files used in post-processor runs. Developed for scenarios where extensive NCL files lead to prolonged testing times, NCLcut allows users to selectively trim these files, focusing on essential parts for testing.

Features

  • Open File: Load NCL files (.ncl) through a user-friendly dialog window.
  • File Information Display: Shows the filename, path, and file size.
  • Sequence Display: Lists sequences with details like running number, sequence name, feature number, line count, and tool presence.
  • Selective Shortening: Choose individual or multiple sequences for trimming.
  • Customizable GOTO Limit: Set a limit for the number of GOTO movements (default: 30).
  • Cutting and Deleting Options: Trim or remove selected sequences.
  • File Size Update: View the new file size post-modification.
  • Save Options: Overwrite the existing file or save as a new file.
  • Sequence Preview: Non-editable window to view the start of the selected sequence.

Functionality

  • Line-by-Line Reading: NCL files are read into memory one line at a time.
  • Sequence Detection: Identifies sequence start (->FEATNO/), end (->END/), name (PPRINT / NC SEQUENCE NAME:), tools (LOADTL or TURRET), circles (CIRCLE), GOTOs, continuation lines ($), and file end (FINI).
  • Object Creation: Each sequence's data is stored in an object, with planned changes saved initially in the object.
  • Continuation Lines: Ensures 1:1 output of continuation lines as in the input file.
  • Circle Handling: Prevents separation of GOTOs following a CIRCLE command.
  • End-of-Sequence Handling: Cuts only GOTOs at the end of a sequence, keeping technology instructions intact.

Requirements

  • Programming Environment: C++, Visual Studio 2019, preferably using MFC.
  • Platform: Windows executable, standalone.

Usage

  1. Open File: Click 'Open File' to load an NCL file.
  2. Select Sequences: Choose sequences to shorten or delete.
  3. Set GOTO Limit: Adjust the number of remaining GOTOs if needed.
  4. Modify File: Use 'Cutting' or 'Deleting' options as required.
  5. Save Changes: Click 'Save' or 'Save as' to finalize changes.

Note

This tool is designed to streamline the process of shortening NCL files for testing purposes, ensuring efficiency and accuracy in handling large files.


For more information, updates, or to contribute, please visit our GitHub repository.

nclcut's People

Contributors

abelgeressu avatar

Stargazers

 avatar

Watchers

 avatar

nclcut's Issues

Issue 5: UI for Sequence Display and Selection

Issue 5: UI for Sequence Display and Selection
Title: Develop UI for Sequence Display and Interaction
Description:
Create a UI component to list sequences with details (running number, name, feature number, line count, tool presence).
Allow users to select individual or multiple sequences for shortening or deletion.

Issue 3: File Information Display

Issue 3: File Information Display
Title: Display File Information in UI
Description:
Show the filename, complete path, and file size in the application's UI after a file is loaded

Issue 8: File Saving Mechanism

Title: Implement File Saving Functionality
Description:
Develop functionality to save the modified file, either by overwriting the existing file or saving as a new file.
Issue 9: Testing and Debugging
Title: Conduct Thorough Testing and Debugging
Description:
Perform comprehensive testing of the application to ensure all functionalities work as expected.
Debug any issues or errors that arise during testing.
Issue 10: Documentation and Final Touches
Title: Finalize Documentation and UI Polishing
Description:
Create detailed documentation for the application.
Polish the UI for better user experience and consistency.
Issue 11: Deployment and Packaging
Title: Prepare Application for Deployment
Description:
Set up the project for deployment, including any necessary packaging or installer creation.
Each issue should be tagged appropriately (e.g.,

Issue 4: Sequence Detection and Parsing

Title: Implement Sequence Detection and Parsing
Description:
Parse the NCL file to detect sequences, tools, GOTOs, circles, and continuation lines.
Store each sequence's information in a structured format.

Issue 7: Sequence Modification Logic

Title: Develop Logic for Cutting and Deleting Sequences
Description:
Implement the logic to shorten or delete selected sequences based on user input.
Ensure that GOTOs after CIRCLE commands are not separated and that technology instructions remain intact.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.