Pcdmis programming language

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pcdmis programming language

    I have recently gotten a job as a CMM programmer using PCDMIS and I am trying to learn as much as I can about this software. Does PCDMIS have it's own language? I come from a CS background and so I would like to be able to utilize PCDMIS in a way other than the mouse and drop menus but cannot find much in the way of documentation for a programming language on its own. Yes, there are the manuals, all of the core manuals and the full CMM PDF but not much concerning what I want. Am I limited to the GUI? Can I define my own functions, or if I can do that, can I call functions from previously written programs to use in a new program?

    I know there are a lot of questions in this post, but I hope someone can help point me in the right direction.


  • #2
    I would recommend training through a local hexagon office or a local hexagon dealer. PC-DMIS is too advanced to provide in depth training through a forum.
    That being said, most of what you will use is not manually typed code. Although you can type everything out and PC-DMIS will enter the closest feature to what you type, toolbars are your friend. I would begin by activating the Cunstructions, Autofeatures Measured Features, and dimensions tabs by right clicking anywhere in the grey area under the menu bar. Open whatever feature you would like to learn about and hit F1 for the help menu and read as much as you can. The more advanced programming will come after you understand the basics of PC-DMIS and the proper use of alignments.
    You can create subroutines that you can call from previously made programs, create basic scripts, loops, variables, etc. But the majority is shortcut buttons and keyboard shortcuts.

    Comment


    • #3
      Originally posted by plopperzz View Post
      I have recently gotten a job as a CMM programmer using PCDMIS and I am trying to learn as much as I can about this software. Does PCDMIS have it's own language? I come from a CS background and so I would like to be able to utilize PCDMIS in a way other than the mouse and drop menus but cannot find much in the way of documentation for a programming language on its own. Yes, there are the manuals, all of the core manuals and the full CMM PDF but not much concerning what I want. Am I limited to the GUI? Can I define my own functions, or if I can do that, can I call functions from previously written programs to use in a new program?

      I know there are a lot of questions in this post, but I hope someone can help point me in the right direction.
      So besides the actual PC-DMIS code, it also has it's own scripting language which is based off of Cyprus. You can also externally control PC-DMIS through any of these languages too.
      These systems include but are not limited to:
      • Visual Basic
      • Visual Basic .NET
      • C++
      • C# (C sharp)
      • Codegear Delphi
      • ASPX
      • Java
      • Javascript
      • Any Windows Object Oriented Language
      PC-DMIS is exceptionally powerful in that your only limited by your skill level in regards to what can be accomplished.
      Last edited by Peter Fuller; 11-18-2019, 02:06 PM.
      Systems Integrator
      Hexagon Manufacturing Intelligence

      Comment


      • #4
        +1000 to everything Peter Fuller posted.

        Also, I am obliged to add my .00002 cents:

        You come from a CS background and immediately gravitate towards the computer-coding-language aspect of CMM programming. The ingrained habits of 'garbage in, garbage out" will definitely serve you well. That is good, however...

        The thing about CMM programming is that this niche speciality bridges the gap between the largely imaginary world of electronic bits of ones and zeroes with the really real world of hard cold physical shapes.
        I have observed people coming from computer-language-programming backgrounds entering the CMM world and struggling to catch on, because their deeply intricate mindset of programming operations is too firmly anchored in the largely imaginary world of ones and zeros... and the physical reality of hard shapes cannot be easily inserted into it.

        The solution is to slowly build a new hybrid worldview that combines both worlds seamlessly.

        It begins with a simple 3D rectangular right-handed Cartesian Coordinate system. The rules are simple and classic: all 3 axes, X Y and Z, are perfectly 90 degrees from each other. If X goes right and Y goes away, Z is locked into going up - this relationship is fixed and cannot be reversed. Everything has an X,Y,Z axial address that describes it's location in the coordinate system, as well as having an I,J,K vector description that describes it's orientation with respect to the 3 axes.
        One of the absolutely core responsibilities of the CMM programmer is to build a new and completely valid coordinate system upon the workpiece's datums in order to correctly report the reality of the physical shape with respect to it's datum features. It cannot be over-emphasized: Alignments are everything.

        The next step is to accept that everything has two sets of XYZ-IJK data: Nominal and Actual.
        The Nominal is the imaginary perfection, the crisp exactitude of the CAD model and/or the official blueprint.
        The Actual is the data. It's what the CMM found while executing the automated robotic routine you carefully designed to make it perform in order to obtain this data.

        Next, there is an aspect to the physical world not present in the ones-and-zeroes world that can never be forgotten about when dealing with measurements of any kind: the science of Metrology, that is the traceability of measurements back to standards.
        When you write a chunk of code that tells a computer to calculate something, it simply does it right. When you write a chunk of code that tells a computer to move a robotic machine to gently touch a part and record the location of where the part was found, it simply does what you told it to - but the quality of the results also depends on other factors: there's a long list of required calibrations that must be in place. Measurement using un-calibrated equipment is a waste of time and can be dangerously misleading. You can write clever code all day but if the CMM stylus (or the CMM itself) are out of whack the results will be nothing but worthless random numbers.

        Finally: the primary purpose of the CMM is to Report Truth: to deliver measurement results that precisely and accurately reflect the reality of the physical shape being inspected and exactly how much it differs from the largely imaginary design, commonly called inspection.

        Here I must mention the depth of the responsibility you take on when accepting the mission to Report Truth: what's the risk of your CMM accidentally delivering passing results on a part that is really bad?
        What happens when this particular part meets it's end-usage in the field?
        a. Final assembly is microscopically less aesthetically pleasing.
        b. Final assembly impossible, bad feelings and delays incurred.
        c. Final assembly fails in it's end-use, mildly inconveniencing someone.
        d. Final assembly fails in it's end-use, greatly inconveniencing someone.
        e. Final assembly fails in it's end-use, maiming/killing someone.
        f. Final assembly fails in it's end-use, maiming/killing large numbers of people.
        So, you want to Report Truth.

        Comment


        • gibsonridge
          gibsonridge commented
          Editing a comment
          well said Ego

      • #5
        Originally posted by plopperzz View Post
        Does PCDMIS have it's own language? I come from a CS background...
        The short answer is NO. Don't even think about it.

        The main interface to PC-DMIS functions, not as a procedural language, but more like an Excel spreadsheet. Everything (?) is connected under the hood, and a change to an alignment here causes an immediate change of the numbers you see there. Program state changes depending on where in the program you put the cursor (click, not when only hovering).

        Attacking PC-DMIS like it was a procedural language will inevitably lead you into blind alleys and 'unexpected' behavior, you need to learn "the PC-DMIS way".


        The long (could be very long) answer is that almost everything in PC-DMIS can be controlled by automation by external programs written in any language you want that can do automation (VB, C#, C++, whatever), but you still have to give the commands in "the PC-DMIS way" of connecting things, so you need to learn that first.
        AndersI
        SW support - Hexagon Metrology Nordic AB

        Comment

        Related Topics

        Collapse

        Working...
        X