Hi
As you know I like to make accessories to enhance the potential use of CNC machines, we would surely have seen in my Youtube channel (
http://www.youtube.com/user/RobotfactorySRL # g / u).
Well now I have made up his mind to add a new accessory "Photography".
For accessory "Photography" I decided to use the DLL "Engraving" that Art has done.
I've read all the messages on both the Yahoo forum that the Machsupport forum concerning the topic.
For those who want to revise the topic:
http://groups.yahoo.com/group/mach1mach2cnc/message/74912http://www.machsupport.com/forum/index.php/topic, 11996.msg87152.html # msg87152
http://www.machsupport.com/forum/index.php/topic,12981.0.htmlThe first problem was to find a way to drive a magnet through the signal "Digit Trigger".
After many trials I found a way to use a magnet with which I can use the DLL developed by Art, for this I used a stepper motor drive for connecting the magnet to a single phase leaving the other free.
Since the signal "Digit Trigger" is very short, this is the only simple system possible for proper operation.
With this system I can have a feed rate of 300 mm/min, not much but enough if you consider that it works.
Up to here all is well ...
The problem is probably that the DLL is not working properly, you can see it in the first photo.
The picture would also be good with many shades of gray ...
The image is slightly offset, this is because at the end of the path of the X the trigger array is empty.
When you move to the next line in Y, the start is correct.
And so on until the end.
This is proportional to the X-axis travel (it seems that the values are rounded to lose data, and then the road is longer and more data are lost).
You can see it in the second photo.
I am working in mm!
Perhaps the problem is in this passage from the message of Art:
############
The triggerlength is an array of 1's and 0's which represent the image's density in one scan line. Its limited to 1000000 , so thats
1 million steps. The trigger array is equal to the number of steps you will move in the X each scan line.
omission .....
Think of pixel size this way. If the program knows there is 120 steps in each pixel of the X line of image, then it will put a variable pulse rate
for that first 100 steps that is representative of the density of that first pixel. During the next 120 steps, another pulse pattern will come out
representing the density of the next pixel..ect.. So if theres less than 20 motor steps / pixel, you wont get much of a density pattern.
omission .....
The way it works is basically this , a buffer of bits is created, the length of the number of steps that the photo will scan in one line.
So in a 5000steps/unit system, on a 8 x10" photo, there woudl be a scanline of 5000 * 10 or 50,000 bits.
Each bit may be set to 1 or 0. that 1 or 0 is put out on the DigTrigger output during the scan of the motor as it traverses the X axis.
This means acceleration is taken into account and each of the 50,000 bits will correspond to the motor position exactly. Now in this example, if the loaded photo is 1024 x 768, then each of the 1024 pixels in the image X will match up with 50,000 / 1024 = approx 50 triggers. If the image was 20" , then we'd have about 100 trigger positions per pixel. Question now, is how best to handle the filling of the possible 50,000 trigger points.
############
You can see the same problem of mine in the third picture (Top right) when you use the DLL with the laser.
Surely no one noticed because the Y stepover of the fault is less than what I use (0.2 mm)
Now I'm asking for HELP!!!
Art, poppabear, or any person who is able to program in VC++ can help me to solve my problem?
I use the DLL created by bdock (
http://www.machsupport.com/forum/index.php/topic, 11996.10.html) on July 29, 2009, 05:22:37 AM,
because he have added a "Maintain Aspect Ratio" checkbox to keep the image the correct shape.
If you need the sources code, these are in the link above.
Or the originals in Machsupport Plugin.
Please help me to solve the problem!!!
Andrea