QCAD/CAM järeltöötleja
QCAD/CAM saab eksportida CAD-jooniseid erinevatesse CAM-is (arvutipõhine tootmine) kasutatavatesse vormingutesse. Need vormingud võivad olla G-koodi dialektid või muud, täiesti erinevad vormingud. Iga toetatud CAM-vorming on määratud konfiguratsioonifailis (või “järeltöötlejas”), mis on ECMAScript (JavaScript) fail, mis rakendab vormingu üksikasjad. Kõik saadaolevad konfiguratsioonid salvestatakse kataloogi postprocessors. Uusi vormingurakendusi saab lisada samasse asukohta.
Põhistruktuur
Section titled “Põhistruktuur”Iga konfiguratsioonifail sisaldab ECMAScripti klassi, mille nimi on sama mis skriptifailil. Kui skriptifail kannab nime MyGCode.js, peab skripti sees määratud klass kandma nime MyGCode.
ECMAScripti klass peab otseselt või kaudselt tulenema klassist CamExporterV2, mille määrab QCAD/CAM. CamExporterV2 määrab CAM-eksportija konfiguratsiooniklasside põhistruktuuri. CamExporterV2 erinevaid meetodeid kutsutakse faili päise, CAD-joonise erinevate objektide ja jaluse eksportimiseks. CamExporterV2 hoolitseb ka QCAD/CAM erinevate funktsioonide eest, näiteks tööriistaraadiuse kompensatsioon, sisenemine / väljumine, sisekontuuride lõikamine enne väliskontuure, tee optimeerimine jne.
CamExporterV2 ise midagi ei väljasta, vaid tekitaks üksinda tühja faili. CamExporterV2 pakub tekstivoogu (QTextStream) eksporditud faili kirjutamiseks. See tekstivoog on avatud liikmemuutuja this.stream kaudu.
Kui soovitud väljund on G-koodi dialekt (nt G1 X10 Y20 lineaarse liikumise jaoks), saab konfiguratsiooni tuletada olemasolevast G-koodi konfiguratsioonist nimega GCodeBase, mis on määratud failis GCodeBase.js. Nii on enamiku masinakontrollerite puhul. Üks selline näidiskonfiguratsioon G-koodi väljastamiseks millimeetrites on määratud failis GCodeMM.js ja saadaval kasutajaliideses konfiguratsioonina nimega G-Code (G41/G42) [mm].
Konfiguratsiooni tuletamine GCodeBase-st
Section titled “Konfiguratsiooni tuletamine GCodeBase-st”Loo enda valitud unikaalse nimega fail. Selle näite puhul nimetame oma uue konfiguratsiooni MyGCode ja salvestame selle samanimelisse faili, st MyGCode.js oma QCAD/CAM paigalduse kataloogis postprocessors.
Faili loomiseks ja kirjutamiseks saad kasutada oma lemmiktekstiredaktorit, näiteks Notepad Windowsis, TextEdit macOS-is või vim, Emacs jne Linuxi süsteemides.
MyGCode.js peab määrama klassi nimega MyGCode, et olla QCAD/CAM-i jaoks kehtiv konfiguratsioon. Kuigi rangelt võttes ECMAScriptis klasse ei ole, saame luua sarnase kontseptsiooni, lisades funktsioone konstruktorfunktsiooni prototüübiobjektile. Kuidas see täpselt töötab, jääb selle dokumentatsiooni ulatusest välja. Siiski on olemas lihtne mall, mida saad kasutada kõigi konfiguratsioonifailide jaoks.
Meie näite puhul näeb klassi MyGCode määratlus välja selline (pane tähele, et //-ga algavad read on kommentaarid ega ole nõutavad):
// Kaasa GCodeBase.js, mis sisaldab klassi 'GCodeBase',// mida kasutatakse meie enda konfiguratsiooni alusena:include("GCodeBase.js");
// Meie klassi konstruktor:function MyGCode(documentInterface, newDocumentInterface) { // Kutsu baasklassi konstruktorit: GCodeBase.call(this, documentInterface, newDocumentInterface);}
// Tuleta meie klass klassist GCodeBase:MyGCode.prototype = new GCodeBase();
// Kasutajaliideses kuvatav kuvanimi:MyGCode.displayName = "My G-Code";Nüüd oleme loonud uue, täielikult töötava konfiguratsiooni nimega “My G-Code”, mis on valmis kasutamiseks QCAD/CAM-is ja toodab põhilist G-koodi.
Konfiguratsiooni eelistused
Section titled “Konfiguratsiooni eelistused”Ülal määratud konstruktor kutsub meie baasklassi GCodeBase konstruktorit. Konstruktoris saame määrata mõned oma konfiguratsiooni parameetrid, näiteks soovitud väljundühiku või selle, kas tahame tööriistaraadiuse kompensatsiooniks kasutada G41/G42 või arvutada tööriistatee keskpunkti.
Väljundühiku (see on ühik, mida sinu masin või kontroller ootab) konfigureerimiseks saame määrata liikmemuutuja unit väärtusele Inch või Millimeter, näiteks:
this.unit = RS.Inch;või
this.unit = RS.Millimeter;Muud konstruktoris konfigureeritavad seaded on:
| Muutuja | Võimalikud väärtused | Vaikimisi | Kirjeldus |
|---|---|---|---|
this.outputOffsetPath |
true või false | false | Määra väärtusele true, et arvutada tööriistaraadiuse kompensatsioon G41/G42 kasutamise asemel. |
this.lineNumber |
Arv | 10 | Reanummerdamiseks kasutatav algnumber (N…). |
this.lineNumberIncrement |
Arv | 10 | Reanumbri suurendamine reast reani. |
this.fileExtensions |
Massiiv | [ "nc", "cnc" ] |
Faililaiendite loend, mille hulgast kasutaja saab valida selle järeltöötleja kaudu eksportimisel. |
Täielik konstruktor võib välja näha selline:
function MyGCode(documentInterface, newDocumentInterface) { GCodeBase.call(this, documentInterface, newDocumentInterface);
this.unit = RS.Inch; this.outputOffsetPath = true; this.lineNumber = 1; this.lineNumberIncrement = 1;}G-koodi väljundi määratlemine
Section titled “G-koodi väljundi määratlemine”Koodiplokid
Section titled “Koodiplokid”G-koodi väljund on struktureeritud koodiplokkideks, mis kirjutatakse väljundfaili QCAD/CAM-is CAM-ekspordi funktsiooni kasutamisel. Näiteks esimene kirjutatav koodiplokk on koodiplokk “header”. Iga koodiplokk on määratud liikmemuutujas, mis tuvastab selle nime järgi, näiteks this.header sisaldab faili päise koodiplokki.
Koodiplokke saab alistada, et need sisaldaksid mis tahes koodi / teksti. Koodiplokid sisaldavad tavaliselt muutujaid praeguste X/Y-koordinaatide, reanumbri, etteandekiiruse jne väljastamiseks.
Oletame, et üks joon eksporditakse G-koodi. Joon eksporditakse tööriistaraadiuse kompensatsiooniga joone vasakule (G41). Väljundfaili kirjutatavad koodiplokid on järgmised:
| Koodiplokk | Kirjeldus | Näidisväljund |
|---|---|---|
header |
Väljundi päis (alati esimene koodiplokk). | G21 G17 G90 G40 G49 G80 |
rapidMoveZ |
Kiire liikumine ohutustasemele. | G0 Z100 |
rapidMove |
Kiire liikumine esimese kontuuri esimesele positsioonile (siin joone sisenemise algus). | G0 X5 Y10 |
toolHeader |
Esimene plokk, kui uus tööriist tegevusse astub (tööriistavahetus). | T1 |
rapidMoveZ |
Kiire liikumine alla vabatasemele (hõljumine materjali kohal). | G0 Z5 |
firstLinearMoveZ |
Materjali lõikamine sisenemiskiirusega. | G1 Z-5 F50 |
toolpathHeader |
Uue tööriistatee esimene plokk. | |
contourHeader |
Uue kontuuri esimene plokk tööriistatee sees. | |
singleZPassHeader |
Ühe Z-läbimi päis. Lõikame kogu sügavuse ühe läbimiga. | |
zPassFirstHeader |
Ühe või mitme Z-läbimi esimene päis. | |
linearMoveCompensationLeft |
Lineaarne liikumine joone alguspunkti mööda sisenemist, tööriistaraadiuse kompensatsiooni sisselülitamine. | G41 X10 Y10 F500 |
linearMove |
Lineaarne liikumine mööda joont joone lõpp-punkti. | X30 Y10 |
linearMoveCompensationOff |
Lineaarne liikumine lõpp-punktist eemale mööda väljumist, tööriistaraadiuse kompensatsiooni väljalülitamine. | G40 X35 Y10 |
zPassLastFooter |
Ühe või mitme Z-läbimi viimane jalus. | |
singleZPassFooter |
Ühe Z-läbimi jalus. | |
contourFooter |
Kontuuri lõpp. | |
toolpathFooter |
Tööriistatee lõpp. | |
linearMoveZ |
Liikumine materjalist välja vabatasemele. | Z5 |
rapidMoveZ |
Liikumine ohutustasemele. | G0 Z100 |
toolFooter |
Selle tööriista lõpp. | |
footer |
Programmi lõpp. | M30 |
Paljud neist koodiplokkidest on tavaliselt kasutamata ja ei tooda väljundit (tühi koodiplokk).
Muutujad
Section titled “Muutujad”| Liikmemuutuja | Muutuja nimi | Kirjeldus |
|---|---|---|
| inputFileName | INFILENAME | Sisendfaili nimi (nt DXF-fail). |
| inputFilePath | INFILEPATH | Sisendfaili nimi koos täieliku teega. |
| fileName | FILENAME | Väljundfaili nimi. |
| filePath | FILEPATH | Väljundfaili nimi koos täieliku teega. |
| dateTime | DATETIME | Ekspordi kuupäev ja kellaaeg. |
| lineNumber | N | Praegune reanumber. |
| spindleSpeed | S | Spindli kiirus, tavaliselt p/min. |
| feedRate | F | Etteandekiirus. |
| plungeRate | FP | Sisenemiskiirus. |
| xHomePosition | XH | Kodupositsioon, nagu on konfigureeritud CAM-konfiguratsioonis. |
| yHomePosition | YH | |
| zHomePosition | ZH | |
| zSafety | ZS | Z ohutustase tööriistavahetuste ja alguse / lõpu jaoks. |
| zClearance | ZU | Z vabatase materjalile lähenemiseks. |
| zClearancePass | ZUP | Z vabatase mitme läbimi vahel. |
| zCuttingDepth | ZD | Z lõiketase (kokku). |
| xFirstPosition | XF | Esimese kontuuri esimene positsioon esimeses tööriistatees. |
| yFirstPosition | YF | |
| xStartPosition | X1 | Objekti algus (joone / kaare alguspunkt). |
| yStartPosition | Y1 | |
| zStartPosition | Z1 | |
| xPosition | X | Praegune sihtpositsioon. Praeguse joone / kaare lõpp-punkt. |
| yPosition | Y | |
| zPosition | Z | |
| xRelPosition | XR | Praegune sihtpositsioon suhtelise koordinaadina, suhtes alguspunktiga. |
| yRelPosition | YR | |
| zRelPosition | ZR | |
| iArcCenterInc | I | Kaare keskpunkt, suhtes alguspunktiga. |
| jArcCenterInc | J | |
| iArcCenterAbs | IA | Kaare keskpunkt, absoluutne. |
| jArcCenterAbs | JA | |
| arcRadius | RADIUS | Kaare raadius. |
| arcDiameter | DIAMETER | Kaare läbimõõt. |
| arcSweep | SWEEP | Kaare pöördenurk (kaare kaetud nurk radiaanides, negatiivne päripäeva jaoks). |
| tool | T | Praegune tööriist. |
| toolRadius | TR | Tööriista raadius. |
| toolDiameter | TD | Tööriista läbimõõt. |
| toolpathOrder | TOOLPATH_ORDER | Tööriistatee järjekord tööriistateede loendis, algades 0-st esimese tööriistatee jaoks. |
| toolCalls | TOOL_CALLS | Kordade arv, mil seda tööriista on kasutatud. |
| toolpathName | TOOLPATH_NAME | Praeguse tööriistatee nimi (kasutaja määratud). |
| programName | PROGRAM_NAME | Programmi nimi, nagu kasutaja on CAM-konfiguratsioonis konfigureerinud. |
| xMin | X_MIN | Joonise minimaalne ulatus. |
| yMin | Y_MIN | |
| zMin | Z_MIN | |
| xMax | X_MAX | Joonise maksimaalne ulatus. |
| yMax | Y_MAX | |
| zMax | Z_MAX |
Näited
Section titled “Näited”Päise ja jaluse muutmine
Section titled “Päise ja jaluse muutmine”Et lisada või muuta G-koode või M-koode või muud teavet päises või jaluses, saab konfiguratsioon alistada liikmemuutujad header ja footer konstruktoris, näiteks järgmiselt:
this.header = [ "[N] G0 Z100" ];this.footer = [ "[N] G0 Z100", "[N] M30" ];Absoluutne I/J
Section titled “Absoluutne I/J”Et kasutada kaarte keskpunkti I/J väärtuste jaoks absoluutväärtusi, saad kaare koodiplokid alistada järgmiselt:
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]";Järeltöötleja mallifail
Section titled “Järeltöötleja mallifail”QCAD/CAM ühendab järeltöötleja määramisel või vahetamisel automaatselt sisse järeltöötleja failiga samanimelise DXF-mallifaili (kui saadaval). Oletame, et järeltöötleja kannab nime “MyGCode”, rakendatud failis postprocessors/MyGCode.js. Loo tööriistamääratlustega DXF-fail asukohta postprocessors/MyGCode.dxf. See fail võib sisaldada tööriistamääratlusi, vaikekihte või saadaoleva pinnaala kontuuri. Märkus: mis tahes mallifaili nähtav sisu paigutatakse ühendamisel automaatselt lukustatud kihile, seega on see ainult nähtav, kuid mitte valitav.