You are not logged in.

#1 2017-05-17 09:25:57

TIMBOLOGIST
Member
Registered: 2017-05-14
Posts: 11

Dynamic layer height

I was wondering if it is possible to do dynamic layer height. The reason being is I come from using FDM printers with Simplify 3d which I now use for my CTC Riverside SLA printer.
With that software you can set any parameter to change depending on the Z height you are currently at.

One feature I use in every model is the ability to change the layer height depending on the Z level in the model, ie

For the lower levels with no detail you could use a 0.1mm layer height making it quicker and then for finer detail change to 0.05mm then to 0.025mm for very fine detail, then depending on orientation of model could go back to 0.1mm.
I currently do this with Simplify3d, so you can speed up the printing process by only using high resolution in the model only where needed.


Cheers
Tony

Offline

#2 2017-05-18 04:40:52

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

We made couple of attempts to add this feature to the program. Software implementations is easy but as cure time for resins are not linear and each height have different optimum cure times. Having different cure times on different layers will result surface quality issues. It will be very difficult to come up with perfect cure times. Also in some cases all lift and other movement configs need modifications too.

Offline

#3 2017-05-18 05:25:07

TIMBOLOGIST
Member
Registered: 2017-05-14
Posts: 11

Re: Dynamic layer height

Shahin wrote:

We made couple of attempts to add this feature to the program. Software implementations is easy but as cure time for resins are not linear and each height have different optimum cure times. Having different cure times on different layers will result surface quality issues. It will be very difficult to come up with perfect cure times. Also in some cases all lift and other movement configs need modifications too.

I am a bit confused with what you are saying here

Having different cure times on different layers will result surface quality issues. It will be very difficult to come up with perfect cure times

Because dynamic cure times is doing exactly this is it not. So where is the difference in regard to the curing of the resin, between dynamic cure time and dynamic layer thickness.

Once your have found the ideal cure times for the particular resin would one not use these in the formulas. the dynamic cure time and dynamic lift would have to be related on each level as it is now with just straight printing.

I have a Wanhoa D7 and it is incapable of printing the detail I am trying for because of the low UV power. So I need to be able to apply more UV to these layers to get the detail. One way is dynamic cure times but also thinner layers also would help to cure these parts.

Tony

Offline

#4 2017-05-18 05:34:22

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

Lets say you have resin X with below cure times.
Thickness
0.025     5.2s
0.050     14.1s
0.075     34.2s
0.1         92.1s

Coming up with correct value for flexible height will be really difficult and if cure time is more or less than expected surface quality will get effected.

Yes, we have dynamic cure times but it mostly being used for support layers but you can use it together with nanodlp formula support to achieve dynamic layer height.

Offline

#5 2017-05-18 06:56:03

TIMBOLOGIST
Member
Registered: 2017-05-14
Posts: 11

Re: Dynamic layer height

An example of what I am looking at and why is I have a model that has a support base 1mm thick supports are 2mm high and model is 4mm high.

This is a 1:76.2 milk wire crate I have successfully printed it on the CTC riverside which is the Form1 clone with the Laser. But I cannot print it on the D7 as there is not enough power for the 0.2mm sections.

0 to 0.4mm      burn in at 92.1 seconds                                                                           layers  0 to 4        at layer height of 0.1mm
0.5 to 3.0mm  40 seconds which is rest of support base and the supports                         layers  5 to 30      at layer height of 0.1mm
3.0 to 7mm     90 seconds which is the model model sections are 0.2 mm square section  layers 31 to 191   at layer height  of 0.025mm

As I said before I need to make up for the lack of power to cure the resin so if I can use thinner layers for the needed layers then I can make the model above.

At the moment you can make the burn in layers one cure time and the rest of the model a different cure time, But I am greedy I need more layers I can set different cure times and thicknesses.

I would be using known cure times as like you have listed, so I cannot see this causing any problems.

Yes, we have dynamic cure times but it mostly being used for support layers but you can use it together with nanodlp formula support to achieve dynamic layer height.

