another attempt to speed up nc writing

pull/4/head
vilda.novak@gmail.com 2014-04-23 22:29:58 +00:00
rodzic 664d9d8fd3
commit 4f24eb1ef9
2 zmienionych plików z 17 dodań i 14 usunięć

Wyświetl plik

@ -171,7 +171,7 @@ class Creator(nc.Creator):
## Programs ## Programs
def program_begin(self, id, name=''): def program_begin(self, id, name=''):
self.write((self.PROGRAM() % id) + self.SPACE() + (self.COMMENT(name))) self.writem([(self.PROGRAM() % id) , self.SPACE() , (self.COMMENT(name))])
self.write('\n') self.write('\n')
def program_stop(self, optional=False): def program_stop(self, optional=False):
@ -413,7 +413,7 @@ class Creator(nc.Creator):
self.write_blocknum() self.write_blocknum()
if self.g0123_modal: if self.g0123_modal:
if self.prev_g0123 != self.FEED(): if self.prev_g0123 != self.FEED():
self.write(self.SPACE() + self.FEED()) self.writem([self.SPACE() , self.FEED()])
self.prev_g0123 = self.FEED() self.prev_g0123 = self.FEED()
else: else:
self.write(self.FEED()) self.write(self.FEED())
@ -422,49 +422,49 @@ class Creator(nc.Creator):
if (x != None): if (x != None):
dx = x - self.x dx = x - self.x
if (self.absolute_flag ): if (self.absolute_flag ):
self.write(self.SPACE() + self.X() + (self.fmt.string(x + self.shift_x))) self.writem([self.SPACE() , self.X() , (self.fmt.string(x + self.shift_x))])
else: else:
self.write(self.SPACE() + self.X() + (self.fmt.string(dx))) self.writem([self.SPACE() , self.X() , (self.fmt.string(dx))])
self.x = x self.x = x
if (y != None): if (y != None):
dy = y - self.y dy = y - self.y
if (self.absolute_flag ): if (self.absolute_flag ):
self.write(self.SPACE() + self.Y() + (self.fmt.string(y + self.shift_y))) self.writem([self.SPACE() , self.Y() , (self.fmt.string(y + self.shift_y))])
else: else:
self.write(self.SPACE() + self.Y() + (self.fmt.string(dy))) self.writem([self.SPACE() , self.Y() , (self.fmt.string(dy))])
self.y = y self.y = y
if (z != None): if (z != None):
dz = z - self.z dz = z - self.z
if (self.absolute_flag ): if (self.absolute_flag ):
self.write(self.SPACE() + self.Z() + (self.fmt.string(z + self.shift_z))) self.writem([self.SPACE() , self.Z() , (self.fmt.string(z + self.shift_z))])
else: else:
self.write(self.SPACE() + self.Z() + (self.fmt.string(dz))) self.writem([self.SPACE() , self.Z() , (self.fmt.string(dz))])
self.z = z self.z = z
if (a != None): if (a != None):
da = a - self.a da = a - self.a
if (self.absolute_flag ): if (self.absolute_flag ):
self.write(self.SPACE() + self.A() + (self.fmt.string(a))) self.writem(self.SPACE() , self.A() , (self.fmt.string(a)))
else: else:
self.write(self.SPACE() + self.A() + (self.fmt.string(da))) self.writem(self.SPACE() , self.A() , (self.fmt.string(da)))
self.a = a self.a = a
if (b != None): if (b != None):
db = b - self.b db = b - self.b
if (self.absolute_flag ): if (self.absolute_flag ):
self.write(self.SPACE() + self.B() + (self.fmt.string(b))) self.write(self.SPACE() , self.B() , (self.fmt.string(b)))
else: else:
self.write(self.SPACE() + self.B() + (self.fmt.string(db))) self.write(self.SPACE() , self.B() , (self.fmt.string(db)))
self.b = b self.b = b
if (c != None): if (c != None):
dc = c - self.c dc = c - self.c
if (self.absolute_flag ): if (self.absolute_flag ):
self.write(self.SPACE() + self.C() + (self.fmt.string(c))) self.write(self.SPACE() , self.C() , (self.fmt.string(c)))
else: else:
self.write(self.SPACE() + self.C() + (self.fmt.string(dc))) self.write(self.SPACE() , self.C() , (self.fmt.string(dc)))
self.c = c self.c = c
if (self.fhv) : self.calc_feedrate_hv(math.sqrt(dx*dx+dy*dy), math.fabs(dz)) if (self.fhv) : self.calc_feedrate_hv(math.sqrt(dx*dx+dy*dy), math.fabs(dz))

Wyświetl plik

@ -43,6 +43,9 @@ class Creator:
if len(self.buffer)>5000: if len(self.buffer)>5000:
self.file.write(''.join(self.buffer)) self.file.write(''.join(self.buffer))
self.buffer=[] self.buffer=[]
def writem(self, a):
self.buffer.extend(a)
############################################################################ ############################################################################
## Programs ## Programs