IC Einstein 2.5 - modulo C.A.M. Il modulo C.A.M. offre molteplici possibilita' di impiego all'interno di IC Einstein, mediante la stesura di programmi scritti nel linguaggio WKRS-BASIC insito all'interno di IC Einstein stesso. L'impiego principale e' comunque quello di generare oggetti mediante la fresatura 2D-1/2 e 3D, sebbene sia possibile anche visualizzare sezioni e calcolare volumi. Fresatura di pezzi meccanici 3D: Come accennato in precedenza, la fresatura di pezzi meccanici 3D avviene tramite un'apposito programma in WKRS-BASIC che viene fornito in versione DEMO congiuntamente ad IC Einstein stesso e che l'utente puo' modificare a piacimento per affinarne le prestazioni. Per questioni di sicurezza, l'utente non potra' sovrascrivere direttamente il programma da noi fornito ma potra' editarne il sorgente e salvarlo con altro nome. Grazie ad un set di comandi specifici del WKRS-BASIC, i file di programma possono venire visualizzati e richiamati dal sottomenu "WKRS-BASIC programs" presente nel primo menu' di ogni modulo di IC Einstein (in questo caso ci riferiamo al menu File del modulo C.A.M.), disponibili all'utente con un nome mnemonico indipendente dal nome del file del programma. Il pezzo meccanico da realizzare tramite fresatura dall'alto, deve venire caricato nell'area di edit del modulo C.A.M. tramite il comando "Load…" presente nel menu' principale del C.A.M. stesso. I formati attualmente supportati sono il DXF e il GTS. Nella Figura1 sottostante e' riportato un esempio del menu di richiamo rapido dei programmi WKRS-BASIC, dove sono presenti 2 programmi richiamabili direttamente:
Figura 1 (come richiamare un programma in WKRS-BASIC dal menu' del modulo C.A.M.) Clickando col tasto sinistro del mouse sulla voce "Fresatura di un solido con pilotaggio diretto (DEMO)" viene eseguito il programma corrispondente e visualizzata la finestra riportata nella Figura2 sottostante (se l'utente apporta modifiche al programma, la videata puo' risultare diversa).
Figura 2 (esempio di videata presentata dal programma di fresatura del modulo C.A.M.)
Come si puo' notare, questo programma offre 6 scelte (piu' la possibilita' di uscire), di cui la numero 4 risulta disattivata poiche' si riferisce alla fresatura di un circuito stampato e quindi di competenza del modulo Multilayer Solver. I programmi in WKRS-BASIC, infatti, possono discriminare al loro interno da quale modulo vengono richiamati e attivare o disattivare automaticamente alcune opzioni in essi contenute. Vediamo ora come procedere per realizzare l'oggetto solido presente nell'area di edit del modulo C.A.M., tramite il programma DEMO appena avviato. 1. Selezionare il file di configurazione parametri della fresatrice in uso (voce <1> del menu' visto in precedenza) Questo programma offre la possibilita' di mantenere le configurazioni di piu' macchine utensili e selezionare la macchina desiderata per effettuare la lavorazione voluta. E' anche possibile sfruttare questa possibilita' per configurare la stessa macchina per l'utilizzo su materiali diversi, mappando set di velocita' diverse. Nella Figura 3 sottostante e' riportato un esempio di videata di scelta della configurazione:
Figura 3 (esempio di scelta del file di configurazione dei parametri-macchina) 2. Se e' la prima volta che viene attivato un file di configurazione o si desidera variarne i parametri, e' possibile intervenire mediante la voce di variazione dei parametri (voce <2> del menu' visto in precedenza) Per effettuare la variazione dei parametri, viene presentata una videata del tipo di quella riportata nella Figura 4 sottostante, in cui spostandosi verticalmente con i tasti cursore lungo la lista di opzioni visualizzate e confermando con il parametro che si desidera modificare, si accede alla richiesta di input del nuovo valore. E' importante configurare correttamente tutti i parametri di indirizzo porta, velocita' di spostamento e associazioni ai bit della porta parallela, per avere un corretto risultato. L'indirizzo della porta parallela si puo' rilevare dal "Pannello di controllo" à "Sistema" à "Hardware" à "Gestione periferiche" à "Porte COM e LPT" à "Porta stampante (LPT1)" à "Risorse" à "Indirizzo di I/O", mentre la corrispondenza tra i segnali elettrici e i bit e' la seguente: Pin2 ßà bit 0 Pin3 ßà bit 1 Pin4 ßà bit 2 Pin5 ßà bit 3 Pin6 ßà bit 4 Pin7 ßà bit 5 Pin8 ßà bit 6 Pin9 ßà bit 7
Figura 4 (esempio di configurazione dei parametri di una macchina fresatrice) Un'altra cosa fondamentale di cui tenere conto durante queste operazioni di mappatura, e' il segno dei segnali di clock e di direzione. A questo scopo, i parametri relativi ai bit ri direzione e di clock sono doppi, ovverossia viene richiesto oltre al bit di corrispondenza anche il segno. Un segno '+' indica che il segnale e' attivo quando e' allo stato alto (HIGH), viceversa un segno '-' indica che il segnale e' attivo allo stato basso (LOW). 3. Verificare il corretto spostamento nelle direzioni volute (voce <3> del menu' visto in precedenza) La videata riportata in Figura 5, mostra come poter far spostare singolarmente gli assi X,Y e Z per verificarne le corrette impostazioni di direzione (al comparire della videata e' stato premuto il tasto e impostato 100mm).
Figura 5 (esempio di videata di spostamento)
Questa opzione serve anche per effettuare i posizionamenti a inizio pezzo per avviare la lavorazione (il punto di inizio di ogni lavorazione dipende dalla geometria del pezzo e dalla scelta del punto di inizio da parte dell'algoritmo di estrazione dei contorni, per cui l'utente puo' modificare a piacimento il file WKRS-BASIC di questo programma in modo da far richiedere il posizionamento iniziale come meglio desidera) 4. Lanciare la fresatura del pezzo presente nell'area di edit del C.A.M. (voce <5> del menu' visto in precedenza) Nella Figura 6 viene riportata la videata che compare selezionando questa voce di menu'. Nella videata sottostante, si e' risposto alle singole domande in modo da mostrare tutti i parametri che vengono richiesti. In realta', la richiesta dei parametri viene fatta uno ad uno, cioe', dopo aver risposto ad una domanda viene presentata quella successiva. La fresatura puo' avvenire dall'alto o dal basso e puo' essere effettuata con una passata di sgrossatura e una o piu' passate di finitura. Nelle passate di finitura non desiderate, e' sufficiente impostare un valore 0 (zero) nel corrispondente diametro utensile. Se si desidera effettuare piu' di 2 passate di finitura, occorre modificare il sorgente di questo programma in WKRS-BASIC per aggiungere le richieste delle passate successive. Come si puo' notare, a questo punto viene richiamato il processo parallelo per l'output dei passi da inviare ai motori step della macchina fresatrice. Se si dispone unicamente della versione dimostrativa, questo processo parallelo non viene richiamato e sara' possibile vedere unicamente a video i tracciati dei percorsi utensile.
Figura 6 (esempio di videata di parametrizzazione fresatura oggetto 3D) Appena l'ultimo parametro viene inserito, il programma procede al calcolo e alla visualizzazione del percorso utensile corrispondente al primo strato, in questo caso la faccia superiore del pezzo, poiche' e' stata scelta la fresatura dall'alto al basso. La Figura 7 riporta tale videata. Come si puo' notare, in questo esempio il punto di partenza e' stato lasciato invariato in base a quello scelto dall'algoritmo che ricava il percorso utensile, ma come gia' detto in precedenza, questo e' un programma di esempio, quindi le versioni definitive e le personalizzazioni da parte degli utenti possono modificare da programma il punto di inizio (vedere i commenti interni al programma WKRS-BASIC in questione). Un'altra considerazione e' che questo programma evidenzia in rosso il percorso utensile durante la fase di lavorazione (quello effettuato alla velocita' Normal-speed), in blu i passaggi tangenti ad zone gia' lavorate (quelli effettuati alla velocita' Medium-speed) e in verde i movimenti in aria libera ad alta velocita' (quelli effettuati alla velocita' High-speed). Le possibilita' offerte a questo punto sono due: eseguire la lavorazione mediante la pressione del tasto oppure saltarla mediante la pressione del tasto . Se si sceglie di eseguirla, ogni successivo strato di lavorazione viene calcolato in automatico al termine di ogni lavorazione dello strato attualmente in fresatura, fino alla richiesta del cambio utensile per la finitura. Se invece si sceglie di saltare la lavorazione, sara' solo piu' possibile vedere a video strato per strato senza poterli eseguire, poiche' il programma e' protetto contro le lavorazioni che non partono dall'inizio, questo perche' gli strati successivi danno per scontata l'asportazione di materiale in alcune parti gia' avvenuta in precedenza e se si iniziasse non dal primo strato, si incorrerebbe nella rottura dell'utensile e un possibile danneggiamento della macchina fresatrice per collisione della testina contro parti non asportate come invece l'algoritmo si aspettava.
Figura 7 (esempio di videata di inizio lavorazione 3D) Fresatura di circuiti stampati in 2D-1/2: Come per la fresatura di pezzi 3D descritta in precedenza, la fresatura di circuiti stampati puo' avvenire tramite lo stesso programma in WKRS-BASIC. Esso pero', venendo eseguito dal modulo Multilayer Solver, mettera' a disposizione l'opzione 4 denominata "Fresatura del CST presente a video" anziche' l'opzione 5 denominata "Fresatura del solido presente a video". Sebbene si stia lavorando con il modulo Multilayer Solver, e' richiesta la presenza del modulo C.A.M. per poter gestire l'uscita dei dati sulla porta parallela. Nella Figura 8 e' riportato il menu' da cui richiamare il programma di fresatura dei CST.
Figura 8 (come richiamare un programma in WKRS-BASIC dal menu' del modulo Multilayer Solver) I primi tre passi da seguire sono quelli di verifica dei settaggi, esattamente come per la fresatura di un oggetto 3D, fare percio' riferimento ai passi 1, 2 e 3 del paragrafo precedente. L'ultimo passo e' invece quello di scegliere l'opzione <4> e introdurre i parametri richiesti, come riportato di seguito nella Figura 9:
Figura 9 (esempio di videata dei parametri di fresatura CST) Come si puo' notare, i parametri richiesti sono rispettivamente: il nome del file temporaneo per i vettori, il numero del layer (1 o 2), il tipo di foratura (tramite punta o tramite fresa) e il diametro dell'utensile di fresatura. Se si sceglie di utilizzare una punta per effettuare la foratura, verranno richieste man mano le punte di diverso diametro per far fronte ai fori di diversa misura presenti nel CST. Se si sceglie invece di utilizzare la fresa per effettuare le forature, verranno realizzati tutti i fori aventi diametro maggiore o uguale a quello dell'utensile stesso, mediante movimento utensile lungo una circonferenza per ritagliare il materiale con un avanzamento verticale progressivo combinato. L'inizio di una foratura e' previsto da questo programma WKRS-BASIC nell'angolo in alto a sinistra del CST. La foratura viene effettuata soltanto se si sceglie di operare sul layer 1, al termine del quale l'utensile si trovera' nell'angolo in basso a sinistra del CST, che coincide col punto di inizio lavorazione del layer 2, il quale a sua volta terminera' nell'angolo in alto a sinistra, pronto per una nuova lavorazione di un CST posto nella stessa posizione. La Figura 10 riporta un esempio di piano di foratura con un utensile di 0.2mm di diametro (per default viene proposto 0.4).
Figura 10 (esempio di foratura di un layer)
Nella Figura 11 e' riportata invece la fresatura del layer 1, successiva alla foratura della Figura 10.
Figura 11 (esempio di fresatura di un layer) Come creare un proprio programma di fresatura: Come accennato in precedenza, l'utente puo' accedere al sorgente del programma di esempio per modificarlo o trarne spunto per creare una propria routine di fresatura. Il cuore di ogni programma di fresatura e' dato dalle istruzioni server presenti all'interno di IC Einstein, le quali vengono richiamate dal WKRS-BASIC tramite l'apposita funzione WRITESVR che consente anche di leggere il valore di ritorno per capire l'esito del comando inviato al server. Nel caso specifico, riportiamo di seguito le istruzioni e il loro modo di chiamarle per far calcolare uno strato di una fresatura 3D: IF PASS=1 THEN CMD$="GET3DOBJINCREMENTALSECTIONVECTORS "+ ' E' il comando per ottenere i vettori di lavorazione della sezione Z STR$(RESOLUTION)+" "+ ' Risoluzione di lavorazione in mm (es. 0.05 = 5 centesimi) STR$(TOOLDIAMETER(PASS))+" "+ ' Diametro dell'utensile in mm (considerato cilindrico) STR$(XMINF)+" "+STR$(XMAXF)+" "+ ' Lato X in mm dell'area di lavoro interessata (margine utensile autom.) STR$(YMINF)+" "+STR$(YMAXF)+" "+ ' Lato Y in mm dell'area di lavoro interessata (margine utensile autom.) STR$(ACTUALZ)+" "+ ' Coordinata Z in mm della sezione orizzontale da lavorare STR$(PREVIOUSZ)+" "+ ' Coordinata Z in mm della precedente sezione orizzontale lavorata STR$(SECUREZ)+" "+ ' Coordinata Z in mm in cui l'utensile puo' scavalcare il pezzo STR$(LTX)+" "+STR$(LTY)+" "+STR$(LTZ)+" "+ ' Coordinate X,Y,Z in mm del punto di entrata dell'utensile STR$(PASSINT)+" "+ ' Interferenza percentuale tra le passate orizzontali concentriche CHR$(34)+BUSFILE$+CHR$(34)+ ' Nome del file in cui memorizzare i vettori generati in mm " JOIN" ' Opzione JOIN / NOJOIN: genera o non genera unioni che scavalcano il pezzo ELSE CMD$="GET3DOBJINCREMENTALSECTIONVECTORSREFINE "+' E' il comando per ottenere i vettori di lavorazione della sezione Z STR$(RESOLUTION)+" "+ ' Risoluzione di lavorazione in mm (es. 0.05 = 5 centesimi) STR$(TOOLDIAMETER(PASS))+" "+ ' Diametro dell'utensile in mm (considerato cilindrico) STR$(TOOLDIAMETER(PASS-1))+" "+ ' Diametro dell'utensile della passata precedente in mm (considerato cilindrico) STR$(XMINF)+" "+STR$(XMAXF)+" "+ ' Lato X in mm dell'area di lavoro interessata (margine utensile autom.) STR$(YMINF)+" "+STR$(YMAXF)+" "+ ' Lato Y in mm dell'area di lavoro interessata (margine utensile autom.) STR$(ACTUALZ)+" "+ ' Coordinata Z in mm della sezione orizzontale da lavorare STR$(PREVIOUSZ)+" "+ ' Coordinata Z in mm della precedente sezione orizzontale lavorata STR$(SECUREZ)+" "+ ' Coordinata Z in mm in cui l'utensile puo' scavalcare il pezzo STR$(LTX)+" "+STR$(LTY)+" "+STR$(LTZ)+" "+ ' Coordinate X,Y,Z in mm del punto di entrata dell'utensile
STR$(PASSINT)+" "+ concentriche CHR$(34)+BUSFILE$+CHR$(34)+ " JOIN" scavalcano il pezzo END IF R=WRITESVR(CMD$)
' Interferenza percentuale tra le passate orizzontali ' Nome del file in cui memorizzare i vettori generati in mm ' Opzione JOIN / NOJOIN: genera o non genera unioni che
Per conoscere nel dettaglio queste funzioni, vedere il loro utilizzo all'interno del programma WKRS-BASIC di esempio e visionare il file di help di IC Einstein alla voce File Exchange.