Skip to content

QCAD/CAM-jälkiprosessori

QCAD/CAM voi viedä CAD-piirustuksia erilaisiin CAM:ssa (tietokoneavusteinen valmistus) käytettäviin muotoihin. Nämä muodot voivat olla G-koodin murteita tai muita, täysin erilaisia muotoja. Jokainen tuettu CAM-muoto määritellään määritystiedostossa (tai “jälkiprosessorissa”), joka on ECMAScript (JavaScript) -tiedosto, joka toteuttaa muodon yksityiskohdat. Kaikki saatavilla olevat määritykset tallennetaan hakemistoon postprocessors. Uusia muotototeutuksia voidaan lisätä samaan sijaintiin.

Jokainen määritystiedosto sisältää ECMAScript-luokan, jonka nimi on sama kuin skriptitiedostolla. Jos skriptitiedoston nimi on MyGCode.js, skriptin sisällä määritetyn luokan nimen on oltava MyGCode.

ECMAScript-luokan on periydyttävä suoraan tai epäsuorasti luokasta CamExporterV2, jonka QCAD/CAM määrittelee. CamExporterV2 määrittelee CAM-viejän määritysluokkien perusrakenteen. CamExporterV2:n erilaisia metodeja kutsutaan tiedoston ylätunnisteen, CAD-piirustuksen eri kohteiden ja alatunnisteen viemiseksi. CamExporterV2 huolehtii myös QCAD/CAM:n eri ominaisuuksista, esimerkiksi työkalun säteen kompensaatiosta, sisäänmenosta / ulostulosta, sisäkonttuurien leikkaamisesta ennen ulkokonttuureja, polun optimoinnista jne.

CamExporterV2 ei tulosta itse mitään, vaan tuottaisi tyhjän tiedoston omillaan. CamExporterV2 tarjoaa tekstivirran (QTextStream) vietyyn tiedostoon kirjoittamiseen. Tämä tekstivirta on käytettävissä jäsenmuuttujan this.stream kautta.

Jos haluttu tuloste on G-koodin murre (esim. G1 X10 Y20 lineaariselle liikkeelle), määritys voidaan periyttää olemassa olevasta G-koodin määrityksestä nimeltä GCodeBase, joka määritellään tiedostossa GCodeBase.js. Näin on useimpien koneohjaimien kohdalla. Yksi tällainen esimerkkimääritys G-koodin tulostamiseksi millimetreinä on määritelty tiedostossa GCodeMM.js ja saatavilla käyttöliittymässä määrityksenä nimeltä G-Code (G41/G42) [mm].

Määrityksen periyttäminen GCodeBase:sta

Section titled “Määrityksen periyttäminen GCodeBase:sta”

Luo tiedosto valitsemallasi yksilöllisellä nimellä. Tässä esimerkissä kutsumme uutta määritystämme nimellä MyGCode ja tallennamme sen samannimiseen tiedostoon, eli MyGCode.js QCAD/CAM-asennuksesi hakemiston postprocessors alle.

Voit käyttää suosikkitekstieditoriasi tiedoston luomiseen ja kirjoittamiseen, esimerkiksi Notepad Windowsissa, TextEdit macOS:ssä tai vim, Emacs jne. Linux-järjestelmissä.

MyGCode.js:n on määritettävä luokka nimeltä MyGCode ollakseen kelvollinen määritys QCAD/CAM:lle. Vaikka ECMAScriptissä ei tarkalleen ottaen ole luokkia, voimme luoda samankaltaisen käsitteen liittämällä funktioita konstruktorifunktion prototyyppiobjektiin. Kuinka tämä tarkalleen toimii, on tämän dokumentaation ulottumattomissa. On kuitenkin olemassa suoraviivainen malli, jota voit käyttää kaikille määritystiedostoille.

