![]() | |
| Home Page | Mark Forums Read | Today's Posts | My Replies | Classifieds | Reviews | Photo Gallery | Web Links | Share Files | Advertise With Us | Ad List |
| |||||||
| General CAM Discussion Discuss CAD/CAM software and Design software methods here! |
| This forum is sponsored by: |
![]() |
| | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
| ||||
| ||||
Greybeard's attempt at creating a Times Roman style carved font using a 60º cutter. [I'm starting this post here as I presume this is the appropriate forum. If not, Moderator please move wherever.] While it would be desirable to machine carve exactly as the hand carved letter, the difference in tools prevents this in reality. So a compromise has to be accepted right from the start, kept to a minimum while trying to keep the code from getting too lengthy. By standardizing on a 60º V-cutter, it is obvious that the depth of cut is always sqrt3/2 times the width, so by concentrating on a path that was generated to fill the width of the stroke at any point, the depth would take care of itself. An analysis of the outline of the Times Roman upper case I, chosen for simplicity, leads rapidly to a general method of finding the centre line tool path. This was done by placing a series of circles inside the outline, each with its own centre marked, so that the circles just kissed two sides. See fig 1. A line was drawn to join up all the centre spots, and inspection of this path suggested that two arcs would make a close approximation, with a short straight line at the end. See fig 2. Putting some dimensions on the outline, and trial and error with different sized circles discovered that the two circles were so close in size to each other, that the first compromise was accepted, and they were made the same. In fact at this stage the original outline was redrawn on the basis of a simplified set of numbers, and the proportions of the various components were found to be remarkably related, so this was taken as a good sign for the procedure. The second compromise was to accept that the end of the serif might result in a circular tip, especially if a standard V-cutter was used which produces a narrow flat bottom, rather than a fine line that the more expensive 3-flute engraving cutter produces. If you've got the latter tool, great, you can probably afford the commercial software, so why are you reading this ? ![]() Removing the surplus lines leads us to fig 3, the redrawn outline plus part of the tool path. It should be obvious that the other side is identical, and the top serif is the same as the bottom one, so producing all the numbers should now be straightforward, and a simple gcode for this letter should follow. Once this is completed, I can move on, first to other straight line letters, then to those that require curved elements. While many of the serifs are essentially the same, it is surprising how often they are subtly different, and this will be taken into account. It's not quite as easy as cut and paste, but having established the method, I feel happy with the idea of working this way. I did consider that there might well be an automated method of applying an overlay of serifs on top of the essential strokes of each letter, but this is not an area I'm familiar with. However, I should welcome sight of anyone wanting to try that method, and would invite them to post here any comparable ideas, so long as everyone can understand what they're talking about. On that subject, please advise me of any mistakes or lack of clarity regarding the method. Regards to all readers, John
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. |
|
#2
| ||||
| ||||
| Here is my preliminary gcode for the upper case roman I, but be aware that it is not yet trialed.(I haven't got a 60 cutter yet ) It's based on my attempt to get my router to cut a decent incised Times Roman face, by defining the centre line for the straight strokes, and circular/helical arcs for the serifs. It is merely the geometry of the tool path, based on a 60 degree v-cutter, and the values are based on a letter height of 1 unit. For example, if you want to try it with a Caps height of 2 inches, multiply all x,y,z,I and J values by 2, but if you want it to cut 50mm high, multiply by 50. Enter your own values for clearance heights for rapid moves, dwell times, and feed rates. You can see how much I have to learn ![]() If you try it with a 90 degree cutter, I assume it will just give a flatter, more open shape to the cut, but it will then lack the effect that the lighting will give in bringing out the contour. John
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. Last edited by greybeard; 02-15-2010 at 02:30 PM. Reason: Code deleted for editing :( |
|
#3
| ||||
| ||||
| I started to do something similar to this several years ago, before Vectric came out with V-Carve Pro. What I did was write a few AutoCAD macro's to help automate it. In your example, I'd start in the lower right, drawing a circle tangent to the 3 lines. I'd then use a macro to draw circles tangent to the two lines, increasing the diameter a fixed amount each time (.001, but it depends on the size of the letter). Once all the circles were draw, I ran another macro that would draw lines from the center of the circle straight down, with the length being the radius of the circle. (for a 90° cutter). Then delete the circles, and draw a 3D line connecting the bottom of the vertical lines, starting in the corners of the outline and moving to the bottom of the first circle. This gives you v carved text with sharp corners. My intent was to save each letter as a block, and write an AutoCAD macro that would take a line of text, and automatically insert the 3D lines, which could then be converted to g-code. Once a somewhat affordable product became available, I abandoned the idea. It would have been quite a bit of work. Good luck.
__________________ Gerry Mach3 2010 Screenset http://home.comcast.net/~cncwoodworker/2010.html (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management) |
|
#4
| ||||
| ||||
| Thanks Gerry. I can see that your method would give a more accurate result, but then not having autocad, and being familiar with coreldraw, I've chosen what I hope will be a simpler route. Spreadsheets are bad enough. I haven't dared think of macros ![]() John EDIT I can see that there might be a small ridge at the centre of each serif, top and bottom. A cross-wise cut with the tool could be used to remove this, but I'll see if it's really necessary.
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. Last edited by greybeard; 02-14-2010 at 08:07 AM. |
|
#5
| ||||
| ||||
| Having started with the simplest letter, I may have jumped to the most complex. The upper case E has different serif shapes on each stroke, and each stroke is a different thickness. Once again, I've allowed a certain compromise to creep in in terms of roundness of corners, rather than the crip chisel cuts of a hand cut letter. Here for now is the construction, and tomorrow I'll start the plotting the points. One thing I need to find out. The serif at the end of the cetre horizontal stroke of the E might need a K variable set for that section. Though not necessary here, is it permissible to have I,J,and K settings to one curve in Gcode ? Certainly I can see that the process should speed up as I go on, so the total time may not be too bad. ![]() John
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. |
| Sponsored Links |
|
#6
| ||||
| ||||
I=X J=Y K=Z You use I,J in the XY plane (G17), I,K in the XZ plane (G18), and JK in the YZ plane (G19). You can do helical arcs in each plane, though. But you wouldn't need the K to do them in XY.
__________________ Gerry Mach3 2010 Screenset http://home.comcast.net/~cncwoodworker/2010.html (Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management) |
|
#7
| ||||
| ||||
Ok, I admit the first lot was garbage. So here's my second attempt. I'd be grateful if someone could run their eye over it, or some sort of simulator to check it out, as I haven't got that organised yet. Perhaps I just post it into AXIS ? Is it that easy ? John
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. |
|
#8
| ||||
| ||||
| To save me a lot of typing, does anyone know of a piece of software that will convert a simple vector drawing into an xy data set ? I've got a ancient digitizer pad, and could draw over a printout of the drawing, but it ought to be much quicker, and more accurate "on screen". I've tried googling every combination of words that might point me to one, but I generally get something far to complex that will take me longer to learn than to do it the slow way. John EDIT Still a problem with my I and J values. Shows errors in AXIS
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. Last edited by greybeard; 02-17-2010 at 07:12 AM. |
|
#9
| |||
| |||
| http://wiki.linuxcnc.org/cgi-bin/emc...?InkscapeHowto The older script (Hugomatic's) is the simplest of those listed but would have to be broken down a bit to get a simple list of sets. Not much help if you don't read python but it shows it has been done. Surely someone has done similar with Corel draw ? cnczone member Switcher has also written something similar (inkscape again) although I don't remember what language it's written in. Okay, not much help. Try a search of posts of cnczone member Torchhead ? He's written a Corel draw plug-in or two. Edit/ About I's and J's. They must be exact, no fudge factor. Hope I've at least given some ideas for further search.
__________________ Anyone who says "It only goes together one way" has no imagination. |
|
#10
| ||||
| ||||
| Onwards and Upwards. Herewith the latest, anti-fudge code for the Roman I, with a slight rearrangement of cutting order. I decided it might be better to cut each of the serifs inwards towards the main stroke, rather than some inwards, and some outwards. It may be unimportant, but you never know, the consistency might give a better finish. John #1=0.1 (SH) #2=50 (letter size) #3=300 (Feed ) #4=[-0.023816*#2] (Z at serif end) #5=[-0.121244*#2] (Z at full depth) g00 x[0.000000*#2] y[1.000000*#2] Z#1 (letter home) g00 x[0.013750*#2] y[0.986250*#2] (starting point top left) g01 x[0.013750*#2] y[0.986250*#2] Z#4 F#3 (cutting depth) g01 x[0.040000*#2] y[0.986250*#2] F#3 (straight cut) g02 x[0.206109*#2] y[0.925850*#2] Z#5 I0 J[-0.258944*#2] F#3 (first arc) g02 x[0.215000*#2] y[0.860000*#2] I[-4.89139*#2] J[-0.700000*#2] F#3 (second arc) g00 x[0.215000*#2] y[0.860000*#2] Z#1 (SH) g00 x[0.416250*#2] y[0.986250*#2] (start point top right) g01 x[0.416250*#2] y[0.986250*#2] Z#4 F#3 (cutting depth) g01 x[0.390000*#2] y[0.986250*#2] F#3 (short cut) g03 x[0.223891*#2] y[0.925850*#2] Z#5 I0 J[-0.258944*#2] F#3 (first arc) g03 x[0.215000*#2] y[0.860000*#2] I[4.89139*#2] J[-0.700000*#2] F#3 (second arc) g01 x[0.215000*#2] y[0.140000*#2] F#3 (main stroke) g00 x[0.215000*#2] y[0.140000*#2] Z#1 (SH) g00 x[0.013750*#2] y[0.013750*#2] Z#1 (starting point bottom left) g01 x[0.013750*#2] y[0.013750*#2] Z#4 F#3 (cutting depth) g01 x[0.040000*#2] y[0.013750*#2] F#3 (straight cut) g03 x[0.206109*#2] y[0.074150*#2] Z#5 I0 J[0.258944*#2] F#3 (first arc) g03 x[0.215000*#2] y[0.140000*#2] I[-4.89139*#2] J[0.700000*#2] F#3 (second arc) g00 x[0.215000*#2] y[0.140000*#2] Z#1 (SH) g00 x[0.416250*#2] y[0.013750*#2] (start point bottom right) g01 x[0.416250*#2] y[0.013750*#2] Z#4 F#3 (cutting depth) g01 x[0.390000*#2] y[0.013750*#2] F#3 (short cut) g02 x[0.223891*#2] y[0.074150*#2] Z#5 I0 J[0.258944*#2] F#3 (first arc) g02 x[0.215000*#2] y[0.140000*#2] I[4.89139*#2] J[0.700000*#2] F#3 (second arc) g00 x[0.215000*#2] y[0.140000*#2] Z#1 (SH) g00 x[0.500000*#2] y[1.000000*#2] m30
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. Last edited by greybeard; 02-24-2010 at 08:10 AM. Reason: corrections to coding typos - so far ! |
| Sponsored Links |
|
#11
| ||||
| ||||
| Just spotted the lack of brackets round the #4 and#5 values. Will look at this next. Does "near" mean the fault is in a piece of code that the line refers back to, like the mistake in the parameter code ?Edit Nope, that wasn't it, so I'm still looking for knowledge ! 2nd EDIT Big John on the linuxemc forum gently pointed out my typo. It now runs, but upside down, so I'll have to sort out the Z axis next
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. Last edited by greybeard; 02-24-2010 at 06:52 AM. |
|
#12
| ||||
| ||||
| Just done my first test cut, unfortunately with a 90 degree cutter, not the 60 it's coded for. The result is ok from what I can see, but there's no point in posting a pic until I get the right cutter. This cut is far too fat ![]() Till then, it's on with the rest of the alphabet ! John
__________________ It's like doing jigsaw puzzles in the dark. Enjoy today's problems, for tomorrow's may be worse. |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | Search this Thread |
| Display Modes | |
| |
Similar Threads | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| 3D for Crazies | greybeard | Digitizing and Laser Digitizing | 169 | 10-10-2009 05:36 AM |
| Need Help!- SL-20 x centerline offset | vegas705 | Haas Lathes | 1 | 01-11-2009 03:58 PM |
| How Can I Draw a Centerline Between 2 Lines? | cbcnc | Autodesk Software (Autocad, Inventor etc) | 5 | 01-12-2008 09:04 PM |
| mazak machine centerline | Bob Archibald | Mazak, Mitsubishi, Mazatrol | 2 | 10-09-2007 02:14 PM |
| Linistepper cooling issues (james, roman, anyone?) | posix | Open Source Controller Boards | 27 | 07-25-2006 06:22 PM |