It will be some time before I probably need it, but I would like to thank you most kindly for your work and documentation. It looks very usefull...
I would hope that any other user of your software does the same!
Best regards
Der Fisherman
I have written a program which fixes any skew or non-squareness of the router by modifying the g-code. This is very useful when milling double sided pcb's.
Another program is included which calculates machining time.
And yet another which removes parallel lines situated closely together. This is handy when milling fine pitch smd pads.
You are free to host the program or provide a link:
program and source
Tjeerd
It will be some time before I probably need it, but I would like to thank you most kindly for your work and documentation. It looks very usefull...
I would hope that any other user of your software does the same!
Best regards
Der Fisherman
Thanks for the kind words.
Tjeerd
Gsuite V1.2
I added some more programs. Here is an update.
http://pilotpage.monosock.org/filead...suite_v1.2.rar
Gflat v1.0 – Creates a milling pattern to flat the bed of the milling machine. It can generate both a conventional milling or climb milling path.
Gopt 1.0 – Optimizes both drilling and milling paths. Tool changes are supported as well. This program is completely new and has different logic then existing optimization programs.
Gpath v1.1– Removes close parallel tracks. This leaves only one track to be milled between pads which increases track quality. Handy for engraving fine pitch SMD IC's.
Gskew v1.2– Compensates for skew or un-squareness in the milling machine. With some tweaking, the drill holes in the via's and pads can be aligned exactly. Handy for double sided PCB's.
Gtime v1.1– Calculates the time it takes to finish the milling job. No more surprises. The job time is accurate to within about 10 minutes for large boards.
Let me know what you think.
Tjeerd
Very impressive set of tools Tjeerd. I ran a simple file through.
gTime for
unoptimized = 11m 45s
optimized = 9m 39s
The app is simple and self-contained. Congrats on a job well done. On request, I always liked seeing the reduction in length of distance traveled.
I'll run some comparisons to Opti and follow up.
Jay
Tried the Gpath ... no so sure it's what I would ever use as I want the bit to remove all copper from the isolation distance ... can you give an example of why you made this?
Jay C,
Sure. It all started when I was milling a VTQFP (Very Thin Quad Flat Package) footprint with a pitch of 0.5mm. This means the track has to be only 0.2mm wide. pcb-gcode (and I think most other cam programs) draws two tracks through the middle of the pads. This is because the program wants to isolate both pads, hence two tracks. But the middle track is thin enough as it is so the trick is to get those isolation tracks as close as possible so they are effectively on top of each other. This will normally generate the thinnest milled track for two passes. But I noticed that even though the milling tracks are practically the same location, the track was made a little bit wider with the second pass. This has probably to do with the laws of physics like motion, resistance, etc.
Anyway, Gpath makes sure that only one milling pass is made between closely located tracks. This makes the pads as wide as possible. They are thin enough as it is. For all other pads and tracks, of course you would like as much copper to be removed as you can. But not for the pads of these impossibly fine pitch IC's.
Makes sense?
Tjeerd
Makes sense, but that is not how the program behaved for me.
You have to adjust the "Distance Threshold".
Find any parallel tracks you want to remove. Get the X or Y offset between the two. Set the distance threshold just a tiny bit larger than that. Be sure to use the same units as your gcode file.
It looks like you have your distance threshold set far too large so the program removes all sorts of tracks you don't want it to. Besides, I don't see any tracks in your program you want to remove anyway. Remember, it is only designed for fine pitch SMD pads which have only two tracks in between them.
Tjeerd
Tjeerd,
Great to see Your software. used it on sorting some Gcode. Obtained excellent results provided there were no arcs ( G02 and G03 elements).
Any plans to include arcs ( I know the arcs introduce a level of complexity which is an order of magnitude higher)?
Does the sorter algorithm output G code which has been restructured so as to cause the tool to go from tail to nearest head and or tail and thsu reverse order of traversal of individual vectors?
Zig,
No plans to include arcs. I can't use them anyway because it will be hard to make offsets to compensate for skew (Gskew), you'd get elipses. I could get it to work for just the Gopt program I guess, but that would be way down the pipeline.
I don't quite understand your question about the sorting logic but it works like this:
-Find out where the toolchanges are and treat the code in between as seperate blocks for the sorting logic.
-Find the closest entry point to a line (track beginning and ending at a different location), or loop (track beginning and ending at the same location).
-Find yet another closest entry point for another line or loop. Use the location where the previous line or loop ended as a reference point. If it was a loop, the entry and exit point are the same. If it is a line, the exit point is at the other end from the line.
-Repeat this process for each tool change block.
So it does reverse direction of the lines sometimes if this makes the rapid positioning path shorter. It doesn't reverse the direction of the loops, because this makes no difference.
Hope this answers your question.
Tjeerd
New version: 1.3
http://pilotpage.monosock.org/filead...suite_v1.3.rar
I added a new program: Gcoil
It can be used to turn your normal CNC milling machine into a coil winder. Not really PCB milling, but still very handy
![]()