Would it be possible then to give me an example of how I would achieve this, ( I am having trouble getting my head around the syntax used in these formulas,)
I have been spoilt with the programs for FDM printing

Thanks
Tony

Offline

#6 2017-05-18 17:15:22

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

{([[LayerNumber]]>30)*50+40}
Something like above will cause 90s cure time for layers after 30

Offline

#7 2017-05-19 00:56:46

TIMBOLOGIST
Member
Registered: 2017-05-14
Posts: 11

Re: Dynamic layer height

Thank you for that,

Shahin wrote:

{([[LayerNumber]]>30)*50+40}
Something like above will cause 90s cure time for layers after 30

Unfortunately this only shows how to use dynamic cure times without dynamic layer heights

I was having a play with the boxes to try the formulae and found it would not work with a formulae containing thus ((4<[[LayerNumber]]=>30)*40)

(
(([[LayerNumber]]<=4)*90)              gives me 90s for layers 1 to 4
+
((4<[[LayerNumber]]=>30)*40)        gives me 40s for layers 5 to 30  #####  this line does not seem to work as someone has mentioned in another post ####
+
(([[LayerNumber]]>30)*20)              gives me 20s for layers 30 and above
)

Or do I need something like
(
(([[LayerNumber]]<=4)*90)           gives me 90s for layers 1 to 4
+
(([[LayerNumber]]>4)*-30)            gives me 40s for layers 5 and above
+
(([[LayerNumber]]>30)*-20)          gives me 20s for layers 30 and above
)

So I would end up with
layers 0 to 4  90s
layers 5 to 30 40s
layers 31 to top 20s

cheers
Tony

Offline

#8 2017-05-19 04:32:20

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

((4<[[LayerNumber]]=>30)*40)
Change it to
{(4<[[LayerNumber]])*([[LayerNumber]]=>30)*40}

Offline

#9 2017-05-19 05:58:07

TIMBOLOGIST
Member
Registered: 2017-05-14
Posts: 11

Re: Dynamic layer height

Thank for that, I now know that it can only evaluate one condition in a statement, and not multiple as in normal programming.

does this type of coding have a special name and is there a reference source for it to learn more about it.

Cheers
Tony

Offline

#10 2017-05-19 06:45:09

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

I do not know smile

Offline

#11 2017-05-19 13:33:03

jcarletto27
Member
Registered: 2016-08-10
Posts: 17

Re: Dynamic layer height

I believe it is a type of Binary logic or Boolean Logic, it's pretty easy to implement in most programming languages. You can even do this with Excel in the formula box.

EDIT:
@TIMBOLOGIST it's possible to do what you want manually, but would be a real pain to make it automated, especially if you want it to be "content aware".

Let's say you want to have three different layer heights for a soldier model.
100u layer height for all layers below his tool belt
20u layer for his tool belt and gun
50u for chest
20u for head

you would need to slice the model 3 times, convert to PNGs, pull just the layers you need to a new folder, zip them, upload them, create a formula for dynamic cure time to accommodate for what layer is at layer height, create a formula for dynamic lift and lower.
this would always need to be changed for every model.

@Shahin, I think it may actually be possible to automate the slicing if you nest the images in to named folders

Folder - Plate 1
-------------------Folder -20
--------------------------------------1.png
--------------------------------------2.png
-------------------------------------- ....
-------------------Folder -50
--------------------------------------1.png
--------------------------------------2.png
-------------------------------------- ...
-------------------Folder -100
--------------------------------------1.png
--------------------------------------2.png
-------------------------------------- ...

Then add a field  "Dynamic Layer Height" which is a comma separated list of micron sizes and some new variables for setting and getting in formulas

[[SetDynamicHeight 20]] to set it, and [[DynamicHeight]] to check it

then be used like this for cure time

{(
([[DynamicHeight]]==20)*5+([[DynamicHeight]]==50)*7+([[DynamicHeight]]==100)*9
)}

and for setting Dynamic Layer Height in Before Each Layer field

