Page 1 of 2

Re: Suggestions for safety features

PostPosted: Sat Dec 03, 2016 9:57 pm
by A_Camera
Oh please.....

No to all of them, definitely to the password idea (2) and the delayed loading (3).

BTW (3), (4) and (5) can easily be implemented already today if you want to. CNC Drive should not spend effort on these features. (5) requires a spindle which gives you feedback, unless you cheat.

Don't want any of them without possibilities of disabling these "safety features".

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 12:24 pm
by ger21
I would think that these would prevent 99% of current users from being able to use their machines.

Couldn't all or most of this be done with the macroloops?

From my perspective, most of these are handled from the electronics end. On the industrial routers that I've used, you can't power up the machine until the software is running. Which is what the charge pump is for, correct? And then you can't run the machine until it's homed.

Aren't 1,3,4, and 5 all basically the same thing?

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 6:25 pm
by ger21
Just to add a bit more.

You can't make a $60 software control be a full industrial solution that's comparable to stuff costing $10,000 and up. In order to do that, you need dedicated hardware targeted towards those applications. Think ISO BOB with inputs for all the features in your original post. You just can't add these features to the software and call it done. You need hardware that works in conjunction with these features in a complete package.

It's hard enough to try to make UCCNC be a universal control for a variety of applications. If you're not careful, trying to make it more than it is for some areas makes it worse in others. This is what turned Mach3 into a mess.

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 6:35 pm
by A_Camera
ger21 wrote:
Aren't 1,3,4, and 5 all basically the same thing?

...and 2 is easily fixed by Windows. Just set up different account for different people if people can't be trusted.

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 7:40 pm
by ger21
To say that safety features would make it 99% unuseable is stretching it a bit don't you think


I meant if they were not optional. Making safety features optional kinda defeats their purpose, doesn't it.

Without full support from the CORE software it is very hard to make it work 100% or it can be undependable.



I still think it has top be integrated with hardware or it's only a half baked solution.

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 7:42 pm
by ger21
(4) Door safety interlock. prevents Gcode from running if running Feedhold/Stop Gcode Spindle/Coolant off. Setup for operator restart.


Isn't this normally part of the Estop circuit? It is on the routers I've used.

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 8:35 pm
by cncdrive
Here is some macro code to password protect and do not allow the operator to do anything on startup until the password is typed in:
Place the code in the M99998 constructor macro.

Code: Select all
Password = "password";

frm = new Form();
frm.Size = new Size(200, 150);
frm.StartPosition = FormStartPosition.CenterScreen;
frm.ControlBox = false;

Label lbl = new Label();
lbl.Location = new Point(50, 10);
lbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
lbl.Text ="Password:";
frm.Controls.Add(lbl);

Button but = new Button();
but.Size = new Size(90,40);
but.Location = new Point(50, 80);
but.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
but.Text = "OK";
but.Click += new EventHandler(but_Click);
frm.Controls.Add(but);

tbx = new TextBox();
tbx.Size = new Size(170, 20);
tbx.Location = new Point(10, 40);
tbx.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
tbx.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
tbx.PasswordChar = '*';
frm.Controls.Add(tbx);

exec.mainform.Invoke(new MyDelegate(MyDelegated));

#Events

Form frm;
TextBox tbx;
string Password;

private delegate void MyDelegate();

void but_Click(object sender, EventArgs e)
{
  if(tbx.Text == Password)
  {
    frm.Close();
  }
  else
  {
     MessageBox.Show(this.frm, "Incorrect password!");
  }
}

void MyDelegated()
{
  frm.ShowDialog(exec.mainform);
}

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 8:38 pm
by cncdrive
The same way you could check for a switch, an input LED and only allow to close this Form if that switch is active.

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 9:52 pm
by cncdrive
You mean to force close the password Form?

Re: Suggestions for safety features

PostPosted: Sun Dec 04, 2016 10:00 pm
by cncdrive
You can't close the Form with Alt+F4 with this one:

Code: Select all
Password = "password";

frm = new Form();
frm.Size = new Size(200, 150);
frm.StartPosition = FormStartPosition.CenterScreen;
frm.ControlBox = false;
frm.FormClosing += new System.Windows.Forms.FormClosingEventHandler(FormClosing);

Label lbl = new Label();
lbl.Location = new Point(50, 10);
lbl.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
lbl.Text ="Password:";
frm.Controls.Add(lbl);

Button but = new Button();
but.Size = new Size(90,40);
but.Location = new Point(50, 80);
but.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
but.Text = "OK";
but.Click += new EventHandler(but_Click);
frm.Controls.Add(but);

tbx = new TextBox();
tbx.Size = new Size(170, 20);
tbx.Location = new Point(10, 40);
tbx.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
tbx.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
tbx.PasswordChar = '*';
frm.Controls.Add(tbx);

exec.mainform.Invoke(new MyDelegate(MyDelegated));

#Events

Form frm;
TextBox tbx;
string Password;
bool Closeable = false;

private delegate void MyDelegate();

void but_Click(object sender, EventArgs e)
{
  if(tbx.Text == Password)
  {
    this.Closeable = true;
    frm.Close();
  }
  else
  {
     MessageBox.Show(this.frm, "Incorrect password!");
  }

}

private void FormClosing(object sender, FormClosingEventArgs e)
{
  if(!Closeable)
  {
    e.Cancel = true;
  }
}

void MyDelegated()
{
  frm.ShowDialog(exec.mainform);
}