CNCzone.com-The Largest Machinist Community on the net!



Home Page Mark Forums Read Today's Posts My Replies Classifieds Reviews Photo Gallery Web Links Share Files Advertise With Us Ad List
Go Back   CNCzone.com-The Largest Machinist Community on the net! > CAM Software > General CAM Discussion


General CAM Discussion Discuss CAD/CAM software and Design software methods here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 02-12-2010, 12:20 PM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road
Centerline Times Roman for Crazies

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
Attached Thumbnails
Click image for larger version

Name:	roman_fig1.jpg‎
Views:	126
Size:	33.5 KB
ID:	99885   Click image for larger version

Name:	roman_fig2.jpg‎
Views:	129
Size:	42.7 KB
ID:	99886   Click image for larger version

Name:	roman_fig3.jpg‎
Views:	119
Size:	31.2 KB
ID:	99887  
__________________
It's like doing jigsaw puzzles in the dark.
Enjoy today's problems, for tomorrow's may be worse.
Reply With Quote

  #2   Ban this user!
Old 02-14-2010, 06:37 AM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road

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 :(
Reply With Quote

  #3  
Old 02-14-2010, 06:51 AM
ger21's Avatar
Community Moderator
 
Join Date: Mar 2003
Location: Shelby Twp, MI....USA
Posts: 20,448
ger21 is on a distinguished road
Buy me a Beer?

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)
Reply With Quote

  #4   Ban this user!
Old 02-14-2010, 07:18 AM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road

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.
Reply With Quote

  #5   Ban this user!
Old 02-14-2010, 12:12 PM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road

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
Attached Thumbnails
Click image for larger version

Name:	roman_e.jpg‎
Views:	112
Size:	125.9 KB
ID:	99991  
__________________
It's like doing jigsaw puzzles in the dark.
Enjoy today's problems, for tomorrow's may be worse.
Reply With Quote

Sponsored Links
  #6  
Old 02-14-2010, 12:33 PM
ger21's Avatar
Community Moderator
 
Join Date: Mar 2003
Location: Shelby Twp, MI....USA
Posts: 20,448
ger21 is on a distinguished road
Buy me a Beer?

Though not necessary here, is it permissible to have I,J,and K settings to one curve in Gcode ?
No.
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)
Reply With Quote

  #7   Ban this user!
Old 02-16-2010, 10:34 AM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road
Second attempt

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
Attached Files
File Type: txt roman_uppercase_i.txt‎ (1.3 KB, 91 views)
__________________
It's like doing jigsaw puzzles in the dark.
Enjoy today's problems, for tomorrow's may be worse.
Reply With Quote

  #8   Ban this user!
Old 02-17-2010, 05:47 AM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road

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.
Reply With Quote

  #9   Ban this user!
Old 02-17-2010, 07:16 AM
 
Join Date: May 2005
Location: canada
Posts: 1,149
cyclestart is on a distinguished road

Originally Posted by greybeard View Post
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 ?
Not exactly but there are python scripts that get node coordinates to spit out gcode. There's examples here:
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.
Reply With Quote

  #10   Ban this user!
Old 02-24-2010, 05:05 AM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road

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 !
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 02-24-2010, 05:16 AM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road

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.
Reply With Quote

  #12   Ban this user!
Old 02-24-2010, 08:12 AM
greybeard's Avatar  
Join Date: Jun 2005
Location: UK
Age: 73
Posts: 1,368
greybeard is on a distinguished road

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.
Reply With Quote

Reply




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On


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




All times are GMT -5. The time now is 02:53 PM.





Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
Template-Modifications by TMS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361