A much improved version of my automatic translator has been posted to this page which can handle messages 1-4, including number formats and images. It has a user defined dictionary at the start of the .c file which allow customisation. I find it useful as a first pass parser, it takes as arguments file names and outputs to stdout. Have we conclud that 'p' is equivalent to radius as in message3 016 | :RADIUS: :EQ: 2 :EQ: :RADIUS: | 017 | # # # # - - # # - - - # # - - # # # # | If so, q and r must be start and end angles of an arc ... 018 | :RADIUS: :EQ: 2 :EQ: :RADIUS: | 019 | :START: :EQ: ang0ang :EQ: :START: | 020 | :END: :EQ: ang108ang :EQ: :END: | 021 | - - - - - - - # - - - # # - - # # # # If this is true, it leaves the wierd early section of the message as 006 | X :SIN: ang18ang :SIN: X | 007 | 10 :DIV<: X :DIV<: :RADIUS: | 008 | :RADIUS: :EQ: 1.285 :EQ: :RADIUS: | 009 | X :SIN: ang36ang :SIN: X | 010 | 5 :DIV<: X :DIV<: :RADIUS: | 011 | :RADIUS: :EQ: 18 :EQ: :RADIUS: | Which says x=sin 18 (sin 30deg=-0.988) radius/10=x (radius=10*x =-9.8) radius=1.285 Which makes no sense, I like the tan idea, but don't see how it can be made to work ? Pete