def addToProfileMenu( menu ): "Add a profile menu." settings.ToolDialog().addPluginToMenu( menu, __file__[ : __file__.rfind( '.' ) ] ) menu.add_separator() directoryPath = skeinforge_profile.getPluginsDirectoryPath() pluginFileNames = skeinforge_profile.getPluginFileNames() craftTypeName = skeinforge_profile.getCraftTypeName() profileRadioVar = settings.Tkinter.StringVar() for pluginFileName in pluginFileNames: addSubmenus( craftTypeName, menu, pluginFileName, os.path.join( directoryPath, pluginFileName ), profileRadioVar )
def addToProfileMenu( profileSelection, profileType, repository ): "Add a profile menu." pluginFileNames = skeinforge_profile.getPluginFileNames() craftTypeName = skeinforge_profile.getCraftTypeName() pluginModule = skeinforge_profile.getCraftTypePluginModule() profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository() ) for pluginFileName in pluginFileNames: skeinforge_profile.ProfileTypeMenuRadio().getFromMenuButtonDisplay( profileType, pluginFileName, repository, craftTypeName == pluginFileName ) for profileName in profilePluginSettings.profileList.value: skeinforge_profile.ProfileSelectionMenuRadio().getFromMenuButtonDisplay( profileSelection, profileName, repository, profileName == profilePluginSettings.profileListbox.value )
def addToProfileMenu(menu): "Add a profile menu." settings.ToolDialog().addPluginToMenu(menu, __file__[:__file__.rfind('.')]) menu.add_separator() directoryPath = skeinforge_profile.getPluginsDirectoryPath() pluginFileNames = skeinforge_profile.getPluginFileNames() craftTypeName = skeinforge_profile.getCraftTypeName() profileRadioVar = settings.Tkinter.StringVar() for pluginFileName in pluginFileNames: addSubmenus(craftTypeName, menu, pluginFileName, os.path.join(directoryPath, pluginFileName), profileRadioVar)
def addToProfileMenu(profileSelection, profileType, repository): "Add a profile menu." pluginFileNames = skeinforge_profile.getPluginFileNames() craftTypeName = skeinforge_profile.getCraftTypeName() pluginModule = skeinforge_profile.getCraftTypePluginModule() profilePluginSettings = settings.getReadRepository( pluginModule.getNewRepository()) for pluginFileName in pluginFileNames: skeinforge_profile.ProfileTypeMenuRadio().getFromMenuButtonDisplay( profileType, pluginFileName, repository, craftTypeName == pluginFileName) for profileName in profilePluginSettings.profileList.value: skeinforge_profile.ProfileSelectionMenuRadio( ).getFromMenuButtonDisplay( profileSelection, profileName, repository, profileName == profilePluginSettings.profileListbox.value)
def addInitializationToOutput( self ): "Add initialization gcode to the output." self.addFromUpperLowerFile( self.prefaceRepository.nameOfStartFile.value ) # Add a start file if it exists. self.distanceFeedRate.addTagBracketedLine( 'creator', 'skeinforge' ) # GCode formatted comment absoluteFilePathUntilDot = os.path.abspath( __file__ )[ : os.path.abspath( __file__ ).rfind( '.' ) ] if absoluteFilePathUntilDot == '/home/enrique/Desktop/backup/babbleold/script/reprap/pyRepRap/skeinforge_tools/craft_plugins/preface': #check to see if this script is on Enrique's computer gcodec.writeFileText( gcodec.getVersionFileName(), date.today().isoformat() ) versionText = gcodec.getFileText( gcodec.getVersionFileName() ) self.distanceFeedRate.addTagBracketedLine( 'version', versionText ) # GCode formatted comment self.distanceFeedRate.addLine( '(<extruderInitialization>)' ) # GCode formatted comment "BFB CODE 1st INITIALIZATION OF EXTRUDERS --------------------------------------------------------------------------------------------" self.bfbclass = bfb.BfbRepository() self.bfbclass = settings.getReadRepository( self.bfbclass ) self.raftclass = raft.RaftRepository() self.raftclass = settings.getReadRepository( self.raftclass ) self.secondHeadPrimeRev = chan(self.bfbclass.secondHeadPrimeRev.value, 6400) self.secondHeadPrimeSpeed = chan(self.bfbclass.secondHeadPrimeSpeed.value, 10) self.secondHeadPrintRev = chan(self.bfbclass.secondHeadPrintRev.value, 6400) self.secondHeadPrintPrime = chan(self.bfbclass.secondHeadPrintPrime.value, 6400) self.firstHeadPrimeRev = chan(self.bfbclass.firstHeadPrimeRev.value, 6400) self.firsHeadPrimeSpeed = chan(self.bfbclass.firsHeadPrimeSpeed.value, 10) self.firstHeadPrintRev = chan(self.bfbclass.firstHeadPrintRev.value, 6400) self.firstHeadPrintPrime = chan(self.bfbclass.firstHeadPrintPrime.value, 6400) self.speedclass = speed.SpeedRepository() self.speedclass = settings.getReadRepository( self.speedclass ) travelfeedRateMinute=60*self.speedclass.travelFeedRatePerSecond.value version=settings.getfirmware() version=version[0:2] if self.raftclass.activateRaft.value == True: "use second extruder for raft" if self.bfbclass.useRaft.value == True: if version == "x1": self.distanceFeedRate.addLine( '#v3.00' ) self.distanceFeedRate.addLine( 'G90' ) self.distanceFeedRate.addLine( 'M228' ) self.distanceFeedRate.addLine( 'M103' ) self.distanceFeedRate.addLine( 'G92 X'+str(self.bfbclass.secondHeadOffsetX.value)+' Y'+str(self.bfbclass.secondHeadOffsetY.value)+' F'+str(travelfeedRateMinute) ) self.distanceFeedRate.addLine( 'M107' ) self.distanceFeedRate.addLine( 'M204 S'+str(self.bfbclass.RaftT.value) ) self.distanceFeedRate.addLine( 'M552 P'+str(self.secondHeadPrimeRev)+' S'+str(self.secondHeadPrimeSpeed) ) self.distanceFeedRate.addLine( 'M103 P3200 S1000' ) self.distanceFeedRate.addLine( 'M543' ) if self.bfbclass.useM227.value== True: self.distanceFeedRate.addLine( 'M227 P'+str(self.secondHeadPrintPrime)+' S'+str(self.secondHeadPrintRev) ) if version == "x2": self.distanceFeedRate.addLine( '#v4.00' ) self.distanceFeedRate.addLine( 'G90' ) self.distanceFeedRate.addLine( 'G92 X'+str(self.bfbclass.secondHeadOffsetX.value)+' Y'+str(self.bfbclass.secondHeadOffsetY.value)+' F'+str(travelfeedRateMinute) ) if self.bfbclass.useM227.value== True: self.distanceFeedRate.addLine( 'M227 P'+str(self.secondHeadPrintPrime)+' S'+str(self.secondHeadPrintRev) ) self.distanceFeedRate.addLine( 'M107' ) self.distanceFeedRate.addLine( 'M204 S'+str(self.bfbclass.RaftT.value) ) self.distanceFeedRate.addLine( 'M552 P'+str(self.secondHeadPrimeRev)+' S'+str(self.secondHeadPrimeSpeed) ) self.distanceFeedRate.addLine( 'M543' ) if self.bfbclass.UseFanEx2.value== True: "Turn ON FAN" self.distanceFeedRate.addLine( 'M106') else: "Turn OFF FAN" self.distanceFeedRate.addLine( 'M107') else: if version == "x1": "use just one extruder for raft" self.distanceFeedRate.addLine( 'G90' ) self.distanceFeedRate.addLine( 'M228' ) self.distanceFeedRate.addLine( 'M103' ) self.distanceFeedRate.addLine( 'M107' ) self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.RaftT.value) ) self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) ) self.distanceFeedRate.addLine( 'M103 P3200 S1000' ) self.distanceFeedRate.addLine( 'M543' ) if version == "x2": "use just one extruder for raft" self.distanceFeedRate.addLine( 'G90' ) self.distanceFeedRate.addLine( 'M107' ) self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.RaftT.value) ) self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) ) self.distanceFeedRate.addLine( 'M543' ) if self.bfbclass.useM227.value== True: self.distanceFeedRate.addLine( 'M227 P'+str(self.firstHeadPrintPrime)+' S'+str(self.firstHeadPrintRev) ) if self.bfbclass.UseFanEx1.value== True: "Turn ON FAN" self.distanceFeedRate.addLine( 'M106') else: "Turn OFF FAN" self.distanceFeedRate.addLine( 'M107') else: if version == "x1": "NO RAFT" self.distanceFeedRate.addLine( 'G90' ) self.distanceFeedRate.addLine( 'M228' ) self.distanceFeedRate.addLine( 'M103' ) self.distanceFeedRate.addLine( 'M107' ) self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.firstWorkT.value) ) self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) ) self.distanceFeedRate.addLine( 'M103 P3200 S1000' ) self.distanceFeedRate.addLine( 'M543' ) if version == "x2": self.distanceFeedRate.addLine( 'G90' ) self.distanceFeedRate.addLine( 'M107' ) self.distanceFeedRate.addLine( 'M104 S'+str(self.bfbclass.firstWorkT.value) ) self.distanceFeedRate.addLine( 'M551 P'+str(self.firstHeadPrimeRev)+' S'+str(self.firsHeadPrimeSpeed) ) self.distanceFeedRate.addLine( 'M543' ) if self.bfbclass.useM227.value== True: self.distanceFeedRate.addLine( 'M227 P'+str(self.firstHeadPrintPrime)+' S'+str(self.firstHeadPrintRev) ) if self.bfbclass.UseFanEx1.value== True: "Turn ON FAN" self.distanceFeedRate.addLine( 'M106') else: "Turn OFF FAN" self.distanceFeedRate.addLine( 'M107') if self.prefaceRepository.setPositioningToAbsolute.value: self.distanceFeedRate.addLine( 'G90' ) # Set positioning to absolute. if self.prefaceRepository.setUnitsToMillimeters.value: self.distanceFeedRate.addLine( 'G21' ) # Set units to millimeters. if self.prefaceRepository.startAtHome.value: self.distanceFeedRate.addLine( 'G28' ) # Start at home. if self.prefaceRepository.turnExtruderOffAtStartUp.value: self.distanceFeedRate.addLine( 'M103' ) # Turn extruder off. craftTypeName = skeinforge_profile.getCraftTypeName() self.distanceFeedRate.addTagBracketedLine( 'craftTypeName', craftTypeName ) self.distanceFeedRate.addTagBracketedLine( 'decimalPlacesCarried', self.distanceFeedRate.decimalPlacesCarried ) self.distanceFeedRate.addTagBracketedLine( 'layerThickness', self.distanceFeedRate.getRounded( self.layerThickness ) ) if self.prefaceRepository.meta.value: self.distanceFeedRate.addTagBracketedLine( 'meta', self.prefaceRepository.meta.value ) self.distanceFeedRate.addTagBracketedLine( 'perimeterWidth', self.distanceFeedRate.getRounded( self.perimeterWidth ) ) self.distanceFeedRate.addTagBracketedLine( 'profileName', skeinforge_profile.getProfileName( craftTypeName ) ) self.distanceFeedRate.addTagBracketedLine( 'procedureDone', 'carve' ) self.distanceFeedRate.addTagBracketedLine( 'procedureDone', 'preface' ) self.distanceFeedRate.addLine( '(</extruderInitialization>)' ) # Initialization is finished, extrusion is starting. self.distanceFeedRate.addLine( '(<extrusion>)' ) # Initialization is finished, extrusion is starting.
def addInitializationToOutput(self): "Add initialization gcode to the output." self.addFromUpperLowerFile(self.prefaceRepository.nameOfStartFile.value ) # Add a start file if it exists. self.distanceFeedRate.addTagBracketedLine( 'creator', 'skeinforge') # GCode formatted comment absoluteFilePathUntilDot = os.path.abspath( __file__)[:os.path.abspath(__file__).rfind('.')] if absoluteFilePathUntilDot == '/home/enrique/Desktop/backup/babbleold/script/reprap/pyRepRap/skeinforge_tools/craft_plugins/preface': #check to see if this script is on Enrique's computer gcodec.writeFileText(gcodec.getVersionFileName(), date.today().isoformat()) versionText = gcodec.getFileText(gcodec.getVersionFileName()) self.distanceFeedRate.addTagBracketedLine( 'version', versionText) # GCode formatted comment self.distanceFeedRate.addLine( '(<extruderInitialization>)') # GCode formatted comment "BFB CODE 1st INITIALIZATION OF EXTRUDERS --------------------------------------------------------------------------------------------" self.bfbclass = bfb.BfbRepository() self.bfbclass = settings.getReadRepository(self.bfbclass) self.raftclass = raft.RaftRepository() self.raftclass = settings.getReadRepository(self.raftclass) self.secondHeadPrimeRev = chan(self.bfbclass.secondHeadPrimeRev.value, 6400) self.secondHeadPrimeSpeed = chan( self.bfbclass.secondHeadPrimeSpeed.value, 10) self.secondHeadPrintRev = chan(self.bfbclass.secondHeadPrintRev.value, 6400) self.secondHeadPrintPrime = chan( self.bfbclass.secondHeadPrintPrime.value, 6400) self.firstHeadPrimeRev = chan(self.bfbclass.firstHeadPrimeRev.value, 6400) self.firsHeadPrimeSpeed = chan(self.bfbclass.firsHeadPrimeSpeed.value, 10) self.firstHeadPrintRev = chan(self.bfbclass.firstHeadPrintRev.value, 6400) self.firstHeadPrintPrime = chan( self.bfbclass.firstHeadPrintPrime.value, 6400) self.speedclass = speed.SpeedRepository() self.speedclass = settings.getReadRepository(self.speedclass) travelfeedRateMinute = 60 * self.speedclass.travelFeedRatePerSecond.value version = settings.getfirmware() version = version[0:2] if self.raftclass.activateRaft.value == True: "use second extruder for raft" if self.bfbclass.useRaft.value == True: if version == "x1": self.distanceFeedRate.addLine('#v3.00') self.distanceFeedRate.addLine('G90') self.distanceFeedRate.addLine('M228') self.distanceFeedRate.addLine('M103') self.distanceFeedRate.addLine( 'G92 X' + str(self.bfbclass.secondHeadOffsetX.value) + ' Y' + str(self.bfbclass.secondHeadOffsetY.value) + ' F' + str(travelfeedRateMinute)) self.distanceFeedRate.addLine('M107') self.distanceFeedRate.addLine( 'M204 S' + str(self.bfbclass.RaftT.value)) self.distanceFeedRate.addLine( 'M552 P' + str(self.secondHeadPrimeRev) + ' S' + str(self.secondHeadPrimeSpeed)) self.distanceFeedRate.addLine('M103 P3200 S1000') self.distanceFeedRate.addLine('M543') if self.bfbclass.useM227.value == True: self.distanceFeedRate.addLine( 'M227 P' + str(self.secondHeadPrintPrime) + ' S' + str(self.secondHeadPrintRev)) if version == "x2": self.distanceFeedRate.addLine('#v4.00') self.distanceFeedRate.addLine('G90') self.distanceFeedRate.addLine( 'G92 X' + str(self.bfbclass.secondHeadOffsetX.value) + ' Y' + str(self.bfbclass.secondHeadOffsetY.value) + ' F' + str(travelfeedRateMinute)) if self.bfbclass.useM227.value == True: self.distanceFeedRate.addLine( 'M227 P' + str(self.secondHeadPrintPrime) + ' S' + str(self.secondHeadPrintRev)) self.distanceFeedRate.addLine('M107') self.distanceFeedRate.addLine( 'M204 S' + str(self.bfbclass.RaftT.value)) self.distanceFeedRate.addLine( 'M552 P' + str(self.secondHeadPrimeRev) + ' S' + str(self.secondHeadPrimeSpeed)) self.distanceFeedRate.addLine('M543') if self.bfbclass.UseFanEx2.value == True: "Turn ON FAN" self.distanceFeedRate.addLine('M106') else: "Turn OFF FAN" self.distanceFeedRate.addLine('M107') else: if version == "x1": "use just one extruder for raft" self.distanceFeedRate.addLine('G90') self.distanceFeedRate.addLine('M228') self.distanceFeedRate.addLine('M103') self.distanceFeedRate.addLine('M107') self.distanceFeedRate.addLine( 'M104 S' + str(self.bfbclass.RaftT.value)) self.distanceFeedRate.addLine('M551 P' + str(self.firstHeadPrimeRev) + ' S' + str(self.firsHeadPrimeSpeed)) self.distanceFeedRate.addLine('M103 P3200 S1000') self.distanceFeedRate.addLine('M543') if version == "x2": "use just one extruder for raft" self.distanceFeedRate.addLine('G90') self.distanceFeedRate.addLine('M107') self.distanceFeedRate.addLine( 'M104 S' + str(self.bfbclass.RaftT.value)) self.distanceFeedRate.addLine('M551 P' + str(self.firstHeadPrimeRev) + ' S' + str(self.firsHeadPrimeSpeed)) self.distanceFeedRate.addLine('M543') if self.bfbclass.useM227.value == True: self.distanceFeedRate.addLine( 'M227 P' + str(self.firstHeadPrintPrime) + ' S' + str(self.firstHeadPrintRev)) if self.bfbclass.UseFanEx1.value == True: "Turn ON FAN" self.distanceFeedRate.addLine('M106') else: "Turn OFF FAN" self.distanceFeedRate.addLine('M107') else: if version == "x1": "NO RAFT" self.distanceFeedRate.addLine('G90') self.distanceFeedRate.addLine('M228') self.distanceFeedRate.addLine('M103') self.distanceFeedRate.addLine('M107') self.distanceFeedRate.addLine( 'M104 S' + str(self.bfbclass.firstWorkT.value)) self.distanceFeedRate.addLine('M551 P' + str(self.firstHeadPrimeRev) + ' S' + str(self.firsHeadPrimeSpeed)) self.distanceFeedRate.addLine('M103 P3200 S1000') self.distanceFeedRate.addLine('M543') if version == "x2": self.distanceFeedRate.addLine('G90') self.distanceFeedRate.addLine('M107') self.distanceFeedRate.addLine( 'M104 S' + str(self.bfbclass.firstWorkT.value)) self.distanceFeedRate.addLine('M551 P' + str(self.firstHeadPrimeRev) + ' S' + str(self.firsHeadPrimeSpeed)) self.distanceFeedRate.addLine('M543') if self.bfbclass.useM227.value == True: self.distanceFeedRate.addLine('M227 P' + str(self.firstHeadPrintPrime) + ' S' + str(self.firstHeadPrintRev)) if self.bfbclass.UseFanEx1.value == True: "Turn ON FAN" self.distanceFeedRate.addLine('M106') else: "Turn OFF FAN" self.distanceFeedRate.addLine('M107') if self.prefaceRepository.setPositioningToAbsolute.value: self.distanceFeedRate.addLine( 'G90') # Set positioning to absolute. if self.prefaceRepository.setUnitsToMillimeters.value: self.distanceFeedRate.addLine('G21') # Set units to millimeters. if self.prefaceRepository.startAtHome.value: self.distanceFeedRate.addLine('G28') # Start at home. if self.prefaceRepository.turnExtruderOffAtStartUp.value: self.distanceFeedRate.addLine('M103') # Turn extruder off. craftTypeName = skeinforge_profile.getCraftTypeName() self.distanceFeedRate.addTagBracketedLine('craftTypeName', craftTypeName) self.distanceFeedRate.addTagBracketedLine( 'decimalPlacesCarried', self.distanceFeedRate.decimalPlacesCarried) self.distanceFeedRate.addTagBracketedLine( 'layerThickness', self.distanceFeedRate.getRounded(self.layerThickness)) if self.prefaceRepository.meta.value: self.distanceFeedRate.addTagBracketedLine( 'meta', self.prefaceRepository.meta.value) self.distanceFeedRate.addTagBracketedLine( 'perimeterWidth', self.distanceFeedRate.getRounded(self.perimeterWidth)) self.distanceFeedRate.addTagBracketedLine( 'profileName', skeinforge_profile.getProfileName(craftTypeName)) self.distanceFeedRate.addTagBracketedLine('procedureDone', 'carve') self.distanceFeedRate.addTagBracketedLine('procedureDone', 'preface') self.distanceFeedRate.addLine( '(</extruderInitialization>)' ) # Initialization is finished, extrusion is starting. self.distanceFeedRate.addLine( '(<extrusion>)' ) # Initialization is finished, extrusion is starting.