Random number generation with Meta Commands?
-
Hi all,
I was trying to make a simple random number generator - single digit, -9 to 9 numeric swing and came up with this:
echo floor(10*(cos(sqrt(sensors.analog[0].lastReading * state.upTime))))
Is there a better way to do this?
Cheers,
Kolbi -
What's the use case? We could add a random number function if it would be generally useful.
-
@dc42 As of now I'm using it to offset prime line and working on making it used to offset prints starting location on the build plate.
-
Sorry @dc42, use case posted here: https://forum.duet3d.com/topic/17872/automatic-bed-leveling-with-conditional-gcode-iterations/62
Cheers,
Kolbi -
Or to make a R2D2 impression...
while iterations <= 4 ; perform 5 passes M300 S{3000+(200*(floor(10*(cos(sqrt(sensors.analog[0].lastReading * state.upTime))))))} P{200+(10*(floor(10*(cos(sqrt(sensors.analog[0].lastReading * state.upTime))))))} M300 S{3000+(200*(floor(10*(cos(sqrt(sensors.analog[0].lastReading * state.upTime))))))} P{100+(10*(floor(10*(cos(sqrt(sensors.analog[0].lastReading * state.upTime))))))} G4 P200
-
@dc42 jumping on this one, I would find it quite useful if I could slightly randomise my z home position. I use a piezo nozzle contact to home Z and I have a ziflex magnetic build surface. I find that over time my Z-offset is drifting because repeated probing of the same point is putting an indent in the surface and damaging it.
I'm thinking if I could randomise the probing point within a given area (say a 10mm square) it would give me much less wear on the ziflex and shouldn't impact my z homing accuracy too much (by being in nearly the same place) -
I would find it useful for randomly selecting pattern files to run on my sand table.
-
@dc42, here's the primeline macro - use case:
; 0:/sys/primeline.g ; Print prime-line at a 'randomized' Y positon from -1.1 to -2.9 G1 X0 Z0.6 Y{-2+(0.1*(floor(10*(cos(sqrt(sensors.analog[0].lastReading * state.upTime))))))} F3000.0; G92 E0.0 ; set E position to 0 G1 Z0.2 X100.0 E30.0 F1000.0 ; prime line G92 E0.0 ; set E position to 0 M400 ; finish all current moves / clear the buffer
Cheers,
Kolbi -
I've added a random(nnn) function to the expression evaluator, where n must be a positive integer. It returns a random integer in the range 0 to nnn-1. It will be in the 3.02beta releases.
-
@dc42 said in Random number generation with Meta Commands?:
It will be in the 3.02beta releases.
Nice! Is there a list of new expected features?
-
@Kolbi said in Random number generation with Meta Commands?:
@dc42 said in Random number generation with Meta Commands?:
It will be in the 3.02beta releases.
Nice! Is there a list of new expected features?
You can see what is already implemented or partly implemented at https://github.com/Duet3D/RepRapFirmware/blob/v3-dev/WHATS_NEW_RRF3.md.