Mainframe
  • Kommentare
  • Geschützte Seite
  • Menu
    • Navigation
    • AktuelleÄnderungen
    • SeiteFinden
    • ÜbersichtsKarte
    • Help
    • HilfeInhalt
    • HilfeZurMoinWikiSyntax
    • Anzeige
    • Dateianhänge
    • Info
    • Rohform
    • Druckansicht
    • Editieren
    • Laden
    • Speichern
  • Anmelden

Spaces

Public
JoSeb
RadFix
CoderDojo

Unterseiten

Navigation

  • AktuelleÄnderungen
  • SeiteFinden
  • HilfeInhalt
  • attachment:ChangeFilamentAtZ_HP_mod.py von JoSeb/TippsTricks/DualDruck

Dateianhang 'ChangeFilamentAtZ_HP_mod.py'

Herunterladen

   1 #Name: Change Filament At Z
   2 #Info: Pause the print at a certain height, move to a specified parking location, disable extruder stepper
   3 #Help: ChangeFilamentAtZ
   4 #Depend: GCode
   5 #Type: postprocess
   6 #Param: targetZ(float:5.0) Z height to pause at (mm)
   7 #Param: parkX(float:190) Head park X (mm)
   8 #Param: parkY(float:190) Head park Y (mm)
   9 #Param: parkZ(float:150) Head park Z (mm)
  10 #Param: retractAmount(float:5) Retraction amount (mm)
  11 
  12 ## Written by Steven Morlock, smorloc@gmail.com
  13 ## This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms
  14 
  15 import re
  16 
  17 def getValue(line, key, default = None):
  18 	if not key in line or (';' in line and line.find(key) > line.find(';')):
  19 		return default
  20 	subPart = line[line.find(key) + 1:]
  21 	m = re.search('^[0-9]+\.?[0-9]*', subPart)
  22 	if m == None:
  23 		return default
  24 	try:
  25 		return float(m.group(0))
  26 	except:
  27 		return default
  28 
  29 with open(filename, "r") as f:
  30 	lines = f.readlines()
  31 
  32 z = 0
  33 x = 0
  34 y = 0
  35 pauseState = 0
  36 with open(filename, "w") as f:
  37 	for line in lines:
  38 		if getValue(line, 'G', None) == 1 or getValue(line, 'G', None) == 0:
  39 			newZ = getValue(line, 'Z', z)
  40 			x = getValue(line, 'X', x)
  41 			y = getValue(line, 'Y', y)
  42 			if newZ != z:
  43 				z = newZ
  44 				if z < targetZ and pauseState == 0:
  45 					pauseState = 1
  46 				if z >= targetZ and pauseState == 1:
  47 					pauseState = 2
  48 					f.write("; Plugin: start ChangeFilamentAtZ\n")
  49 					# Retract
  50 					f.write("M83\n")		# Set E codes relative while in Absolute Coordinates (G90) 
  51 					f.write("G1 E-%f F6000\n" % (retractAmount))
  52 					# Move the head to specified location
  53 					f.write("G1 X%f Y%f Z%f F9000\n" % (parkX, parkY, parkZ))
  54 					# Disable extruder stepper
  55 					f.write("M84 E\n")					
  56 					# Wait until the user continues printing
  57 					f.write("M0\n")
  58 					# Move the head back to printing location
  59 					f.write("G28 X0 Y0")
  60 					f.write("G1 X0 Y0 F1500")
  61 					f.write("G1 E10 F500")
  62 					f.write("G1 X%f Y%f F9000\n" % (x, y))
  63 					f.write("G1 E0 F6000\n")
  64 					f.write("G1 F9000\n")
  65 					f.write("M82\n")		# Set E codes absolute (default)
  66 					f.write("; Plugin: end ChangeFilamentAtZ\n")					
  67 		f.write(line)

Gespeicherte Dateianhänge

Um Dateianhänge in eine Seite einzufügen sollte unbedingt eine Angabe wie attachment:dateiname benutzt werden, wie sie auch in der folgenden Liste der Dateien erscheint. Es sollte niemals die URL des Verweises ("laden") kopiert werden, da sich diese jederzeit ändern kann und damit der Verweis auf die Datei brechen würde.
  • [laden | anzeigen] (2015-11-25 13:09:21, 2.1 KB) [[attachment:ChangeFilamentAtZ_HP_mod.py]]
 Alle Dateien | Ausgewählte Dateien: löschen verschieben auf Seite kopieren auf Seite

Sie dürfen keine Anhänge an diese Seite anhängen!

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01