Skip to content

Commit ea3cdab

Browse files
committed
Revise pen up/down handling. Add explicit resolution setting
1 parent b813aaf commit ea3cdab

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

inkscape_driver/eggbot.py

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,8 @@ def effect( self ):
226226
elif self.options.tab == '"manual"':
227227
self.manualCommand()
228228

229-
if (self.serialPort):
229+
if self.serialPort is not None:
230+
ebb_motion.doTimedPause(self.serialPort, 10) #Pause a moment for underway commands to finish...
230231
ebb_serial.closePort(self.serialPort)
231232

232233
self.svgDataRead = False
@@ -331,7 +332,7 @@ def manualCommand( self ):
331332
self.penDown()
332333

333334
elif self.options.manualType == "enable-motors":
334-
ebb_motion.sendEnableMotors(self.serialPort)
335+
ebb_motion.sendEnableMotors(self.serialPort, 1) # 16X microstepping
335336

336337
elif self.options.manualType == "disable-motors":
337338
self.sendDisableMotors()
@@ -359,7 +360,9 @@ def manualCommand( self ):
359360
nDeltaX = 0
360361
else:
361362
return
362-
363+
364+
ebb_motion.sendEnableMotors(self.serialPort, 1) # 16X microstepping
365+
363366
#Query pen position: 1 up, 0 down (followed by OK)
364367
strVersion = ebb_serial.query( self.serialPort, 'QP\r' )
365368

@@ -377,8 +380,9 @@ def manualCommand( self ):
377380
nTime = int( math.ceil(nTime / 10.0))
378381

379382
strOutput = ','.join( ['SM', str( nTime ), str( nDeltaY ), str( nDeltaX )] ) + '\r'
383+
#inkex.errormsg( 'strOutput: ' + strOutput )
380384

381-
ebb_serial.command( self.serialPort, strOutput )
385+
ebb_serial.command( self.serialPort, strOutput )
382386

383387
def setupCommand( self ):
384388
"""Execute commands from the "setup" tab"""
@@ -391,8 +395,6 @@ def setupCommand( self ):
391395
self.sendDisableMotors()
392396
else:
393397
ebb_motion.TogglePen(self.serialPort)
394-
ebb_motion.doTimedPause(self.serialPort, 100)
395-
#give previous command a chance to execute before the port is closed.
396398

397399
def plotToEggBot( self ):
398400
'''Perform the actual plotting, if selected in the interface:'''
@@ -423,7 +425,8 @@ def plotToEggBot( self ):
423425
self.svgTransform = parseTransform( 'scale(%f,%f) translate(%f,%f)' % (sx, sy, -float( vinfo[0] ), -float( vinfo[1] ) ) )
424426

425427
self.ServoSetup()
426-
428+
ebb_motion.sendEnableMotors(self.serialPort, 1) # 16X microstepping
429+
427430
# Ensure that the engraver is turned off for the time being
428431
# It will be turned back on when the first non-virtual pen-down occurs
429432
if self.options.engraving:
@@ -990,17 +993,20 @@ def sendDisableMotors( self ):
990993

991994
def penUp( self ):
992995
self.virtualPenIsUp = True # Virtual pen keeps track of state for resuming plotting.
993-
if ( not self.resumeMode):
996+
if ( not self.resumeMode) and (not self.bPenIsUp): # skip if pen is already up, or if we're resuming.
994997
ebb_motion.sendPenUp(self.serialPort, self.options.penUpDelay )
995998
self.bPenIsUp = True
996999

9971000
def penDown( self ):
9981001
self.virtualPenIsUp = False # Virtual pen keeps track of state for resuming plotting.
999-
if ( not self.resumeMode ):
1000-
if self.penDownActivatesEngraver:
1001-
self.engraverOn() # will check self.enableEngraver
1002-
ebb_motion.sendPenUp(self.serialPort, self.options.penUpDelay )
1003-
self.bPenIsUp = False
1002+
if (self.bPenIsUp): # skip if pen is already down
1003+
if ( not self.resumeMode ) and (not self.bStopped): # skip if we're resuming or stopped
1004+
self.bPenIsUp = False
1005+
if self.penDownActivatesEngraver:
1006+
self.engraverOn() # will check self.enableEngraver
1007+
ebb_motion.sendPenDown(self.serialPort, self.options.penUpDelay )
1008+
ebb_motion.doTimedPause(self.serialPort, 10) #Pause a moment for underway commands to finish...
1009+
10041010

10051011
def engraverOff( self ):
10061012
# Note: we don't bother checking self.engraverIsOn -- turn it off regardless

0 commit comments

Comments
 (0)