Esimerkissämme luokan MyGCode määritelmä näyttää tältä (huomaa, että //:llä alkavat rivit ovat kommentteja eivätkä ole pakollisia):

// Sisällytä GCodeBase.js, joka sisältää luokan 'GCodeBase',
// jota käytetään pohjana omalle määritykselle:
include("GCodeBase.js");
// Luokkamme konstruktori:
function MyGCode(documentInterface, newDocumentInterface) {
// Kutsu perusluokan konstruktoria:
GCodeBase.call(this, documentInterface, newDocumentInterface);
}
// Periytä luokkamme luokasta GCodeBase:
MyGCode.prototype = new GCodeBase();
// Käyttöliittymässä näytettävä näyttönimi:
MyGCode.displayName = "My G-Code";

Nyt olemme luoneet uuden, täysin toimivan määrityksen nimeltä “My G-Code”, joka on valmis käytettäväksi QCAD/CAM:ssa ja tuottaa perus-G-koodia.

Yllä määrittelemämme konstruktori kutsuu perusluokkamme GCodeBase konstruktoria. Konstruktorissa voimme asettaa joitakin määrityksemme parametreja, kuten halutun tulostusyksikön tai sen, haluammeko käyttää G41/G42:ta työkalun säteen kompensaatioon vai laskea työkalupolun keskipisteen.

Tulostusyksikön (se on yksikkö, jota koneesi tai ohjaimesi odottaa) määrittämiseksi voimme asettaa jäsenmuuttujan unit arvoon Inch tai Millimeter, esimerkiksi:

this.unit = RS.Inch;

tai

this.unit = RS.Millimeter;

Muita konstruktorissa määritettäviä asetuksia ovat:

Muuttuja Mahdolliset arvot Oletus Kuvaus
this.outputOffsetPath true tai false false Aseta arvoon true laskeaksesi työkalun säteen kompensaation G41/G42:n käyttämisen sijaan.
this.lineNumber Numero 10 Rivinumerointiin käytettävä alkunumero (N…).
this.lineNumberIncrement Numero 10 Rivinumeron lisäys rivistä riviin.
this.fileExtensions Taulukko [ "nc", "cnc" ] Luettelo tiedostopäätteistä, joista käyttäjä voi valita tämän jälkiprosessorin kautta vietäessä.

Täydellinen konstruktori voi näyttää tältä:

function MyGCode(documentInterface, newDocumentInterface) {
GCodeBase.call(this, documentInterface, newDocumentInterface);
this.unit = RS.Inch;
this.outputOffsetPath = true;
this.lineNumber = 1;
this.lineNumberIncrement = 1;
}

G-koodin tuloste on jäsennelty koodilohkoihin, jotka kirjoitetaan tulostustiedostoon käytettäessä CAM-vientitoimintoa QCAD/CAM:ssa. Esimerkiksi ensimmäinen kirjoitettava koodilohko on koodilohko “header”. Jokainen koodilohko määritellään jäsenmuuttujassa, joka tunnistaa sen nimellä, esimerkiksi this.header sisältää tiedoston ylätunnisteen koodilohkon.

Koodilohkot voidaan ohittaa sisältämään mitä tahansa koodia / tekstiä. Koodilohkot sisältävät tyypillisesti muuttujia nykyisten X/Y-koordinaattien, rivinumeron, syöttönopeuden jne. tulostamiseksi.

Sanotaan, että yksittäinen viiva viedään G-koodiin. Viiva viedään työkalun säteen kompensaatiolla viivan vasemmalle puolelle (G41). Tulostustiedostoon kirjoitettavat koodilohkot ovat seuraavat:

Koodilohko Kuvaus Esimerkkituloste
header Tulosteen ylätunniste (aina ensimmäinen koodilohko). G21 G17 G90 G40 G49 G80
rapidMoveZ Pikaliike turvatasolle. G0 Z100
rapidMove Pikaliike ensimmäisen konttuurin ensimmäiseen sijaintiin (tässä viivan sisäänmenon alku). G0 X5 Y10
toolHeader Ensimmäinen lohko, kun uusi työkalu tulee käyttöön (työkalunvaihto). T1
rapidMoveZ Pikaliike alas vapaatasolle (leijunta materiaalin yläpuolella). G0 Z5
firstLinearMoveZ Leikkaus materiaaliin upotusnopeudella. G1 Z-5 F50
toolpathHeader Uuden työkalupolun ensimmäinen lohko.
contourHeader Uuden konttuurin ensimmäinen lohko työkalupolun sisällä.
singleZPassHeader Yksittäisen Z-läpiajon ylätunniste. Leikkaamme koko syvyyden yhdellä läpiajolla.
zPassFirstHeader Yksittäisen tai useiden Z-läpiajojen ensimmäinen ylätunniste.
linearMoveCompensationLeft Lineaarinen liike viivan alkupisteeseen sisäänmenoa pitkin, työkalun säteen kompensaation kytkeminen päälle. G41 X10 Y10 F500
linearMove Lineaarinen liike viivaa pitkin viivan loppupisteeseen. X30 Y10
linearMoveCompensationOff Lineaarinen liike loppupisteestä pois ulostuloa pitkin, työkalun säteen kompensaation kytkeminen pois päältä. G40 X35 Y10
zPassLastFooter Yksittäisen tai useiden Z-läpiajojen viimeinen alatunniste.
singleZPassFooter Yksittäisen Z-läpiajon alatunniste.
contourFooter Konttuurin loppu.
toolpathFooter Työkalupolun loppu.
linearMoveZ Liike ulos materiaalista vapaatasolle. Z5
rapidMoveZ Liike turvatasolle. G0 Z100
toolFooter Tämän työkalun loppu.
footer Ohjelman loppu. M30

Monet näistä koodilohkoista ovat tyypillisesti käyttämättömiä eivätkä tuota tulostetta (tyhjä koodilohko).

Jäsenmuuttuja Muuttujan nimi Kuvaus
inputFileName INFILENAME Syötetiedoston nimi (esim. DXF-tiedosto).
inputFilePath INFILEPATH Syötetiedoston nimi täydellisellä polulla.
fileName FILENAME Tulostustiedoston nimi.
filePath FILEPATH Tulostustiedoston nimi täydellisellä polulla.
dateTime DATETIME Viennin päivämäärä ja aika.
lineNumber N Nykyinen rivinumero.
spindleSpeed S Karanopeus, tyypillisesti r/min.
feedRate F Syöttönopeus.
plungeRate FP Upotusnopeus.
xHomePosition XH Kotipositio kuten CAM-määrityksessä on määritetty.
yHomePosition YH
zHomePosition ZH
zSafety ZS Z-turvataso työkalunvaihdoille ja alulle / lopulle.
zClearance ZU Z-vapaataso materiaaliin lähestymistä varten.
zClearancePass ZUP Z-vapaataso useiden läpiajojen välillä.
zCuttingDepth ZD Z-leikkaustaso (yhteensä).
xFirstPosition XF Ensimmäisen konttuurin ensimmäinen sijainti ensimmäisessä työkalupolussa.
yFirstPosition YF
xStartPosition X1 Kohteen alku (viivan / kaaren alkupiste).
yStartPosition Y1
zStartPosition Z1
xPosition X Nykyinen kohdesijainti. Nykyisen viivan / kaaren loppupiste.
yPosition Y
zPosition Z
xRelPosition XR Nykyinen kohdesijainti suhteellisena koordinaattina, suhteessa alkupisteeseen.
yRelPosition YR
zRelPosition ZR
iArcCenterInc I Kaaren keskipiste, suhteessa alkupisteeseen.
jArcCenterInc J
iArcCenterAbs IA Kaaren keskipiste, absoluuttinen.
jArcCenterAbs JA
arcRadius RADIUS Kaaren säde.
arcDiameter DIAMETER Kaaren halkaisija.
arcSweep SWEEP Kaaren pyyhkäisy (kaaren kattama kulma radiaaneina, negatiivinen myötäpäivään).
tool T Nykyinen työkalu.
toolRadius TR Työkalun säde.
toolDiameter TD Työkalun halkaisija.
toolpathOrder TOOLPATH_ORDER Työkalupolun järjestys työkalupolkujen luettelossa, alkaen 0:sta ensimmäiselle työkalupolulle.
toolCalls TOOL_CALLS Kuinka monta kertaa tätä työkalua on käytetty.
toolpathName TOOLPATH_NAME Nykyisen työkalupolun nimi (käyttäjän määrittämä).
programName PROGRAM_NAME Ohjelman nimi kuten käyttäjä on CAM-määrityksessä määrittänyt.
xMin X_MIN Piirustuksen minimiulottuvuus.
yMin Y_MIN
zMin Z_MIN
xMax X_MAX Piirustuksen maksimiulottuvuus.
yMax Y_MAX
zMax Z_MAX

Lisätäksesi tai muuttaaksesi G-koodeja tai M-koodeja tai muita tietoja ylä- tai alatunnisteessa, määritys voi ohittaa jäsenmuuttujat header ja footer konstruktorissa, esimerkiksi seuraavasti:

this.header = [ "[N] G0 Z100" ];
this.footer = [ "[N] G0 Z100", "[N] M30" ];

Käyttääksesi absoluuttisia arvoja kaarten keskipisteen I/J-arvoille voit ohittaa kaaren koodilohkot seuraavasti:

this.firstArcCWMove = "[N] G2 [X] [Y] [IA] [JA] [F]";
this.arcCWMove = "[N] G2 [X] [Y] [IA] [JA] [F]";
this.firstArcCCWMove = "[N] G3 [X] [Y] [IA] [JA] [F]";
this.arcCCWMove = "[N] G3 [X] [Y] [IA] [JA] [F]";

QCAD/CAM yhdistää automaattisesti jälkiprosessoritiedoston kanssa samannimisen DXF-mallitiedoston (jos saatavilla) asetettaessa tai vaihdettaessa jälkiprosessoria. Sanotaan, että jälkiprosessorin nimi on “MyGCode”, toteutettu tiedostossa postprocessors/MyGCode.js. Luo työkalumäärityksillä varustettu DXF-tiedosto sijaintiin postprocessors/MyGCode.dxf. Tämä tiedosto voi sisältää työkalumäärityksiä, oletustasoja tai käytettävissä olevan pinta-alan ääriviivan. Huomaa: Mallitiedoston näkyvä sisältö sijoitetaan yhdistettäessä automaattisesti lukitulle tasolle, joten se on vain näkyvä mutta ei valittavissa.