Your Products have been synced, click here to refresh
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace UpdateTolerances { public partial class MainForm : Form { public MainForm() { InitializeComponent(); // Update Pcdmis connection status UpdatePcdmisStatus(); } /// <summary> /// This method handles the click event for the top button. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStartPcdmis_Click(object sender, EventArgs e) { // Disable the PC-Dmis connect button to prevent multiple clicks // while PC-Dmis is trying to start. btnStartPC_Dmis.Enabled = false; if (pcdSession is null) { Func<Boolean> method = Connect; // Assign the Connect method to a function delegate called 'method'. method.BeginInvoke(ConnectionDone, method); // Launch PC-Dmis in another thread. } // This method is finished immediately after the above Invoke statement. It does // not wait around for PC-Dmis to start. While PC-Dmis is starting up, every part // of this application and UI are still active and not 'locked' up. } /// <summary> /// A method to manage the use of a textbox to display the connection status of /// PC-Dmis. /// </summary> private void UpdatePcdmisStatus() { if (PcdmisIsConnected) { txbStatus.BackColor = Color.Green; // set the status textbox to green btnStartPC_Dmis.Enabled = false; // disable button to prevent 2nd connection. } else { txbStatus.BackColor = Color.Red; btnStartPC_Dmis.Enabled = true; } } /// <summary> /// Method to return true or false according to the state of pcdSession variable. /// </summary> private Boolean PcdmisIsConnected { get { if (pcdSession is null) { return false; } else { return true; } } } /// <summary> /// This method is a listener to the 'View Pcdmis' button click event. When this button /// is clicked this method flips between displaying and hiding the PC-Dmis window. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnViewPcdmis_Click(object sender, EventArgs e) { // Always confirm you have a connected session first if (!PcdmisIsConnected) return; if (pcdSession.Visible) { // make it invisible) pcdSession.Visible = false; btnViewPcdmis.Text = "View PC-Dmis Window"; } else { // make it visible pcdSession.Visible = true; btnViewPcdmis.Text = "Unview PC-Dmis Window"; } } /// <summary> /// Listener method for the form closing event. Handles the proper closing of the PC-Dmis /// session. Without this method PC-Dmis will continue living in the background after this /// application is closed and exited. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainForm_Closing(object sender, FormClosingEventArgs e) { // Close the PCDLRN runtime service when this application is shutdown. if (pcdSession != null) { pcdSession.UserExit = true; pcdSession.Quit(); pcdSession = null; } } private String pcdProgramPath { get; set; } private void openToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog.Filter = "prg files (*.prg)|*.prg|All files (*.*)|*.*"; OpenFileDialog.RestoreDirectory = true; if (OpenFileDialog.ShowDialog() == DialogResult.OK) { pcdProgramPath = OpenFileDialog.FileName; } else { pcdProgramPath = ""; } } private void btnStartTest_Click(object sender, EventArgs e) { if (pcdProgramPath == "") return; if (OpenPcdmisProgram(pcdProgramPath)) { //simple check for the presence of tolerance values. if (txbPlusValue.Text == "" || txbMinusValue.Text == "") { MessageBox.Show("Missing tolerance values", "Bad Tolerances", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } double plus = Convert.ToDouble(txbPlusValue.Text); double minus = Convert.ToDouble(txbMinusValue.Text); StartClock(); ReplaceToleranceValues(plus, minus); StopClock(); } else { MessageBox.Show("Unable to open the selected program.", "Open Program Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void StartClock() { DateTime clockTime = DateTime.Now; txbStartTime.Text = clockTime.ToLongTimeString(); } private void StopClock() { DateTime clockTime = DateTime.Now; txbStopTime.Text = clockTime.ToLongTimeString(); } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { if (pcdProgram is null) return; pcdProgram.Save(); } } }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace UpdateTolerances { public partial class MainForm : Form { public MainForm() { InitializeComponent(); // Update Pcdmis connection status UpdatePcdmisStatus(); } /// <summary> /// This method handles the click event for the top button. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStartPcdmis_Click(object sender, EventArgs e) { // Disable the PC-Dmis connect button to prevent multiple clicks // while PC-Dmis is trying to start. btnStartPC_Dmis.Enabled = false; if (pcdSession is null) { Func<Boolean> method = Connect; // Assign the Connect method to a function delegate called 'method'. method.BeginInvoke(ConnectionDone, method); // Launch PC-Dmis in another thread. } // This method is finished immediately after the above Invoke statement. It does // not wait around for PC-Dmis to start. While PC-Dmis is starting up, every part // of this application and UI are still active and not 'locked' up. } /// <summary> /// A method to manage the use of a textbox to display the connection status of /// PC-Dmis. /// </summary> private void UpdatePcdmisStatus() { if (PcdmisIsConnected) { txbStatus.BackColor = Color.Green; // set the status textbox to green btnStartPC_Dmis.Enabled = false; // disable button to prevent 2nd connection. } else { txbStatus.BackColor = Color.Red; btnStartPC_Dmis.Enabled = true; } } /// <summary> /// Method to return true or false according to the state of pcdSession variable. /// </summary> private Boolean PcdmisIsConnected { get { if (pcdSession is null) { return false; } else { return true; } } } /// <summary> /// This method is a listener to the 'View Pcdmis' button click event. When this button /// is clicked this method flips between displaying and hiding the PC-Dmis window. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnViewPcdmis_Click(object sender, EventArgs e) { // Always confirm you have a connected session first if (!PcdmisIsConnected) return; if (pcdSession.Visible) { // make it invisible) pcdSession.Visible = false; btnViewPcdmis.Text = "View PC-Dmis Window"; } else { // make it visible pcdSession.Visible = true; btnViewPcdmis.Text = "Unview PC-Dmis Window"; } } /// <summary> /// Listener method for the form closing event. Handles the proper closing of the PC-Dmis /// session. Without this method PC-Dmis will continue living in the background after this /// application is closed and exited. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainForm_Closing(object sender, FormClosingEventArgs e) { // Close the PCDLRN runtime service when this application is shutdown. if (pcdSession != null) { pcdSession.UserExit = true; pcdSession.Quit(); pcdSession = null; } } private String pcdProgramPath { get; set; } private void openToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog.Filter = "prg files (*.prg)|*.prg|All files (*.*)|*.*"; OpenFileDialog.RestoreDirectory = true; if (OpenFileDialog.ShowDialog() == DialogResult.OK) { pcdProgramPath = OpenFileDialog.FileName; } else { pcdProgramPath = ""; } } private void btnStartTest_Click(object sender, EventArgs e) { if (pcdProgramPath == "") return; if (OpenPcdmisProgram(pcdProgramPath)) { //simple check for the presence of tolerance values. if (txbPlusValue.Text == "" || txbMinusValue.Text == "") { MessageBox.Show("Missing tolerance values", "Bad Tolerances", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } double plus = Convert.ToDouble(txbPlusValue.Text); double minus = Convert.ToDouble(txbMinusValue.Text); StartClock(); ReplaceToleranceValues(plus, minus); StopClock(); } else { MessageBox.Show("Unable to open the selected program.", "Open Program Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void StartClock() { DateTime clockTime = DateTime.Now; txbStartTime.Text = clockTime.ToLongTimeString(); } private void StopClock() { DateTime clockTime = DateTime.Now; txbStopTime.Text = clockTime.ToLongTimeString(); } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { if (pcdProgram is null) return; pcdProgram.Save(); } } }
© 2024 Hexagon AB and/or its subsidiaries. | Privacy Policy | Cloud Services Agreement |