Streaming video data via networks
Project description
NCParse (Formally GCodeParser)
Python library to parse GCode into its components
About
GCode Parser was originally packed into my newest project CNClingish. However, I thought it would be just as useful by itself.
Install
Install via pip
python3 -m pip install NCParse
Code Sample
file = '../test.nc'
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, file)
with open(filename, 'r') as f:
for line in f:
line = line.strip()
if not line.startswith('(') and not line.startswith('%') and len(line) > 0:
print('> ' + line)
GCode.parse_line(line)
The above code will take a .nc file, look at each line, and run it through parse_line method of the GCode class and split it into its components.
Sample Ouput
the non-indented lines are the original line of code passed into the parser. The indented code are each of the parsed commands with their letter, number, and coordinates (if provided)
> T1 M06 (Select tool 1) ;
T 1
M 06
> G00 G90 G40 G49 G54 (Safe startup) ;
G 00
G 90
G 40
G 49
G 54
> G00 X0 Y0 (Rapid to 1st position) ;
G 00 (0, 0, 0)
> S1000 M03 (Spindle on CW) ;
S 1000
M 03
> G43 H01 Z0.1 (Tool offset 1 on) ;
G 43
H 01 (0, 0, 0.1)
> M08 (Coolant on) ;
M 08
> G12 I0.75 F10. Z-1.2 D01 (Finish pocket CW) ;
G 12
I 0.75
F 10. (0, 0, -1.2)
D 01
> G00 Z0.1 (Retract) ;
G 00 (0, 0, 0.1)
> G00 Z0.1 M09 (Rapid retract, Coolant off) ;
G 00 (0, 0, 0.1)
M 09
> G53 G49 Z0 M05 (Z home, Spindle off) ;
G 53
G 49 (0, 0, 0)
M 05
> G53 Y0 (Y home) ;
G 53 (0, 0, 0)
> M30 (End program) ;
M 30
TODO
- Implement parsing for if statements used by some machines (HAAS)
- Clean-up
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file NCPrase-0.0.13.tar.gz
.
File metadata
- Download URL: NCPrase-0.0.13.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a0b145229047f710b39848db8662d0fd780d67f7c813b6ff66b89b2ca1699d0 |
|
MD5 | f924445584de6b1fe2f6be5b54f24b0c |
|
BLAKE2b-256 | 5fa74c2f79e56f36f0ca6e6555bd24a7891d9faa02b1d5087630748abd4eb235 |
File details
Details for the file NCPrase-0.0.13-py3-none-any.whl
.
File metadata
- Download URL: NCPrase-0.0.13-py3-none-any.whl
- Upload date:
- Size: 2.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.62.3 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1cd711f48727c5a511a19b5bb10917b6870746b591a5291d20e281583093682 |
|
MD5 | e688796636e6a0e74c77baf10c1ef13a |
|
BLAKE2b-256 | 7f61b9b3d1d40e8d6a3841778ea4c1128985d2af82029634dcc0b994042c3766 |