Execute CMM move from txt file

  • Filter
  • Time
  • Show
Clear All
new posts

  • Execute CMM move from txt file

    Hello guys,

    I need some help please.

    I have two machines with diferent sizes.
    They Run the same programs (that we have stored in our intranet folder), and we have external alignments for each cmm.
    The only thing that we cannot do until now its define two diferent parking stop (one for each cmm).

    Is it possible to define the parking stop coordinates in one external file,for example, that the routine reads in the end of the program.
    This way we could define to parking stops at the end of the program (one for each cmm),

    We whant to keep the programs running in the two cmm's, but with diferent parking atop coordinates.

    Best regards

  • #2
    This is just one of the reason why I hate the fact that "home" is at the front-left corner of the machine instead of one of the back corners of the machine. Then you could simply recall the machine alignment and move to XY zero. easy-peasy

    That being said, you can make an external alignment on each machine, call it "park.aln", save it right on the C:\ (on both machines), recall that alignment in the program. You would have to make this alignment on each machine so that the 'park' position ends up being XY zero, recall that alignment, move to XY zero, done.
    Originally posted by AndersI
    I've got one from September 2006 (bug ticket) which has finally been fixed in 2013.


    • #3
      If I'm understanding your question correctly, you are trying to have the two machines move to the same home position at the end of the program.

      For the two machines, do they have the same probe builds? And at the end of the program, do you always return the head to A0 B0? If no, it will be a little tricky, but still do-able.

      When i move to the "home position" after the program, I clear the part in Z (enough to rotate to A0B0 if necessary, then rotate), recall the "startup" (machine coordinates) alignment, then insert a move point (50,50,-200).

      The first two values are just an arbitrary offset so you don't hit a stroke limit in x or y. The -200 value may need to be changed depending on how long your probe build is so you don't hit a stroke limit in z.

      If you want to get fancy, you could assign machine specific variables to add into the move point code, but i think the way i described is relatively easy to edit and set up


      • Douglas
        Douglas commented
        Editing a comment
        If the measuring envelope could be assigned to variables this would be easy, do you know if that is possible? then you could work back from any corner of any machine as easily as from the home position

    • #4
      Douglas Yes you can do that. I would approach it in this way:

      1) First thing I would do is recall the startup alignment or machine coordinates and map out the XYZ's of each corner

      2) Then, I would create a text file for each machine with the XYZ variables of the 4 corners of the machine and use File I/O commands inside the beginning of the program to read and update the variables in the part program. You can also do this without the text file and do it inside of PC-DMIS using some if/then statements or something similar to assign the correct machine XYZ variables. The text file approach is a little cleaner IMO.

      3) Then when you need to move to a specific corner in the program, recall the start up alignment then a move point like (XVAR3, YVAR3, ZVAR3)


      • Douglas
        Douglas commented
        Editing a comment
        yes this is what I mean exactly, thanks I might use this... I did not consider using a text file that would make it fairly easy... I was thinking could the parameter be assigned directly to a variable but did not know how if it is even possible

      • CodeWarrior
        CodeWarrior commented
        Editing a comment
        No problem, I use this approach to find the part with different fixture locations. I have 4 mirrored magnet chucks with engraved locations to place the part on the block. ie assign the variables from the text file, then use a generic feature with the variables to mimic a read point alignment. If I ever have move the fixturing, i only have to update the text file with the new xyz's

    • #5
      Matts external alignment method is far easier.

      sigpicHave a homebrew


      • CodeWarrior
        CodeWarrior commented
        Editing a comment
        I agree for this application, the reason i brought up the alternative was that I use this approach for finding the part/fixture and thought you could use the same logic with machine home positions. The reason I use this method for finding the part instead of external alignments is because I found it much easier to edit if the fixtures moved. Running an "external alignment" program was a little tedious compared to just updating the x & y's in a text file (ie add 2mm to all x values or whatever)

      • tking
        tking commented
        Editing a comment
        Warrior, nothing wrong with your idea, wasn't "finding fault", just commenting on this particular circumstance. We're good

    • #6
      Hello again,

      Thanks for your help..
      I will try your suggestions



      • #7
        Is there any reason you couldn't just use a move/clearpoint?

        It's a global setting per machine so you would need to set it on each CMM (F10, clear point tab). As you can see, you can also set the move sequence so that it moves up in Z first for example. Once you've set the clear point on each CMM you would just need to add a MOVE/CLEARPOINT command to the end of your programs.
        Neil Challinor
        PC-DMIS Product Owner

        T: +44 870 446 2667 (Hexagon UK office)
        E: [email protected]


        Related Topics