diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2014-03-20 00:49:20 +0000 |
|---|---|---|
| committer | Jabiertxof <jtx@jtx.marker.es> | 2014-03-20 00:49:20 +0000 |
| commit | eb7f42ddba7787478f76be7ac0a2962347194bc6 (patch) | |
| tree | 045b7253dd413d40fb121083930d7e68fce86e8b | |
| parent | Refactor of anchors (diff) | |
| parent | added closing commands to avoid errors on old pen plotters, better command la... (diff) | |
| download | inkscape-eb7f42ddba7787478f76be7ac0a2962347194bc6.tar.gz inkscape-eb7f42ddba7787478f76be7ac0a2962347194bc6.zip | |
update to trunk
(bzr r11950.1.307)
| -rw-r--r-- | share/extensions/hpgl_encoder.py | 9 | ||||
| -rw-r--r-- | share/extensions/plotter.py | 27 |
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 |
