Oppure

Loading
17/04/10 19:29
Salve riapro con questo programma visto che vorrei finirlo ed 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:

i44.tinypic.com/…

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 :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;

namespace _VirtualCnc
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }
        List<PointF> PointList = new List<PointF>();
        int pointIndex = 0;
        private void ApriProgramma_Click(object sender, EventArgs e)
        {

            OpenFileDialog open = new OpenFileDialog();
            open.Filter = "File di Testo (*.txt)|*.txt|File Cnc(*.cnc)|*.cnc";
            if (open.ShowDialog() == DialogResult.OK)
            {
                tbCode.Text = File.ReadAllText(open.FileName) + "";  // Aggiunta codice alla listbox
                sbp_file.Text = "" + open.FileName + "";   // barra di stato per recuperare il file.
            }
            tbCode.Enabled = false;
        }// ApriProgramma_Click

        private void Simula_Click(object sender, EventArgs e)
        {
            Elabora_.Enabled = true;
            List<PointF> pt = new List<PointF>();
            Regex coord = new Regex(@"X(?<CoordX>-?\d+)Y(?<CoordY>-?\d+)");
                MatchCollection mc = coord.Matches(tbCode.Text);
                foreach (Match m in mc)
                {
                    int x = int.Parse(m.Groups["CoordX"].Value);
                    int y = int.Parse(m.Groups["CoordY"].Value);
                    PointF p = new PointF(x, y);
                    pt.Add(p);
                   
                }
            
            // Get Points From Line(s)
            float curDist = 0;
            float distance = 0;
            for (int i = 0; i < pt.Count - 1; i++)
            {
                PointF ptA = pt[i];
                PointF ptB = pt[i + 1];
                float deltaX = ptB.X - ptA.X;
                float deltaY = ptB.Y - ptA.Y;
                curDist = 0;
                distance = (float)Math.Sqrt(Math.Pow(deltaX, 2) + Math.Pow(deltaY, 2));
                while (curDist < distance)
                {
                    curDist++;
                    float offsetX = (float)((double)curDist / (double)distance * (double)deltaX);
                    float offsetY = (float)((double)curDist / (double)distance * (double)deltaY);
                    PointList.Add(new PointF(ptA.X + offsetX, ptA.Y + offsetY));
                }
            }
            
       
          
        } // Simula_Click

        private void FermaElaborazione_Click(object sender, EventArgs e)
        {
           this.box.Refresh();
        
           this.Elabora_.Enabled = false;
           pointIndex = 0;
        }// FermaElaborazione_Click

        private void MenuFileEsci_Click(object sender, EventArgs e)
        {
            this.Close();
        }// MenuFileEsci_Click

        private void Edita__Click(object sender, EventArgs e)
        {
            tbCode.Enabled = true;
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            tbCode.Enabled = false;
            this.box.SizeMode = PictureBoxSizeMode.CenterImage;

        }// Edita__Click

        private void SalvaProgramma_Click(object sender, EventArgs e)
        {
           
        }// SalvaProgramma_Click

        private void MenuAbout_Click(object sender, EventArgs e)
        {
            AboutBox1 about = new AboutBox1();
            about.Show();
        }// MenuAbout_Click

        private void Elabora__Tick(object sender, EventArgs e)
        {
            if (pointIndex < PointList.Count - 1)
            {
                pointIndex++;
                this.Refresh();
            }
        } // Elabora_Tick

        private void box_Paint(object sender, PaintEventArgs e)
        {
           

            for (int i = 0; i < pointIndex; i++)
            {
            e.Graphics.PageUnit = GraphicsUnit.Pixel;
            e.Graphics.DrawLine(Pens.Black, PointList[i].X, PointList[i].Y, PointList[i + 1].X, PointList[i + 1].Y);
            textBox1.Text = "" + PointList[i + 1].X + "";
            textBox2.Text = "" + PointList[i + 1].Y + "";
            }

          
        } // Box  Paint.
    }
}


Mi potete aituarmi grazie.

Vi ringrazio molto.
17/04/10 19:30
LE righe che vedete sono queste:

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

vi faccio vedere un'esempio con un'altro codice e un'altro programma...

in poche parole devo cambiare le coordinate.

ecco l'immagine:

i44.tinypic.com/…
Ultima modifica effettuata da 17/04/10 20:34
18/04/10 11:47
ansi vi posto questa immagine cosi capite di più.

i39.tinypic.com/…
20/04/10 16:38
Il Totem
Non si è capito nulla. Per favore, scrivi meglio.
aaa
22/04/10 12:04
Postato originariamente da Il Totem:

Non si è capito nulla. Per favore, scrivi meglio.


Ciao, e scusa per il ritardo ,
ma

In poche parole devo fare questo linguaggio qui:

dpsoft.eu/…


vedi video: youtube.com/…

A scopo didattico, Mi piacerebbe fare il simulatore.

L'unico devo partire da un'area di lavoro:
x400y200z300

e fare lo start point x0y0 verso di noi.

Devo creare un asse cartesiano,

quasi simile ad questo:

labmaster.mi.infn.it/a2/…

Mi chiedevo solo che cosa devo documentarmi per fare questo simulatore.

Grazie.


22/04/10 17:12
Il Totem
Beh... devi documentarti sulla grafica e sulle espressioni regolari...
aaa