Skip to content

Commit

Permalink
Document the fully manual solution existing
Browse files Browse the repository at this point in the history
Fixes #17
  • Loading branch information
ProfDrYoMan committed Mar 9, 2024
1 parent b88a500 commit 219ae87
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 9 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
# PrusaSlicer M221 per Object
# PrusaSlicer M221 Per Object

**My "first" rust project. Bear with me!**

This is a very simple g-code post-processor for Prusa Slicer which enables you to change the flow rate or the extrusion multiplier per object.

## Why this exists?
## Why This Exists?

I was looking for a calibration solution working with Prusa Slicer.
I found out that there was no way to set an extrusion multiplier per object name or any other way to achieve what I wanted.
I learned that there was no way to set an extrusion multiplier per object name or any other way to achieve what I wanted.

Searching the web I found this [posting](https://forum.prusa3d.com/forum/prusaslicer/change-flow-rate-extrusion-multiplier-between-objects/) but nothing else.
No solution but only the hint that there is no option in Prusa Slicer but with an exteral g-code post-processor.

(I thought that. Please see [in the documentation](docs/Documentation.md#manual-option) that this is not true.)

So I finally got to enhance my rust learning experience. :)

## Documentation
Expand Down
33 changes: 27 additions & 6 deletions docs/Documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ The g-code post-processor adds `M221 S[flow rate]` after each object start.

You have two options to set the new flow rate per object.

## Explicit flow rates (in %)
## Explicit Flow Rates (in %)

* Start the object name with your desired flow rate without a decimal point.
* If you need a decimal point you **need** to replace it by `p` or `P`.
* You are free to use any object name after the new flow rate.
* If parsing fails a flow rate of 100 % is used.

The picture below shows explicit flow rates from 102 % down to 98 % in steps of 0.5 %.
Figure: Explicit Flow Rates From 102 % Down to 98 % in Steps of 0.5 %

![Explicit flow rates](explicit_flow_rates.png)

## Absolut extrusion multipliers (~ 1.0)
## Absolut Extrusion Multipliers (~ 1.0)

* Start the object name with your desired extrusion multiplier.
* You **need** to use a decimal point and you **need** to replace it by `m` or `M`.
Expand All @@ -26,7 +26,7 @@ The picture below shows explicit flow rates from 102 % down to 98 % in steps of

=> Use your desired **absolut** extrusion multipliers!

The picture below shows explicit flow rates from 1.04 down to 0.96 in 0.01 steps
Figure: Explicit Flow Rates From 1.04 Down to 0.96 in Steps of 0.01

![Absolut extrusion multipliers](absolut_extrusion_multipliers.png)

Expand All @@ -37,11 +37,15 @@ It is named 'FlowRate.3mf'.

### Print Settings - Output Options

#### Label Objects
#### Output File

Figure: Label Objects

![Label objects](label_objects.png)

#### Post Processing Script
#### Post Processing Scripts

Figure: Post Processing Scripts

![Post-processing script](post_processing_script.png)

Expand All @@ -51,3 +55,20 @@ It is named 'FlowRate.3mf'.
* [Install](https://www.rust-lang.org/tools/install) a rust toolchain.
* Run `cargo build --release`
* The executable is in the target/release directory.

## Manual Option

Searching for a solition I also ran over [this Prusa Slicer issue comment](https://github.com/prusa3d/PrusaSlicer/issues/7200#issuecomment-1986715836).
@arshish1612 shows a solution which is manual but very flexible.

### Print Settings - Output Options - Other

#### G-Code Substitutions

Figure: Extracted From His Comment

![Manual Option](https://private-user-images.githubusercontent.com/8477844/311409799-4e086cc9-a623-405f-9cd3-5da353695395.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDk5NzE1NjQsIm5iZiI6MTcwOTk3MTI2NCwicGF0aCI6Ii84NDc3ODQ0LzMxMTQwOTc5OS00ZTA4NmNjOS1hNjIzLTQwNWYtOWNkMy01ZGEzNTM2OTUzOTUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDMwOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDAzMDlUMDgwMTA0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NmM1MjUxZTI1YWRjYWU0MjUzNTRjNDAxMDJjMGE5YjFhNDVlZjYxYzhkY2M0OTQ0MTg1YTMxMjVmNDcwMWVkYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.RR2KtgwMCwJlzn_ELZhiHBXKKyGCLU6PKkKHV-4ynac)

Checking the documentation at [Prusa Slicer](https://help.prusa3d.com/article/g-code-substitutions_301694) I learned that I can achive everything I did with my pre-processor (and more) with the help of these g-code substitutions as well.

Well, too late. Learned some rust, though. :)

0 comments on commit 219ae87

Please sign in to comment.