You are not logged in.

#1 2017-02-07 11:21:47

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

Macro Language - Feature requests for additional control over machine

Hi Shahin-
It would be wonderful if we could have some additional control over aspects of the machine.

The first one I would like to suggest is the ability to eliminate the peel move and even lift distance between layers.  In my case I am working on some very delicate and small artifacts around 20 um.  With this ability to not have the elevator remain stationary between "layers" it would be possible to turn on and off different pixels close to one another that might cause bleeding into one another when making extremely small prints.  We had begun to discuss this earlier:

Using SLC / SVG formats. For the movement gcodes you should use modules operation. Currently we do not support it but I can add it easily.
Something like this will do the job
{([[LayerNumber]]%4==0)} all do the peel move and lift sequence)
{([[LayerNumber]]%4==3)} display the layer, no peel or lift
{([[LayerNumber]]%4==2)} same as above
{([[LayerNumber]]%4==1)} layer (n-1/n) same as above

I'm curious what the module operation is. I will look into that later today.  I will try to find the g-code section in the print plate to make the corrections as you specified above.  I'm wondering where to place these commands if I don't see the g-codes.  Can they be placed in the custom g-code section in the printer profiles?  And these layering commands will then over-ride the g-code developed from the plating?

Many thanks for all this, it's an amazing amount of work and incredible tool!

Offline

#2 2017-02-07 23:59:09

Shahin
Administrator
Registered: 2016-02-17
Posts: 1,834

Re: Macro Language - Feature requests for additional control over machine

To use RAMPS board usually we sent G1 Z1 like commands. If I want to only make 1.4mm movement after each 4 layers something like command below will handle the job.
G1 Z{1.2*([[LayerNumber]]%4==0)}

Currently it is working on the beta version.

Offline

#3 2017-08-01 08:11:16

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

Re: Macro Language - Feature requests for additional control over machine

Hi Shahin,

I am working on this project again and have had very good success with small artifacts.  I am working on the selective motions and peel moves for the slices again.  Here is what I am trying to accomplish:
1. first 5 layers are burn layers, I would like the ability to customize the heights, currently in the resin profile I am setting these to 0 um, and program them within the defore print.
2. the remaining layers, I only want to move to a new layer height for the first normal layer.  After that I would like to have the deck remain at the same height
3. After the final print, the platform should move to wait position and tilt for ~20 sec.  (this is working fine)

In the gcode for the resin profiles I have the following:

M650 D{([[LayerNumber]]<6)*1+([[LayerNumber]]>5)*([[LayerNumber]]<7)*1} S1
;(Should do peel for layer 1-5 at S=1, S=2 for layer 6, no peel after that)
M651;(If D==0 no peel move right?)
G90
G1 Z{([[LayerNumber]]<6)*0.1+([[LayerNumber]]>5)*([[LayerNumber]]<7)*0.4}
G91
[[WaitForDoneMessage]]
[[PositionSet{[[LayerPosition]]+([[LayerNumber]]<6)*([[LayerNumber]]*0.1+([[LayerNumber]]>5)*([[LayerNumber]]<7)*[[LayerNumber]]*0.4}]]

So a few issues:
In your message above what does the % do?
I have tried to do conditional statements like G0 Z{[[LayerNumber]]==5)*0.5} but it didn't seem to work.  I think i'm too much a newbie at the gcode - or any code for that matter - please let me know where i am going wrong or if there is a reference I can find some info on programming  (py or gcode).  I have seen the repositories on line.

Thanks for all the help this machine is incredible!

Offline

#4 2017-08-02 15:03:11

Shahin
Administrator
Registered: 2016-02-17
Posts: 1,834

Re: Macro Language - Feature requests for additional control over machine

1. % is modulo operation - It is quite useful. For eg. G1 Z{([[LayerNumber]]%5==0)*10} means zero movement for all layers except layer 5, 10, 15, 20 which will result G1 Z10

2. {[[LayerNumber]]==5)*0.5} is correct it should G0 Z0 for all layers except layer 5 which will result G0 Z0.5

Offline

Board footer

Powered by FluxBB