blendercam/scripts/addons/fabex/post_processors/hpgl3d_read.py

51 wiersze
1.4 KiB
Python

from . import num_reader
import sys
import math
class Parser(num_reader.NumReader):
def __init__(self, writer):
num_reader.NumReader.__init__(self, writer)
self.x = 0
self.y = 0
self.z = 10000
self.f = 0
self.units_to_mm = 0.01
def ParseV(self):
self.line_index = self.line_index + 1
f = self.get_number()
if len(f) > 0:
self.f = float(f)
self.add_word("prep")
def ParseZ(self):
self.line_index = self.line_index + 1
x = self.get_number()
if len(x) > 0:
y = self.get_number()
if len(y) > 0:
z = self.get_number()
if len(z) > 0:
if self.f > 40:
color = "rapid"
else:
color = "feed"
self.add_word(color)
self.begin_path(color)
self.add_line(
int(x) * self.units_to_mm,
int(y) * self.units_to_mm,
int(z) * self.units_to_mm,
)
self.end_path()
self.x = int(x)
self.y = int(y)
self.z = int(z)
def ParseFromFirstLetter(self, c):
if c == "Z":
self.ParseZ()
elif c == "V":
self.ParseV()