586,076 active members*
3,831 visitors online*
Register for free
Login
Results 1 to 7 of 7
  1. #1
    Join Date
    Nov 2005
    Posts
    1468

    Help! am Stuck!

    Hope someone can help me on this one, I've tried everything and generaly don't ask for help unless I'm genuinely stuck.. here goes:

    My Diamond turning lathe accepts it's own twisted version of movement commands, but there's a big chunk of it that's basic X, Z movements.

    I want to cut all these out and paste it with my own set of X, Z co- ordinates. Easy enough I thought, but apparently not.

    My machine will only accept X, Z co- ordinates in the form:

    X 05.66919Z-00.90208
    X 05.65979Z-00.89865
    X 05.65040Z-00.89522
    etc etc

    ie: It has to be that exact format including leading zeros and trailing- say Z-0.5 would be Z-00.50000.

    I wrote a program in BASIC to output the X and Z values I want to Paste into the beast but I cannot figure how to get leading or trailing zeros if the numbers aren't in that exact format. For example, my generator will output stuff like:

    X 5.5 Z 0.123
    X 5.409 Z 0.1229

    etc... the format is not the same, is there anyway to convert my output to the required output.

    Manualy editing is not an option... there are typicaly 1700 lines of code on a small 17mm dia component and I typicaly go up to 100mm dia. I've also tried fooling about on Excel with the data, but to no avail.

    Any ideas gratefully received.

    Many thanks in advance.

    Iain.
    I love deadlines- I like the whooshing sound they make as they fly by.

  2. #2
    Join Date
    Nov 2005
    Posts
    1468
    *bump*

    Oh, if it makes a difference, my BASIC program can output the X, Z values without the actual letters "X" and "Z".
    I love deadlines- I like the whooshing sound they make as they fly by.

  3. #3
    Join Date
    Jun 2007
    Posts
    3757

    Wink Basic fix.

    Hi Iain.

    In basic, add 100 or some big number to the values, then turn them into a string.
    Seeing as how the numbers always are in the the range of say 1000-1099 on the left of the decimal point, just clip off the left digits.
    You will have to handle the '-' sign separately.

    you need 7 digits.
    First decide if the number is positive or negative.
    Make sign$=' ' if positive, and '-' if negative.
    For positive number:
    eg. if required number is 04.32100, adding 1000 you get 1004.321.
    or for negative number:
    eg. if required number is -04.32100, subtract 100 you get -104.321.

    Now we always have something 4 characters wide on left of the dot.
    Make axis$='X' or 'Z'
    multiply that by 100000 again, and you get
    100432100 or -10432100 and convert it to a string with result$=string$(number)
    Now take the left 4 characters units$=left$(result$,4)
    result$=axis$+sign$+right$(units$,2)+"."+right$(result$,5)
    gives X 04.32100 or X-04.32100 which should make you dumb system happy.
    You can use the same scheme in excel if you try.
    That's the general idea anyway.

    Regards. Neil

    :cheers:
    Super X3. 3600rpm. Sheridan 6"x24" Lathe + more. Three ways to fix things: The right way, the other way, and maybe your way, which is possibly a faster wrong way.

  4. #4
    Join Date
    Nov 2005
    Posts
    1468
    Man, that is a sweet workaround, many thanks Neil, it was doing my head in!
    I love deadlines- I like the whooshing sound they make as they fly by.

  5. #5
    Join Date
    Jun 2007
    Posts
    3757

    Smile You are welcome.

    Quote Originally Posted by ImanCarrot View Post
    Man, that is a sweet workaround, many thanks Neil, it was doing my head in!
    You are welcome. It may not be perfect. Haven't done that for 20 years!
    You can do it fancier with instr$ function, but why kill readability with a one liner. No brainer now we have bulk computing power.
    Translate that to excel and you will learn and achieve something.
    Do it in LISP and you are a genious!

    Best Regards.
    Super X3. 3600rpm. Sheridan 6"x24" Lathe + more. Three ways to fix things: The right way, the other way, and maybe your way, which is possibly a faster wrong way.

  6. #6
    Join Date
    Mar 2003
    Posts
    2932
    Just out of curiosity, have you tried the Format function?

    MyStr = Format(334.9, "###0.00") ' Returns "334.90".

  7. #7
    Join Date
    Nov 2005
    Posts
    1468
    Argh, I just found out about that off of a collegue- I ended up using:

    OPEN "O",#1,FL$ (FL$ being the filename)
    PRINT#1, "X";:PRINT#1 USING "##.#####",X$;
    PRINT#1, "Z";:PRINT#1 USING "##.#####",Z$
    CLOSE #1

    That still doesn't put the leading zero's in and sticks a space between the "X" (and "Z") and the actual value, but I used find and replace to work round it.

    It actualy works! now I have full control of the beast Muahaha! the power! *cackles evily*
    I love deadlines- I like the whooshing sound they make as they fly by.

Similar Threads

  1. Stuck In Mm On Fanuc 18t, Help!
    By TEVAN in forum Fanuc
    Replies: 7
    Last Post: 01-14-2014, 01:36 AM
  2. SMTC Stuck. Please help!
    By Matt@RFR in forum Haas Mills
    Replies: 8
    Last Post: 08-11-2007, 02:02 AM
  3. Big problem. Tool stuck
    By Tien_Luu in forum CNC (Mill / Lathe) Control Software (NC)
    Replies: 0
    Last Post: 08-04-2006, 09:46 PM
  4. dynapath stuck
    By kurth in forum DNC Problems and Solutions
    Replies: 4
    Last Post: 01-24-2006, 03:35 PM
  5. New to PICs, stuck, and need help
    By neildm in forum PIC Programing / Design
    Replies: 9
    Last Post: 08-04-2005, 11:58 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •