@@ -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