Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Support material adhesion by base type interface layers under soluble supports. #5823

Closed
spiky2021 opened this issue Jan 18, 2021 · 5 comments
Labels

Comments

@spiky2021
Copy link

Version

2.30

Operating system type + version

Win 10

3D printer brand / version + firmware version (if known)

Anycubic I3 Mega, Craftbot Flow IDEX XL

Behavior

At the moment soluble support material adhesion is weak due to sparse support layers under soluble support layers.
Support_without_base_support_interfaces

Now I added two modified methods to the SupportMaterial Class (.cpp and .hpp attached).
new_SupportMaterial_Class_files.zip

Support_with_base_support_interfaces
new_support_files.zip

This adds two base type interface layers to the support structure, in case the extruders are different and soluble support is choosen.
Now soluble support adhesion is much stronger.
For someone expired with the GUI implementations, it might be an easy task to add an input for the number of base interface layers.
Though I believe two layers are reasonable for most situations.

By the way, I believe there is a bug in the original generate_interfaces method. The " idx_top_contact_first" is searched under the condition "layer->print_z >= intermediate_layer.print_z", but it should be "layer->bottom_z >= intermediate_layer.print_z" to avoid excess layers by swapping a layer too later to the upper top contact. In other words, compared to the bottom contact code it should be mirrow symmetric.

Is this a new feature request? yes?

I am new to the PrusaSlicer framework and GitHub (1 Week experience). Thus I didn't know how to make a pull request and wasn't interested in binding VS2019 to Github. But I hope someone of you can bring it to the base branch.

Project File (.3MF) where problem occurs

@rtyr rtyr added the supports label Jan 19, 2021
@spiky2021
Copy link
Author

Just a moment ago I saw, that I uploaded the wrong Class files. Some functionallity is commented, sorry for that!
Further I saw that there is still an interface in excess generated. I try to fix this as soon as possible.

@spiky2021
Copy link
Author

Commenting removed and a fix for excess layers done. The index for the top_z/bottom_z discriminators uses the interface layer number. Since indexes usually start at zero, the number needed to be reduced by one.
Original behaviour for two interface layers requested (actual PS 2.3.0 Version as well):
Support_with_base_support_interfaces_uncorrected
And now:
Support_with_base_support_interfaces_corrected
Supports are generated by painting. One can easily see the two base type support, as well.
New Class files code:
new_SupportMaterial_Class_files.zip

A picture of a first print:
20210120_172336
Materials: Extruder Greentec Pro and Polymaker Polydissolve S1.
Stringing and artifacts are generated by undry Polydissolve. Meaning the stiffness against the feeder and the viscosity was wrong. Without base interface layers I couldn't achieve prints with such tiny surfaces like 2x10mm, even with dry filament.

Done with a Craftbot Flow IDEX XL. No wipe tower, just used the wipers of the printer. It reduced the number of head preparation and therefore time and material costs by about 50%, even for this narrow top to bottom distances.
Supports were generated by painting and XY-Distance to zero, to achieve a support touching to tilted surfaces.
Here maybe soluble interface should be inflated to achieve a touching without this workaround.
For simple interfaces structures now even soluble support prints with single head printers by adding a pause or material change are possible.

The tiny dot of polydissolve on the bed is introduced to overcome a bug of PS for the multi extruder toolchange.
The generated gcode always introduces a normal enter retract/unretract for the first use of the head, instead of using a retraction procedure defined in a custom toolchange code. It leads to missing or overshoot material in the nozel, that leaves artifacts on the object and even worse deminishes adhesion.

@spiky2021
Copy link
Author

Just for comparison the same part printed with dry filament:
20210121_140938

@spiky2021
Copy link
Author

Now provided as pull request combined with changes under #5903.

spiky2021 added a commit to spiky2021/PrusaSlicer that referenced this issue Feb 11, 2021
At the moment soluble support material adhesion is weak due to sparse support layers under soluble support layers. I reported as issue prusa3d#5823 with pictures, as well.
I modified two methods to the SupportMaterial Class including their headers.
The new methods add two base type interface layers to the support structure, in case the extruders are different and soluble support is choosen.
Since it is conditionally activated, it in general doesn't need a GUI input. But a GUI option number of base interface layers may enabled users to adapt this feature to their needs.
This is my second try to provide a pull request on this topic. Reset my fromer repository, because first I merged this and all other changes to my master and couldn't provide separate pull request anymore.
bubnikv added a commit that referenced this issue Feb 15, 2021
under soluble supports. #5823
Implemented as a pull request #5903 by @spiky2021
and reworked.

commit c7993e6
Author: spiky2021 <77010315+spiky2021@users.noreply.github.com>
Date:   Thu Feb 11 12:39:25 2021 +0100

    Base type interfaces for soluble interface supports

    At the moment soluble support material adhesion is weak due to sparse support layers under soluble support layers. I reported as issue #5823 with pictures, as well.
    I modified two methods to the SupportMaterial Class including their headers.
    The new methods add two base type interface layers to the support structure, in case the extruders are different and soluble support is choosen.
    Since it is conditionally activated, it in general doesn't need a GUI input. But a GUI option number of base interface layers may enabled users to adapt this feature to their needs.
    This is my second try to provide a pull request on this topic. Reset my fromer repository, because first I merged this and all other changes to my master and couldn't provide separate pull request anymore.
@bubnikv
Copy link
Collaborator

bubnikv commented Feb 15, 2021

Implemented with 32db22b, based on a pull request by @spiky2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants