summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-03-20 00:49:20 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-03-20 00:49:20 +0000
commiteb7f42ddba7787478f76be7ac0a2962347194bc6 (patch)
tree045b7253dd413d40fb121083930d7e68fce86e8b
parentRefactor of anchors (diff)
parentadded closing commands to avoid errors on old pen plotters, better command la... (diff)
downloadinkscape-eb7f42ddba7787478f76be7ac0a2962347194bc6.tar.gz
inkscape-eb7f42ddba7787478f76be7ac0a2962347194bc6.zip
update to trunk
(bzr r11950.1.307)
-rw-r--r--share/extensions/hpgl_encoder.py9
-rw-r--r--share/extensions/plotter.py27
2 files changed, 22 insertions, 14 deletions
diff --git a/share/extensions/hpgl_encoder.py b/share/extensions/hpgl_encoder.py
index c7f0cd282..a16561e97 100644
--- a/share/extensions/hpgl_encoder.py
+++ b/share/extensions/hpgl_encoder.py
@@ -59,6 +59,7 @@ class hpglEncoder:
self.doc = effect.document.getroot()
self.docWidth = effect.unittouu(self.doc.get('width'))
self.docHeight = effect.unittouu(self.doc.get('height'))
+ self.hpgl = ''
self.divergenceX = 'False'
self.divergenceY = 'False'
self.sizeX = 'False'
@@ -156,12 +157,6 @@ class hpglEncoder:
[0.0, self.mirrorY * self.scaleY * self.viewBoxTransformY, -self.divergenceY + self.offsetY]]
groupmat = simpletransform.composeTransform(groupmat, simpletransform.parseTransform('rotate(' + self.options.orientation + ')'))
self.vData = [['', -1.0, -1.0], ['', -1.0, -1.0], ['', -1.0, -1.0], ['', -1.0, -1.0]]
- # store initial hpgl commands
- self.hpgl = 'IN;SP%d' % self.options.pen
- if self.options.force > 0:
- self.hpgl += ';FS%d' % self.options.force
- if self.options.speed > 0:
- self.hpgl += ';VS%d' % self.options.speed
# add move to zero point and precut
if self.toolOffset > 0.0 and self.options.precut:
if self.options.center:
@@ -185,8 +180,6 @@ class hpglEncoder:
self.processGroups(self.doc, groupmat)
# shift an empty node in in order to process last node in cache
self.processOffset('PU', 0, 0)
- # add return to zero point
- self.hpgl += ';PU0,0;'
if self.options.debug:
return self.hpgl, self
else:
diff --git a/share/extensions/plotter.py b/share/extensions/plotter.py
index be59f604b..398ab683e 100644
--- a/share/extensions/plotter.py
+++ b/share/extensions/plotter.py
@@ -83,6 +83,8 @@ class Plot(inkex.Effect):
else:
'''
# convert to other formats
+ if self.options.commandLanguage == 'HPGL':
+ self.convertToHpgl()
if self.options.commandLanguage == 'DMPL':
self.convertToDmpl()
if self.options.commandLanguage == 'ZING':
@@ -93,6 +95,15 @@ class Plot(inkex.Effect):
else:
self.sendHpglToSerial()
+ def convertToHpgl(self):
+ # convert raw HPGL to HPGL
+ hpglInit = 'IN;SP%d' % self.options.pen
+ if self.options.force > 0:
+ hpglInit += ';FS%d' % self.options.force
+ if self.options.speed > 0:
+ hpglInit += ';VS%d' % self.options.speed
+ self.hpgl = hpglInit + self.hpgl + ';PU0,0;SP0;IN;'
+
def convertToDmpl(self):
# convert HPGL to DMPL
# ;: = Initialise plotter
@@ -109,16 +120,20 @@ class Plot(inkex.Effect):
self.hpgl = self.hpgl.replace(';', ',')
self.hpgl = self.hpgl.replace('PU', 'U')
self.hpgl = self.hpgl.replace('PD', 'D')
- velocity = ''
+ dmplInit = ';:HAL0P%d' % self.options.pen
if self.options.speed > 0:
- velocity = 'V' + str(self.options.speed)
- self.hpgl = re.sub(r'IN,SP[0-9]+(,FS[0-9]+)?(,VS[0-9]+)?,', r';:HAL0P' + str(self.options.pen) + velocity + 'EC1', self.hpgl)
- self.hpgl += 'Z'
+ dmplInit += 'V%d' % self.options.speed
+ dmplInit += 'EC1'
+ self.hpgl = dmplInit + self.hpgl[1:] + ',U0,0,P0Z'
def convertToZing(self):
# convert HPGL to Zing
- self.hpgl = self.hpgl.replace('IN;', 'ZG;')
- self.hpgl += '@'
+ hpglInit = 'ZG;SP%d' % self.options.pen
+ if self.options.force > 0:
+ hpglInit += ';FS%d' % self.options.force
+ if self.options.speed > 0:
+ hpglInit += ';VS%d' % self.options.speed
+ self.hpgl = hpglInit + self.hpgl + ';PU0,0;SP0;@'
def sendHpglToSerial(self):
# gracefully exit script when pySerial is missing