Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#] Programma coordinate sistema
Forum - C# / VB.NET - [C#] Programma coordinate sistema

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Questo topic è stato chiuso dal moderatore

Salve, volevo sapere se c'è qualcuno che mi aiuta ad fare questo programmino per le cnc amatoriali , però vorrei fare il simulatore visto dalla pianta.

Ora vi allego un'immagine per capire come devo partire e come faccio fare il rettangolo.

Il codice per creare quello che è nell'immagine e cosi:
X0Y0;
Y100;
X100;
Y0;
X0Y0;

E fa questo:

http://i44.tinypic.com/2j5ffk.jpg

Qui il mio codice che ho scritto grazie ad voi per i varii aiuti che mi state danto.
Faccio fare al programma pixel per pixel.

Spiegazione del trappano come devo fargli ad capire:

X100 Sposta verso destra il mandrino ("Punta trapano") di 100 millimetri, e X - 100 sposta verso sinistra il mandrino di 100 millimetri.

ecco :
Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.IO;
  10. using System.Text.RegularExpressions;
  11.  
  12. namespace _VirtualCnc
  13. {
  14.     public partial class frmMain : Form
  15.     {
  16.         public frmMain()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.         List<PointF> PointList = new List<PointF>();
  21.         int pointIndex = 0;
  22.         private void ApriProgramma_Click(object sender, EventArgs e)
  23.         {
  24.  
  25.             OpenFileDialog open = new OpenFileDialog();
  26.             open.Filter = "File di Testo (*.txt)|*.txt|File Cnc(*.cnc)|*.cnc";
  27.             if (open.ShowDialog() == DialogResult.OK)
  28.             {
  29.                 tbCode.Text = File.ReadAllText(open.FileName) + "";  // Aggiunta codice alla listbox
  30.                 sbp_file.Text = "" + open.FileName + "";   // barra di stato per recuperare il file.
  31.             }
  32.             tbCode.Enabled = false;
  33.         }// ApriProgramma_Click
  34.  
  35.         private void Simula_Click(object sender, EventArgs e)
  36.         {
  37.             Elabora_.Enabled = true;
  38.             List<PointF> pt = new List<PointF>();
  39.             Regex coord = new Regex(@"X(?<CoordX>-?\d+)Y(?<CoordY>-?\d+)");
  40.                 MatchCollection mc = coord.Matches(tbCode.Text);
  41.                 foreach (Match m in mc)
  42.                 {
  43.                     int x = int.Parse(m.Groups["CoordX"].Value);
  44.                     int y = int.Parse(m.Groups["CoordY"].Value);
  45.                     PointF p = new PointF(x, y);
  46.                     pt.Add(p);
  47.                    
  48.                 }
  49.            
  50.             // Get Points From Line(s)
  51.             float curDist = 0;
  52.             float distance = 0;
  53.             for (int i = 0; i < pt.Count - 1; i++)
  54.             {
  55.                 PointF ptA = pt[i];
  56.                 PointF ptB = pt[i + 1];
  57.                 float deltaX = ptB.X - ptA.X;
  58.                 float deltaY = ptB.Y - ptA.Y;
  59.                 curDist = 0;
  60.                 distance = (float)Math.Sqrt(Math.Pow(deltaX, 2) + Math.Pow(deltaY, 2));
  61.                 while (curDist < distance)
  62.                 {
  63.                     curDist++;
  64.                     float offsetX = (float)((double)curDist / (double)distance * (double)deltaX);
  65.                     float offsetY = (float)((double)curDist / (double)distance * (double)deltaY);
  66.                     PointList.Add(new PointF(ptA.X + offsetX, ptA.Y + offsetY));
  67.                 }
  68.             }
  69.            
  70.        
  71.          
  72.         } // Simula_Click
  73.  
  74.         private void FermaElaborazione_Click(object sender, EventArgs e)
  75.         {
  76.            this.box.Refresh();
  77.        
  78.            this.Elabora_.Enabled = false;
  79.            pointIndex = 0;
  80.         }// FermaElaborazione_Click
  81.  
  82.         private void MenuFileEsci_Click(object sender, EventArgs e)
  83.         {
  84.             this.Close();
  85.         }// MenuFileEsci_Click
  86.  
  87.         private void Edita__Click(object sender, EventArgs e)
  88.         {
  89.             tbCode.Enabled = true;
  90.         }
  91.  
  92.         private void frmMain_Load(object sender, EventArgs e)
  93.         {
  94.             tbCode.Enabled = false;
  95.             this.box.SizeMode = PictureBoxSizeMode.CenterImage;
  96.  
  97.         }// Edita__Click
  98.  
  99.         private void SalvaProgramma_Click(object sender, EventArgs e)
  100.         {
  101.            
  102.         }// SalvaProgramma_Click
  103.  
  104.         private void MenuAbout_Click(object sender, EventArgs e)
  105.         {
  106.             AboutBox1 about = new AboutBox1();
  107.             about.Show();
  108.         }// MenuAbout_Click
  109.  
  110.         private void Elabora__Tick(object sender, EventArgs e)
  111.         {
  112.             if (pointIndex < PointList.Count - 1)
  113.             {
  114.                 pointIndex++;
  115.                 this.Refresh();
  116.             }
  117.         } // Elabora_Tick
  118.  
  119.         private void box_Paint(object sender, PaintEventArgs e)
  120.         {
  121.            
  122.  
  123.             for (int i = 0; i < pointIndex; i++)
  124.             {
  125.             e.Graphics.PageUnit = GraphicsUnit.Pixel;
  126.             e.Graphics.DrawLine(Pens.Black, PointList[i].X, PointList[i].Y, PointList[i + 1].X, PointList[i + 1].Y);
  127.             textBox1.Text = "" + PointList[i + 1].X + "";
  128.             textBox2.Text = "" + PointList[i + 1].Y + "";
  129.             }
  130.  
  131.          
  132.         } // Box  Paint.
  133.     }
  134. }



Mi potete aituarmi grazie.

Vi ringrazio molto.


ha allegato un file: Immagine2.png (23124 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da il 15/03/2010 alle 21:16
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:36
Martedì, 16/03/2010
nessuno?

ciao :)

PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:42
Martedì, 16/03/2010
Quelle righe che vedete nell'immagine sono queste:

N10 X0Y0;
N20 Y100;
N30 X100;
N40 Y0;
N50 X0Y0;

PM
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2268
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:31
Mercoledì, 17/03/2010
emh...

puoi spiegare meglio dove hai il problema
cosa non riesci a fare?


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:06
Mercoledì, 17/03/2010
Testo quotato

Postato originariamente da Thejuster:

emh...

puoi spiegare meglio dove hai il problema
cosa non riesci a fare?



scusate, ma lascio perdere questo programma ,
perchè è un casino a farlo ed io ho poche conoscenze.

Meglio che studio per fare altre cose semplice ,perchè se no non risolvo nullla.

Comunque grazie per la risposta.

PM