Не нужно бояться этого стоматологического кресла
Что-то странное и привлекательное происходит с этим проектом. Это простой проект без большой магии, супернавороченных новых возможностей, дьявольски передовых библиотек и т.д. и т.п. Но с ним забавно играть и это не то, что видишь каждый день.
Автоматизация стоматологического кресла в WPF
Введение
В этой статье кратко объясняется как автоматизировать любое устройство или оборудование на примере стоматологического кресла. Моей целью является обзор того, как могут быть использованы WPF и C# при графическом конструировании и представлении любых проектов автоматизации.
Требования к проекту
Чтобы запустить проект вам понадобиться следующее:
- Visual Studio 2008 ИЛИ
- Expression Blend 4
Предпосылки
Вдруг в моей голове вспыхнула идея об использовании WPF в проектах автоматизации. После этого я задумался о типе устройства, которое лучше было бы автоматизировать. Так я додумался до использования стоматологического кресла, как оборудования для автоматизации. Этот проект требует некоторого художественного мастерства для создания объектов, требующихся для презентации. Вам необходимо создать список действий, которые ваше устройство должно выполнять и затем приступить к конструированию.
Видите что я имел в виду под тем, чего вы не видите каждый день?
Код простой, прямолинейный и легко воспроизводимый.
private void LightPipe_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
//Capture the previous mouse point to decide whether to move up or down
previousheight = height;
//Capture the mouse movement at that point
MouseDevice d = e.MouseDevice;
Point p = d.GetPosition(this);
height = p.Y;
//Check whether the left button of the mouse is pressed or not.
if (e.LeftButton == MouseButtonState.Pressed)
{
//Check if the angle less than 25 to limit the rotation
if (lightHandleangle < 25)
{
//If previous mouse point is greater than current
if (previousheight >= height)
{
//Increment the angle by 1.
lightHandleangle += 1;
//Assign the angle to the rotate transform object
lightHandleRotate.Angle = lightHandleangle;
//Assign the x and y axis to 0
lightHandleRotate.CenterX = 0;
lightHandleRotate.CenterY = 0;
//Assign the rotate trans object to handle to transform to that angle specified.
LightHandle.RenderTransform = lightHandleRotate;
}
//Perform the check to see if previous is less than current mouse position to move the light handle down and above the minmum height.
if (previousheight <= height && previousheight != 0 && lightHandleangle > -15)
{
//Decrement the angle by 1
lightHandleangle -= 1;
lightHandleRotate.Angle = lightHandleangle;
lightHandleRotate.CenterX = 0;
lightHandleRotate.CenterY = 0;
LightHandle.RenderTransform = lightHandleRotate;
return;
}
}
//Check if the angle is greater then the minimum height that is -15(downwards)
else
{
if (lightHandleangle > -15)
{
if (previousheight <= height && previousheight != 0)
{
lightHandleangle -= 1;
lightHandleRotate.Angle = lightHandleangle;
lightHandleRotate.CenterX = 0;
lightHandleRotate.CenterY = 0;
LightHandle.RenderTransform = lightHandleRotate;
return;
}
}
}
}
}
Хотя это может и не быть тем, что вы будете видеть ежедневно, оно может дать толчок некоторым идеям с интерфейсом пользователя или просто позволит поиграть со стоматологическим креслом, чего вы всегда тоже хотели…