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
Visual Basic 6 - Utilizzare una penna come scanner e far interpretare la figura al programma
Forum - Visual Basic 6 - Utilizzare una penna come scanner e far interpretare la figura al programma

Avatar
Job314 (Normal User)
Newbie


Messaggi: 3
Iscritto: 25/03/2010

Segnala al moderatore
Postato alle 22:22
Giovedì, 25/03/2010
Salve a tutti, sono nuovo del forum e avrei bisogno di un vostro aiuto.

Premetto che non sono espertissimo in programmazione di VB6, diciamo che "mastico" qualcosa e via via che mi capita, studio e imparo, soprattutto grazie a forum come questo.

Allora vi spiego il mio problema:
ho una macchina a lavoro, che crea le forme con il filo di ferro in maniera automatica, previa semplice programmazione sul blocco note di windows e con i comandi del programma di gestione; il PLC interpreta i movimenti da far fare alla testina di piega e al motore per l'avanzamento del filo.
Esempio:
BEND sta per PIEGA
FEED sta per avanzamento
SPD sta per velocità
Per fare un quadrato di 10x10 il programma sarebbe fatto così:
BEND 0 SPD 50 FEED 100 SPD 50
BEND 90 SPD 20 FEED 0 SPD 50
BEND 0 SPD 50 FEED 100 SPD 50
BEND 90 SPD 20 FEED 0 SPD 50
BEND 0 SPD 50 FEED 100 SPD 50
BEND 90 SPD 20 FEED 0 SPD 50
BEND 0 SPD 50 FEED 100 SPD 50
BEND 90 SPD 20 FEED 0 SPD 50

Dove BEND è la piega (con relativo angolo espresso in gradi), il primo SPD è la velocità della piega, FEED è l'avanzamento del filo (in millimetri), il secondo SPD è la velocità dell'avanzamento del filo.
Io vorrei utilizzare una penna ottica al posto del mouse, tracciare una figura già disegnata (oppure il pezzo campione) in modo da farla memorizzare al programma (che devo creare) e poi tradurre ciò che è stato memorizzato nel linguaggio spiegato poco sopra, in modo da fare un semplice copia/incolla e il pezzo che ho "scannerizzato" con la penna, mi venga realizzato dalla macchina.
Praticamente semplificando il concetto:
se con il mouse traccio una linea retta su un foglio (come su paint) lunga 10 cm, il programma che creerò dovrebbe memorizzare questa linea retta e tradurla così:
BEND 0 SPD 50 FEED 100 SPD 50
Dove le SPD sono casuali, poi le cambierei io a piacimento.
Il mouse poi diventerà la penna ottica che userei per copiare le forme o i disegni.

Purtroppo non ho idea di come iniziare, vi chiedo un aiutino...
Spero di essere stato abbastanza chiaro.

Ciao e grazie :)

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 2:22
Venerdì, 26/03/2010
per fare un programma del genere ci vuole un po' di pratica, non ce la fai se non hai una buona base teorica e di programmazione sotto...

In linea generale il tuo programma avrà un canvas grafico, sul quale dovrai disegnare una linea spezzata (composta cioè da tanti segmenti consecutivi).

La linea spezzata andrà memorizzata come array di coppie (x,y), dove le coordinate x e y saranno relative ad uno "spazio campione" che verrà aggiustato in base ad una scala, magari disegnandovi sopra una griglia di riferimento di dimensioni note.

Una volta ottenuto l'array di coppie (x,y) si potrà proseguire con la conversione nel particolare linguaggio usato dal tuo programma.

Algoritmo (pseudocodice)

- i = 0
- VecchiaDirezione = 0
- "Loop"
- Ax, Ay = i-esima coppia
- Incrementa i
- Bx, By = i-esima coppia
- Lunghezza = RadiceQuadrata( (Ax - Bx)^2 + (Ay - By)^2 )
- Direzione = Atan2(By - Ay, Bx - Ax)
- Angolo = VecchiaDirezione - Direzione
- PRINT "BEND " + Angolo + " SPD 20 FEED 0 SPD 50"
- PRINT "BEND 0 SPD 50 FEED " + Lunghezza + " SPD 50"
- VecchiaDirezione = Direzione
- Se i = ultima coppia ricomincia da "Loop"
- Fine

L'algoritmo scritto così è molto grezzo e potrebbe avere qualche errore, ma non posso fare di più perchè non conosco Visual Basic.
Spero che le idee che ti ho dato ti aiutino con il tuo progetto ^_^
Ciao ;)

Ultima modifica effettuata da TheKaneB il 26/03/2010 alle 2:28
PM Quote
Avatar
Job314 (Normal User)
Newbie


Messaggi: 3
Iscritto: 25/03/2010

Segnala al moderatore
Postato alle 13:52
Sabato, 27/03/2010
Ciao, ti ringrazio per la risp.
Onestamente navigo ancora in alto mare...
Cmq inizierò a studiarci su e poi vedremo se riuscirò nell'impresa.
Cmq grazie delle info, mi saranno senz'altro utili :D

PM Quote