Salve, si come che sto ripredento in mano il c# ....
Mi dite come faccio creare un mini -linguaggio che disegna liena pixel per pixel, tramite coordinate X Y Z
Poi implementera altre coordinate e le velocità di disegnare la la linea..
Avete in mente un pantografo?.
Vorrei gestire un pantografo faccendo una simulazione ma creando un'interprete a forma di coordinate prese
da un file di testo o binario, basta che ci stanno X Y Z.
Mi dite come fare?
grazie.
Ciao Luigi,
spiegati meglio con un esempio, perchè hai bisogno della coordinata Z ?
-----------------------------------------Angella AndreaMicrosoft Certified Technology Specialisthttp://www.angellaa.it/
La z , è la testa che fa andare da alto e basso la punta che deve forare.
Devo fare un piccolo linguaggio ad esempio questo:
M6T1M3S1000F150G90G55G40X27Y0G0Z2G43H1G1Z-0.5M8X-147G0Y50G1X27G0Y101G1X-148G0Z2G0Y142G1X-59G1X27G0Y-24G1X-53G1X-147G0Y50G0Y101G0Y142
e devo far modo che me lo interpreta la mia applicazione
LA x e y , sono le normalissime coordinate che sappiamo tutti,
ma La Z , è la testa del trappano che scende su e giu per forare.
Scusate, se non mi capite.
A domani.
Devi renderti conto Luigi,che non possiamo aiutarti se tu per primo non spieghi chiaramente ciò che vuoi realizzare.
Ad esempio, dal testo che tu hai incollato come faccio a sapere cosa significa la M, la T, la S, la F, la G ?
Prima di realizzare un qualsiasi interprete è necessario conoscere chiaramente ciò che si desidera interpretare.
ok,
il codice lo sto studiando a scuola "Al corso Macchine controllo numerico", qui per spiegarti cosa sono la m t s f g,
è un pò lungo...a me mi ci è voluto 2 mesi di teoria ora sto faccendo la pratica sulla macchina controllo numerico che abbiamo in officina.
l'unica cosa che volevo sapere e come fare un'inteprete che funzioni devo usare per creare un'inerprete.
ad esempio un'array per includere le parole chiavi , delle funzioni per disegnare le linee, i timer per la velocità.etc.
Tutto qui.
Se vuoi domani apena ritorno dall'officina ti spiego meglio... ora perchè è già tardi.
Saluti,
luigi.
ad esempio ,
se devo caricare dei dati che hanno x y in millimetri,
In questo codice che lo sto portando alle mie essiegenze mi dite come fare per creare la finestra dialogo per aprire un file che abbia le coordinate
x y e le metto in una textbox e poi faccio play con il button1_click e le coordinate le leggo in una textbox multiline.
ecco il codice:
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.Drawing.Drawing2D;namespace cncSim{ public partial class Main : Form { List<PointF> PointList = new List<PointF>(); int pointIndex = 0; public Main() { InitializeComponent(); } private void Main_Load(object sender, EventArgs e) { PointF[] pt = new PointF[] { new PointF(100, 100), new PointF(150, 150), new PointF(200, 100), new PointF(100, 100), new PointF(118,-27), new PointF(0,0) }; // Get Points From Line(s) float curDist = 0; float distance = 0; for (int i = 0; i < pt.Length - 1; i++) { PointF ptA = pt; 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)); } } } private void pictureBox1_Paint(object sender, PaintEventArgs e) { for (int i = 0; i < pointIndex; i++) { e.Graphics.DrawLine(Pens.Black, PointList.X, PointList.Y, PointList[i + 1].X, PointList[i + 1].Y); /* txtX.Text = "" + PointList.X + ""; txtY.Text = "" + PointList.Y + ""; */ } } private void timer1_Tick(object sender, EventArgs e) { if (pointIndex < PointList.Count - 1) { pointIndex++; this.Refresh(); } } private void button1_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void button2_Click(object sender, EventArgs e) { pointIndex = 0; pictureBox1.Refresh(); timer1.Enabled = false; } private void button3_Click(object sender, EventArgs e) { timer1.Enabled = false; } }}
Grazie mille,
Aspetto risposte.
In poche parole ho quasi fatto , ma non son sicuro ,
perchè non mi sembra se è il modo giusto:
private void butLoad_Click(object sender, EventArgs e) { int X = Convert.ToInt32(txtgcodeX.Text); int Y = Convert.ToInt32(txtgcodeY.Text); PointF[] pt = new PointF[] { new PointF(X, Y) }; // Get Points From Line(s) float curDist = 0; float distance = 0; for (int i = 0; i < pt.Length - 1; i++) { PointF ptA = pt; 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)); } } }
Mi dite come faccio ad fare che prende un'infinito di valori x y . grazie.
ecco cosa vorrei fare:
http://www.youtube.com/watch?v=fPhQS9vMuBo
scusate, ma non ho trovato di meglio. ma è solo per farvi un'idea,
che simulazione devo fare.
ciao, a tutti e buon anno nuovo...
Volevo sapere come faccio ad fare un file .txt che abbia i valori X Y.
X20Y19
Y19X20
e cosi via...
Mi dite come fare con il codice che ho postato e faccendo che apre un file txt con le coordinate x y ?
Per adesso uso x y e poi la z la implemento più avanti.
Grazie.