Berechnung in Notepad++

pebi1959

Cadet 1st Year
Registriert
Feb. 2022
Beiträge
12
Das hat ja gut geklappt mit "M106 S" eine Zeile nach oben verschieben, nochmal Vielen Dank dafür!
Wenn ihr jetzt noch mein letztes Problem auch noch lösen könntet wäre meine Begeisterung komplett.
Folgendes: Der Zahlenwert der hinter dem S (M106 S) steht, bezieht sich auf einen Bereich von 0-1000, der müsste auf den Bereich 0-255 umgerechnet werden. Beispiel: M106 S500 soll M106 S127 sein, Rechnung 500/1000*255 und vom Ergebnis nur die Zahl vor dem Komma, geht das auch mit Notepad++?
 

Anhänge

  • Rosi_original_bearbeitet_ok.txt
    266,6 KB · Aufrufe: 161
  • Gefällt mir
Reaktionen: Asghan
Ist Excel vorhanden oder ein ähnliches Tabellenprogramm?
Wenn ja:
Ich würde per RegEx nach "M106 S" suchen und durch "M106 S\t\t" ersetzen, das dann nach exel und dort berechnen, dort die ergebnisse per format auf ganzzahlen bringen und mit WENN() bzw. Bedingung leere Zeile missachten lassen.
das ergebnis zurück nach notepad++ kopieren und per regex wieder dann "M106 S\t" durch "M106S" ersetzen.

Aber gibt bestimmt noch ne bessere lösung.

Edit: irgendwie so:
2022-02-14 10_39_00-Mappe1 - Excel.png

Bei 1 haste die Formel, bei 2 müsste man halt in Exel per Bedingung bauen, dass hier nichts reingeschrieben wird, bzw. die formel so umbauen, dass leere zeilen/werte ignoriert werden und bei 3 müsste man halt die formel um ne rundung ergänzen (kommt ja drauf an wie gerundet werden soll (auf oder ab) oder ob abschneiden reicht.

Bin aber kein excelexperte, das können andere besser.
 
Zuletzt bearbeitet:
Ich frage mich ja die ganze Zeit was dein eigentliches Problem ist... Normalerweise geben die gängigen Tools doch passenden Gcode für deinen Drucker/Laser raus oder man kann es zumindest umstellen?!

Klingt irgendwie so, alsob du z.B. LaserGRBL nutzt und dort Gcode für Marlin ausgeben willst... Stattdessen müsste man den Gcode Flavour in LaserGRBL aber auch einfach anpassen können.
 
Das stimmt, bei mir ist es so, das ich einen 3d Drucker zum Lasergravierer umgebaut habe und mit den Ergebnissen noch nicht zufrieden bin. Aus diesem Grund möchte ich das Programm LaserGRBL mal ausprobieren. LaserGRBL erkennt meinen 3d Drucker nicht als Lasergravierer, deshalb habe ich nur die Möglichkeit den gcode zu erzeugen und abzuspeichern.
 
Welche firmware läuft denn aktuell auf deinem Drucker? Marlin hat meines Wissens einen laser mode, wäre eine custom marlin firmware keine lösung?

E: Nevermind, Marlin kann auch nur M106 von 0-255....
Woher kommt dein GCode? Hast du in dem Tool nicht die möglichkeit die Laserleistung einzuschränken um unter 255 zu bleiben?
 
Also ich würd dann eben ein kleines Skript schreiben was die Datei umwandelt. Da ich gerade 2 Minuten hatte, hier ein fertiges Python Skript:


Python:
import sys
from pathlib import Path
from argparse import ArgumentParser, ArgumentTypeError

def type_file_existing(input):
    if Path(input).is_file():
        return input
    else:
        raise ArgumentTypeError(f"{input} is not a valid file")


def convert(input_file, output_file):
    content = Path(input_file).read_text()
    literal = "M106 S"
    new_lines = []
    for line in content.splitlines():
        if literal in line:
            value = int(line.split(literal)[1])
            new_value = int(value / 1000 * 255)
            new_lines.append(f"{literal}{new_value}")
        else:
            new_lines.append(line)

    with open(output_file, "w") as file:
        for line in new_lines:
            file.write(f"{line}\n")

def parse_args(args):
    parser = ArgumentParser()
    parser.add_argument("--input-file", "-i", required=True, type=type_file_existing, help="Input file")
    parser.add_argument("--output-file", "-o", required=True, help="Output file")
    return parser.parse_args(args)

def main(args):
    args = parse_args(args)
    convert(args.input_file, args.output_file)

if __name__ == '__main__':
    main(sys.argv[1:])

Python 3 installieren. Dann Aufrufen im Verzeichnis der Input-Datei mit z.B: python script.py --input-file Rosi_original_bearbeitet_ok.txt --output-file Rosi_original_bearbeitet_ok_255.txt
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Ichthys, airwave, Looniversity und eine weitere Person
was machst du mit einem 62jährigen Großvater?
Python, nie gehört, aber ich hab´s installiert und jetzt? File open bekomm ich auch noch hin, aber jetzt, was mach ich mit deinem Script? sorry, aber in 50zig Jahren hast auch du Probleme mit der Jugend wenn die sich nach Mallorca beamen!
 
pebi1959 schrieb:
aber in 50zig Jahren hast auch du Probleme mit der Jugend wenn die sich nach Mallorca beamen!
Da bin ich mir sicher, ja :D:D.


Schritte damit der Ansatz klappt und die es hoffentlich klarer machen:
  1. Den Inhalt meines Scripts kopieren und in eine Datei packen. Vielleicht einfach eine Datei die neben der Textdatei liegt die du bearbeiten möchtest. Name der Datei: script.py
  2. Eine cmd.exe Eingabeaufforderung im Verzeichnis mit dem Script und der zu bearbeitenden Textdatei öffnen. Das geht z.B. über den Explorer. Zu dem richtigen Ort navigieren und dann in die Titelleiste cmd tippen und danach Enter drücken.
  3. Dort dann python script.py -i Rosi_original_bearbeitet_ok.txt -o Rosi_original_bearbeitet_ok_255.txt eingeben (vorausgesetzt die Datei nach -i heißt wirklich so. Die Datei hinter -o wird dann erzeugt)
 
Danke für die verständliche Erklärung (auch für mich), hat aber trotzdem nicht funktioniert, er findet Python irgendwie nicht. siehe Bild
 

Anhänge

  • python.jpg
    python.jpg
    135,1 KB · Aufrufe: 141
Dann wurde Python nicht richtig installiert. Normalerweise kann man bei der Installation wählen dass python zur PATH Variablen hinzugefügt werden soll :mad:. Wenn das vergessen wurde dann kann man auch den kompletten Pfad zum python.exe angeben sofern du ihn rausfindest wohin es installiert wurde. Normalerweise unter C:\Programme oder C:\Programme (x86) falls mit Admin Rechten installiert wurde.
 
ok. dann mach ich das nochmal
Ergänzung ()

was soll ich sagen, es funktioniert. Ich habe zwar keine Ahnung von dem was ich da gerade gemacht habe, aber das Ergebnis passt, Vielen Dank!
Noch eine Frage zum Schluss (wegen Mallorca) welcher Jahrgang bist sie ääh du
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Bitopium
na dann bist du genauso jung wie mein Sohn, kein Wunder! Hat richtig Spaß gemacht, nochmals Dankeschön!
 
  • Gefällt mir
Reaktionen: Bitopium
Zurück
Oben