{(
(([[LayerNumber]]<=100)*[[SetDynamicHeight 100]])+(([[LayerNumber]]>=101)*[[SetDynamicHeight 50]]*([[LayerNumber<250))+(([[LayerNumber]]>=251)*[[SetDynamicHeight 20]])
)}

of course, whenever you set the new DynamicHeight it adjusts the [[LayerPosition]].

Last edited by jcarletto27 (2017-05-19 14:10:35)

Offline

#12 2017-05-23 09:41:41

TIMBOLOGIST
Member
Registered: 2017-05-14
Posts: 11

Re: Dynamic layer height

jcarletto27

I thank you for the supplied information, have to say it makes my brain hurt, I will try this out next time I have no resin in the printer. And will attach a dial indicator to see what happens, as the only way to see the set height is in the log file.

@Shahin Would it be possible to show the current absolute Z height with the layer number, and the current layer step size.

Offline

#13 2017-05-24 05:50:27

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

You can get information such as absolute Z by accessing /status URL.

Offline

#14 2018-01-18 10:08:27

Hotam
Member
Registered: 2017-07-24
Posts: 14

Re: Dynamic layer height

hey shahin
is there anything new in this topic?
i would love to have the ability for dynamic layer height(according the layer number)
i know i would need to adjust the script for dynamic cure time for good results, but im ready for that challenge smile

Offline

#15 2018-01-18 23:42:41

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

Static one is currently possible but for dynamic one we need pixel difference between layers, which recently removed due to high costs in terms of processing.

Offline

#16 2018-01-21 08:02:26

Hotam
Member
Registered: 2017-07-24
Posts: 14

Re: Dynamic layer height

so if i know i need 10 micron on layers 100-200 and 25 micron on all the other layers
you refer it as static or dynamic?

if its static, how do i do it?

Offline

#17 2019-08-02 00:48:44

elliot
Member
Registered: 2016-04-28
Posts: 44

Re: Dynamic layer height

Hi Shahin,
I'm interested in this as well. I would like to know how to program dynamic heights and exposures. The following is what I hope to accomplish. If you might be able to add your advice, it would be awesome!

Models: Basically, it's only one layer that changes for each iteration:
1st section: 200 um total height, same plate exposure
2nd section: 50 um , 100 um, 250 um, 500 um height can be one or multiple exposures, I will tune and direct time for each layer - assumed non-linear.
3rd: 650 um
4th: 350 um total height

So its basically the second section that changes by large degree. Unless I do a 50 um standard, it doesn't work out. I was hoping to cut down on movement and total print time. Thanks for all the help!

Offline

#18 2019-08-02 05:19:16

Shahin
Administrator
Registered: 2016-02-17
Posts: 2,737

Re: Dynamic layer height

Both case scenarios are possible right now.
You only need to use arithmetic operators and conditional in your gcodes. Also do not forget as you can skip layers too.
eg. [[LayerSkip {([[LayerNumber]]>100)*([[LayerNumber]]<150)}]] it will skip all layers between 100 and 150.

Offline

#19 2019-08-02 22:57:33

macdarren
Member
Registered: 2017-03-20
Posts: 289

Re: Dynamic layer height

I just thought I would mention that changing cure times and layer heights will affect shrinkage...I expect you will end up with banding unless you use a very stable resin and very carefully select layer thickness matched to nicely tuned cure times...I find I can use a .1 layer for almost everything but the finest models...it speeds things but going much more than that cure issues start to appear for many resins.  I conducted experiments to see about increasing cure times and layer thickness and it is a game of diminishing returns....  Most machines I have used really can't do much below .3 or above .1 very well and there is not a 3x time decrease between .3 and .1 due to overhead  the result is quick and fast and non detailed I do .1 if it needs more detail I wait it out at .05 or .03...the difference is usually not that big of a deal...variable layers seems to be more useful in FDM where a layer times change with model complexity (and maybe laser based resin) vs LCD / DLP resin where layer time is fixed.

Offline

Board footer

Powered by FluxBB