Kinda related, if you do some googling (start with grayscale laser photo engraving) you can find a number of articles on how to get grayscale results with dithering (the photo variety, not the Moose version). LaserDRW has a (undocumented, of course) "pixel" option in the engraving properties that seems to control the size of a block used to implement dithering within the software, that might eliminate the need to use external software (GIMP, for example) to preprocess images. I've tried it for engraving glass and it looks promising. It interacts with power and speed settings so needs more experiments.
I'm getting mixed grayscale results overall, but that's due mostly to a more random than systematic approach, my issues are more related to getting the speed and power settings just right and not having the spare time atm to do some extended sessions and sort it out. Wanting to try engraving on every kind of odd material can find isn't helping, either.
Kirk
Auggie Early posts
- Mooselake
- Site Admin
- Posts: 512
- Joined: Sun Dec 26, 2010 11:21 pm
- Location: Mooselake Manor
-
ArtF
- Global Moderator

- Posts: 4557
- Joined: Sun Sep 05, 2010 5:14 pm
- Contact:
Re: Auggie Early posts
Kirk:
lol, I get sucked into that as well. Too many cool things to see what happens on..
Art
lol, I get sucked into that as well. Too many cool things to see what happens on..
Art
-
GlennD
- Site Admin
- Posts: 80
- Joined: Wed Oct 19, 2011 3:19 am
Re: Auggie Early posts
Kirk
The manual for RDworks has a section on dithering, I will check it out. Thank you.
So much to learn so little free time.
I haven't been able to touch the K40 for the last three weekends working on getting printed parts done for the laser table or doing honey do's.
I was going to say can't wait till I retire, but I don't know any one currently that is retired that has much free time.
Glenn
The manual for RDworks has a section on dithering, I will check it out. Thank you.
So much to learn so little free time.
I haven't been able to touch the K40 for the last three weekends working on getting printed parts done for the laser table or doing honey do's.
I was going to say can't wait till I retire, but I don't know any one currently that is retired that has much free time.
Glenn
-
GlennD
- Site Admin
- Posts: 80
- Joined: Wed Oct 19, 2011 3:19 am
Re: Auggie Early posts
Went back and read Arts post to my Marco post and,,,
What are you checking for linearity?
I would guess it would be the PS output versus the PWM input.
Not sure if you would check the motor speeds with that or what.
Pretty much all of the stuff you do Art is over my head but learning is fun.
My electrical training is self taught although I played and electrician in the army.
Glenn
What are you checking for linearity?
I would guess it would be the PS output versus the PWM input.
Not sure if you would check the motor speeds with that or what.
Pretty much all of the stuff you do Art is over my head but learning is fun.
My electrical training is self taught although I played and electrician in the army.
Glenn
-
Amazon [Bot]
- Full Member

