hexagon logo

PC-DMIS Measurement Routine Migrations

Starting with PC-DMIS 2021.2, PC-DMIS doesn’t allow loading of measurement routines created in PC-DMIS 2015 and earlier and will generate an error. See: I am getting the error message "Serialization error This version of PC-DMIS can only read measurement routines created in version...."
In PC-DMIS 2022.1, only PRG files from 2016 or newer will be allowed. This “rolling” restriction will continue with each new release of PC-DMIS.

For instance:
Installed Version Can read back to (or pull forward from)

2021.2 2015.1
2022.1 2016
Future projection:
2022.2 2017 R1
2023.1 2017 R2
2023.2 2018 R1
Etc.

To use older routines with a current PC-DMIS release, you need to save all the older measurement routines to any version at least as recent as that defined by the current restrictions. This can be done one file at a time but if you have a significant number of files it can be very time-consuming. To help facilitate this process, we’ve created and shared two utilities.


Conversion Utilities for PC-DMIS (hexagonmi.com)

Utility Home : SaveMRtoRequiredVersion

This will automatically open the measurement routines and save them to the desired version. (simply opens, saves and closes routines)

Utility #2: Migration_Utility

This is a little more intelligent and performs the same task as utility 1 but also handles migration from Xactmeasure to the new, geometric tolerance command. It requires you to install the most recent service pack of 2020 R1 as well as your desired version (2020 R2 or higher). It asks you to navigate to three folders – the source folder containing your routines, a destination for routines that generate migration reports and a destination for routines that do not generate migration reports. The utility will then sort routines into the relevant destination folders making it easier for you to identify those that migrated successfully and those that require editing. Please see here for a more detailed description: Documentation. It also saves probe files associated with each routine in the current probe format.

While these utilities are being provided free of charge, there is no implied support. Please be sure to back-up all of your files before starting this process.

*** Please be sure to read the help documentation on these tools. It is brief and will often answer the very questions which we are seeing posted here.

Parents


  • It's literally looking through the list of currently running windows processes - like if you open task manager.

    foreach (var PRO in Process.GetProcesses())
    {
    
    if (string.Compare(PRO.ProcessName, "PCDLRN", StringComparison.OrdinalIgnoreCase) == 0)
    {
    
    found_pcd = true;
    //pcd_name = Convert.ToString(string.Compare(PRO.MainWindowTitl e, "20", StringComparison.OrdinalIgnoreCase) == 0);
    pcd_name = PRO.MainWindowTitle.Substring(PRO.MainWindowTitle. IndexOf("20", 0));
    pcd_name = pcd_name.Substring(0, 4);
    pcd_ver = PRO.MainWindowTitle.Substring(19, 1);
    fullname = pcd_name + "." + pcd_ver;
    string gid = "";
    if (pcd_name == "2020")
    {
    gid = "15.2";
    }
    if (fullname == "2021.1")
    {
    gid = "16.1";
    }
    if (fullname == "2021.2")
    {
    gid = "16.2";
    }
    if (fullname == "2022.1")
    {
    gid = "17.1";
    }
    if (fullname == "2022.2")
    {
    gid = "17.2";
    }
    ver_id = "PCDLRN.Application." + gid;
    // pcd_ver = Strings.Right(PRO.MainWindowTitle, PRO.MainWindowTitle.Length - pcd_name + 1)
    var Name = Convert.ToInt32(pcd_name);
    if (Name > 2020)
    {
    Valid_ver = true;
    }
    if (Name == 2020)
    {
    pcd_ver = PRO.MainWindowTitle.Substring(19, 2);
    if (pcd_ver == "R2")
    {
    Valid_ver = true;
    }
    }
    
    }
    
    }
    
  • Thanks Neil, I’ll do some follow-up testing on Monday.
Reply Children
No Data