Jag behöver hjälp med ett script... till min 3d-skrivare i Perl Python bash eller något som normalt stöds i Ubuntu

Permalänk
Medlem

Jag behöver hjälp med ett script... till min 3d-skrivare i Perl Python bash eller något som normalt stöds i Ubuntu

Så till min 3d skrivare så förbereder man modellerna i en slicer, i mitt fall så använder jag Slic3r PE, men den genererar en del gcoder som jag vill ändra för att få bättre slutresultat.

Det finns möjlighet att post processa gcoden direkt innan man exporterar den till skrivaren
https://manual.slic3r.org/advanced/post-processing

Men jag har väldigt lite programmeringskunskaper( typ noll)

Det jag vill göra kan man på enstaka filer fixa med sök och ersätt men i längden är detta inte så hållbart då människan lätt gör fel eller missar en del saker..

I gcode filen finns det koder som styr acceleration som ser ut som följer

M204 S10000

där S10000 kan vara från S0 till S10000

det som skall stå i stället

ACC S10000 R5000

R5000 är en %-sats av S10000, denna procentsats kan man behöva ändra så jag kan ha flera script med olika typ 20% 30% 40% 50% 60%....

Exempel på hur det ser ut i filen:

G1 E1.48000 F1500.00000
M204 S3200
G1 F8430
G1 X6.705 Y-26.151 E1.21492
M204 S4000
;nu byter jag till lager 44.65
;;

G1 E-1.50000 F1800.00000
G1 Z44.700 F30000.000
;nu har jag bytt till lager 44.65
;;
M117 LAYER #222 @ 44.65mm
G1 X-28.115 Y-26.868
G1 Z44.650
G1 E1.48000 F1500.00000
M204 S2200
G1 F8480
G1 X1.845 Y-26.859 E1.01413
G1 X3.099 Y-26.804 E0.04247
G1 X4.115 Y-26.715 E0.03452
G1 X5.128 Y-26.587 E0.03458
G1 X6.137 Y-26.420 E0.03460
G1 X6.908 Y-26.264 E0.02663
G1 X8.131 Y-25.972 E0.04257
G1 X9.112 Y-25.692 E0.03452
G1 X10.083 Y-25.375 E0.03458
G1 X11.042 Y-25.021 E0.03460
G1 X11.769 Y-24.721 E0.02663
G1 X12.916 Y-24.204 E0.04258

Min setup
Ubuntu
Slic3r PE
Klipper

Visa signatur

Ett gäng datorer med lite olika prestanda.....

Permalänk
Medlem

vad tror ni om
______________________
#!/usr/bin/perl -i
use strict;
use warnings;

while (<>) {

if (/^M204(\h+S(-?\d*\.?\d+))?/) {
my $S=$2;
my $R=$S*0.5;
$_ = "ACC S=$S R=$R\n";
}

print;
}
___________________

Visa signatur

Ett gäng datorer med lite olika prestanda.....