- Posts: 185
- Joined: Tue Jan 06, 2026 4:56 pm
Re: Auggie Early posts
to go along with Arts recent Constant Velocity training video here is a square plotted at incremental angles, I was testing waveform consistency and that the pencil plotter tracked well at various feeds & cv settings.
https://www.youtube.com/watch?v=fKp5jbWVzUE
My code; run from the script window:
sleep(5); //gives me some time to get to the machine to watch.
Engine.RapidTo(0, 0, .2); //X,Y,Z start position
block("MotionStill"); // wait for it to get there
Z=0;
for(i = 0; i < 90; i = i + 10)
{
startang=i/2;
for( x = startang; x < (2 * (Const.PI))+startang; x += (Const.PI/2) )
{
Engine.FeedTo( 2 * math.cos(x), 2 * math.sin(x), Z, A );
print("X:= " + 2 * math.cos(x),"Y:= " + 2 * math.sin(x));
}
Engine.RapidTo(X, Y, .2);
}
Engine.RapidTo(0, 0, .2);
block("MotionStill");
Then this is a typical log file output, the X & Y are from my script print() function.
the Line : Vel:- , Accel:- -- Commanded - are from Auggies data stream using the current settings from my setup.
X:= 2 Y:= 0
X:= -8.74228e-008 Y:= 2
X:= -2 Y:= -1.74846e-007
X:= 2.38498e-008 Y:= -2
X:= 0.567324 Y:= -1.91785
X:= 1.91785 Y:= 0.567325
X:= -0.567325 Y:= 1.91785
X:= -1.91785 Y:= -0.567324
X:= 0.567324 Y:= -1.91785
X:= -1.67814 Y:= -1.08804
X:= 1.08804 Y:= -1.67814
X:= 1.67814 Y:= 1.08804
X:= -1.08804 Y:= 1.67814
X:= -1.67814 Y:= -1.08804
X:= -1.51938 Y:= 1.30058
X:= -1.30057 Y:= -1.51938
X:= 1.51938 Y:= -1.30057
X:= 1.30057 Y:= 1.51938
X:= 0.816164 Y:= 1.82589
X:= -1.82589 Y:= 0.816163
X:= -0.816162 Y:= -1.82589
X:= 1.82589 Y:= -0.816161
X:= 1.98241 Y:= -0.264704
X:= 0.264702 Y:= 1.98241
X:= -1.98241 Y:= 0.264701
X:= -0.2647 Y:= -1.98241
X:= 0.308503 Y:= -1.97606
X:= 1.97606 Y:= 0.308504
X:= -0.308505 Y:= 1.97606
X:= -1.97606 Y:= -0.308507
X:= -1.80738 Y:= -0.856365
X:= 0.856367 Y:= -1.80738
X:= 1.80738 Y:= 0.856368
X:= -0.856369 Y:= 1.80738
X:= -1.33388 Y:= 1.49023
X:= -1.49023 Y:= -1.33388
X:= 1.33388 Y:= -1.49022
X:= 1.49022 Y:= 1.33388
Line : Vel:5.03 , Accel: 150.80 -- Commanded 8.33
Line : Vel:8.33 , Accel: 8485.28 -- Commanded 8.33
Line : Vel:8.33 , Accel: 8485.28 -- Commanded 8.33
Line : Vel:8.33 , Accel: 8485.28 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6828.72 -- Commanded 8.33
Line : Vel:8.33 , Accel: 12565.91 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6828.72 -- Commanded 8.33
Line : Vel:8.33 , Accel: 12565.91 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:6.01 , Accel: 180.17 -- Commanded 8.33
Line : Vel:8.33 , Accel: 28758.73 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6135.01 -- Commanded 8.33
Line : Vel:8.33 , Accel: 28758.64 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6135.01 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:6.01 , Accel: 180.17 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6018.03 -- Commanded 8.33
Line : Vel:8.33 , Accel: 77560.97 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6018.03 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 16807.08 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6423.25 -- Commanded 8.33
Line : Vel:8.33 , Accel: 16807.02 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7552.18 -- Commanded 8.33
Line : Vel:8.33 , Accel: 9879.79 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7552.18 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7428.35 -- Commanded 8.33
Line : Vel:8.33 , Accel: 10176.89 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7428.34 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 17844.62 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6370.93 -- Commanded 8.33
Line : Vel:8.33 , Accel: 17844.69 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6009.19 -- Commanded 8.33
Line : Vel:8.33 , Accel: 90137.82 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6009.19 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:14.99 , Accel: 8996.32 -- Commanded 1666.65
https://www.youtube.com/watch?v=fKp5jbWVzUE
My code; run from the script window:
sleep(5); //gives me some time to get to the machine to watch.
Engine.RapidTo(0, 0, .2); //X,Y,Z start position
block("MotionStill"); // wait for it to get there
Z=0;
for(i = 0; i < 90; i = i + 10)
{
startang=i/2;
for( x = startang; x < (2 * (Const.PI))+startang; x += (Const.PI/2) )
{
Engine.FeedTo( 2 * math.cos(x), 2 * math.sin(x), Z, A );
print("X:= " + 2 * math.cos(x),"Y:= " + 2 * math.sin(x));
}
Engine.RapidTo(X, Y, .2);
}
Engine.RapidTo(0, 0, .2);
block("MotionStill");
Then this is a typical log file output, the X & Y are from my script print() function.
the Line : Vel:- , Accel:- -- Commanded - are from Auggies data stream using the current settings from my setup.
X:= 2 Y:= 0
X:= -8.74228e-008 Y:= 2
X:= -2 Y:= -1.74846e-007
X:= 2.38498e-008 Y:= -2
X:= 0.567324 Y:= -1.91785
X:= 1.91785 Y:= 0.567325
X:= -0.567325 Y:= 1.91785
X:= -1.91785 Y:= -0.567324
X:= 0.567324 Y:= -1.91785
X:= -1.67814 Y:= -1.08804
X:= 1.08804 Y:= -1.67814
X:= 1.67814 Y:= 1.08804
X:= -1.08804 Y:= 1.67814
X:= -1.67814 Y:= -1.08804
X:= -1.51938 Y:= 1.30058
X:= -1.30057 Y:= -1.51938
X:= 1.51938 Y:= -1.30057
X:= 1.30057 Y:= 1.51938
X:= 0.816164 Y:= 1.82589
X:= -1.82589 Y:= 0.816163
X:= -0.816162 Y:= -1.82589
X:= 1.82589 Y:= -0.816161
X:= 1.98241 Y:= -0.264704
X:= 0.264702 Y:= 1.98241
X:= -1.98241 Y:= 0.264701
X:= -0.2647 Y:= -1.98241
X:= 0.308503 Y:= -1.97606
X:= 1.97606 Y:= 0.308504
X:= -0.308505 Y:= 1.97606
X:= -1.97606 Y:= -0.308507
X:= -1.80738 Y:= -0.856365
X:= 0.856367 Y:= -1.80738
X:= 1.80738 Y:= 0.856368
X:= -0.856369 Y:= 1.80738
X:= -1.33388 Y:= 1.49023
X:= -1.49023 Y:= -1.33388
X:= 1.33388 Y:= -1.49022
X:= 1.49022 Y:= 1.33388
Line : Vel:5.03 , Accel: 150.80 -- Commanded 8.33
Line : Vel:8.33 , Accel: 8485.28 -- Commanded 8.33
Line : Vel:8.33 , Accel: 8485.28 -- Commanded 8.33
Line : Vel:8.33 , Accel: 8485.28 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6828.72 -- Commanded 8.33
Line : Vel:8.33 , Accel: 12565.91 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6828.72 -- Commanded 8.33
Line : Vel:8.33 , Accel: 12565.91 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:6.01 , Accel: 180.17 -- Commanded 8.33
Line : Vel:8.33 , Accel: 28758.73 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6135.01 -- Commanded 8.33
Line : Vel:8.33 , Accel: 28758.64 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6135.01 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:6.01 , Accel: 180.17 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6018.03 -- Commanded 8.33
Line : Vel:8.33 , Accel: 77560.97 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6018.03 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 16807.08 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6423.25 -- Commanded 8.33
Line : Vel:8.33 , Accel: 16807.02 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7552.18 -- Commanded 8.33
Line : Vel:8.33 , Accel: 9879.79 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7552.18 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7428.35 -- Commanded 8.33
Line : Vel:8.33 , Accel: 10176.89 -- Commanded 8.33
Line : Vel:8.33 , Accel: 7428.34 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 17844.62 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6370.93 -- Commanded 8.33
Line : Vel:8.33 , Accel: 17844.69 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:1.52 , Accel: 45.53 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6009.19 -- Commanded 8.33
Line : Vel:8.33 , Accel: 90137.82 -- Commanded 8.33
Line : Vel:8.33 , Accel: 6009.19 -- Commanded 8.33
Line : Vel:0.50 , Accel: 15.00 -- Commanded 1666.65
Line : Vel:14.99 , Accel: 8996.32 -- Commanded 1666.65
You do not have the required permissions to view the files attached to this post.
-
Amazon [Bot]
- Full Member

