-
Notifications
You must be signed in to change notification settings - Fork 0
steptools/OpenCLI
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
== == STEP-NC Machine CLI Plugin == This project builds a simple plugin for STEP-NC Machine that exports some selected PBF process as a CLI file. The plugin is a small DLL that the STEP-NC Explorer loads from a "plugins-x64" directory where the executable is located. When you build and run the project, it makes a local copy of the Explorer in your build directory and runs the plugin there. When distributing a finished plugin, install it under Program Files in the "STEP Tools\STEP-NC Machine\plugins-x64" folder. The project has two classes: "CLI Writer" which does all of the work, and "PlugOpenCLIExport" which is a small class that defines an entry in the STEP-NC Explorer menus. The DLL can define more such classes to add other menu entries. = How It Works The CLI Writer makes two passes over the process. The CLI format needs the total number of layers at the start of the file, so the ScanLayers() function examines the Z-coordinates of moves and groups the workingsteps into layers. It also looks at the dimensions of the product to find the offset needed to set the bottom at zero. The WriteHeader() function prints the number of layers, current date, unit scaling, and any other startup information you would like. The WriteBody() function makes a second pass over the process and prints the hatches. We use the Adaptive process cursor class to loop over the process, and we request that it stops at each move, workplan start, workingstep start/end, and tool change event. At each move, we examine the feedrate ($$SPEED) and spindle ($$POWER), and if either has changed we print the moves we've seen so far as a $$HATCH and then change those settings. Otherwise we keep building a list of moves. Tool changes may change the diameter ($$FOCUS) At a workingstep start, we consult the information we built with ScanLayers() issue a $$LAYER if it is on a new layer. At the end we issue any remaining $$HATCH moves for that layer. = Make Your Machine Happy If you would like to enhance this output, you could change the print strings to other formats required by you machine, or perhaps delay hatch printing so it spans workingsteps if speed/power does not change, or perhaps include other contextual information from the workingsteps. You have access to the Finder (Data.oFind), Apt (Data.oApt), Tolerance (Data.oTol), and other STEP-NC DLL objects that are used by the STEP-NC Explorer, so you can work in an interactive session rather than just a standalone program. https://www.steptools.com/docs/stepnc_api/ = Other Notes In order to run a local version of STEP-NC Explorer that loads the plugin, the C# project needs Debug | Start action | Start external program set to one of the following: bin\x64\Debug\STEPNCExplorer.exe debug config bin\x64\Release\STEPNCExplorer.exe release config Unfortunately, Visual Studio will only save those settings in the csproj.user preferences file, not the main project file. We have provided a simple .user file with these settings.
About
A CLI export plugin for STEP-NC Machine that others can adapt to their needs.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published