- Posts: 185
- Joined: Tue Jan 06, 2026 4:56 pm
Re: Auggie Early posts
Easier for me to create in degrees; ;D
Z=0;
start_ang=math.degtorad (0);
inc_ang=math.degtorad (60);
fullpath=360/inc_ang;
acrossflats=1.5;
toflat=(acrossflats/2);
print(start_ang);
print(inc_ang);
print(fullpath);
for( x = start_ang; x < ((2 * Const.PI)+(Const.PI/fullpath)); x += inc_ang)
{
Engine.FeedTo( toflat * math.cos(x), toflat * math.sin(x), Z, A );
}
Engine.RapidTo(0, 0, .5);
block("MotionStill");
8)
Note: MotionStill is a command that waits till the coordinates have been reached, pauses slightly then continues.
Even thou cv is on and radius is set to .01" in this next code example it acts more like exact stop mode.
for( x = start_ang; x < ((2 * Const.PI)+(Const.PI/fullpath)); x += inc_ang)
{
Engine.FeedTo( toflat * math.cos(x), toflat * math.sin(x), Z, A );
block("MotionStill");
}
If i was having any more fun, Art would be charging me.
Z=0;
start_ang=math.degtorad (0);
inc_ang=math.degtorad (60);
fullpath=360/inc_ang;
acrossflats=1.5;
toflat=(acrossflats/2);
print(start_ang);
print(inc_ang);
print(fullpath);
for( x = start_ang; x < ((2 * Const.PI)+(Const.PI/fullpath)); x += inc_ang)
{
Engine.FeedTo( toflat * math.cos(x), toflat * math.sin(x), Z, A );
}
Engine.RapidTo(0, 0, .5);
block("MotionStill");
8)
Note: MotionStill is a command that waits till the coordinates have been reached, pauses slightly then continues.
Even thou cv is on and radius is set to .01" in this next code example it acts more like exact stop mode.
for( x = start_ang; x < ((2 * Const.PI)+(Const.PI/fullpath)); x += inc_ang)
{
Engine.FeedTo( toflat * math.cos(x), toflat * math.sin(x), Z, A );
block("MotionStill");
}
If i was having any more fun, Art would be charging me.
Last edited by Amazon [Bot] on Thu Nov 26, 2015 9:13 pm, edited 1 time in total.
-
ArtF
- Global Moderator

- Posts: 4557
- Joined: Sun Sep 05, 2010 5:14 pm
- Contact:
Re: Auggie Early posts
I really must get my machine hooked up..
Art
-
Amazon [Bot]
- Full Member

- Posts: 185
- Joined: Tue Jan 06, 2026 4:56 pm
Re: Auggie Early posts
Hell no!
your too busy coding, I have a lot more for you to do ::)
-
DanL
- Site Admin
- Posts: 357
- Joined: Thu Sep 11, 2014 12:35 am
Re: Auggie Early posts
you boy's are having too much fun, look very cool art
-
ArtF
- Global Moderator

- Posts: 4557
- Joined: Sun Sep 05, 2010 5:14 pm
- Contact:
Re: Auggie Early posts
His machine is actually moving, I have a stepper 4th axis behind me that runs so I can listen to it.
So I swap it among axis . Wont be long Ill have to hook mine up to the laser arms..

Art
So I swap it among axis . Wont be long Ill have to hook mine up to the laser arms..
Art