QCAD/CAM pēcapstrādātājs
QCAD/CAM var eksportēt CAD rasējumus dažādos formātos, ko izmanto CAM (datorizētā ražošanā). Šie formāti var būt G koda dialekti vai citi, pilnīgi atšķirīgi formāti. Katrs atbalstītais CAM formāts ir definēts konfigurācijas failā (jeb „pēcapstrādātājā”), kas ir ECMAScript (JavaScript) fails, kas īsteno formāta detaļas. Visas pieejamās konfigurācijas tiek glabātas direktorijā postprocessors. Jaunas formātu īstenošanas var pievienot tajā pašā vietā.
Pamatstruktūra
Section titled “Pamatstruktūra”Katrs konfigurācijas fails satur ECMAScript klasi ar tādu pašu nosaukumu kā skripta fails. Ja skripta fails saucas MyGCode.js, skripta iekšpusē definētajai klasei jāsaucas MyGCode.
ECMAScript klasei tieši vai netieši jāatvasinās no klases CamExporterV2, ko definē QCAD/CAM. CamExporterV2 definē CAM eksportētāja konfigurācijas klašu pamatstruktūru. Dažādas CamExporterV2 metodes tiek izsauktas, lai eksportētu faila galveni, dažādas CAD rasējuma entītijas un kājeni. CamExporterV2 arī rūpējas par dažādām QCAD/CAM funkcijām, piemēram, instrumenta rādiusa kompensāciju, ievadu / izvadu, iekšējo kontūru griešanu pirms ārējām kontūrām, ceļa optimizāciju utt.
CamExporterV2 pati par sevi neko neizvada, bet viena pati radītu tukšu failu. CamExporterV2 piedāvā teksta straumi (QTextStream) rakstīšanai eksportētajā failā. Šī teksta straume tiek atklāta caur locekļa mainīgo this.stream.
Ja vēlamā izvade ir G koda dialekts (piem., G1 X10 Y20 lineārai kustībai), konfigurāciju var atvasināt no esošās G koda konfigurācijas ar nosaukumu GCodeBase, kas ir definēta failā GCodeBase.js. Tā tas ir vairākumam mašīnu kontrolleru. Viena šāda piemēra konfigurācija G koda izvadei milimetros ir definēta failā GCodeMM.js un pieejama lietotāja saskarnē kā konfigurācija ar nosaukumu G-Code (G41/G42) [mm].
Konfigurācijas atvasināšana no GCodeBase
Section titled “Konfigurācijas atvasināšana no GCodeBase”Izveidojiet failu ar unikālu nosaukumu pēc jūsu izvēles. Šim piemēram mēs nosaucam savu jauno konfigurāciju MyGCode un saglabājam to failā ar tādu pašu nosaukumu, t. i., MyGCode.js jūsu QCAD/CAM instalācijas direktorijā postprocessors.
Faila izveidei un rakstīšanai varat izmantot savu iecienītāko vienkārša teksta redaktoru, piemēram, Notepad operētājsistēmā Windows, TextEdit operētājsistēmā macOS vai vim, Emacs utt. Linux sistēmās.
MyGCode.js jādefinē klase ar nosaukumu MyGCode, lai tā būtu derīga QCAD/CAM konfigurācija. Lai gan stingri runājot ECMAScript nav klašu, mēs varam izveidot līdzīgu koncepciju, pievienojot funkcijas konstruktora funkcijas prototipa objektam. Kā tieši tas darbojas, ir ārpus šīs dokumentācijas darbības jomas. Tomēr ir vienkāršs veidne, ko varat izmantot visiem konfigurācijas failiem.
Mūsu piemērā klases MyGCode definīcija izskatās šādi (ņemiet vērā, ka rindas, kas sākas ar //, ir komentāri un nav nepieciešami):
// Iekļaujiet GCodeBase.js, kas satur klasi 'GCodeBase',// izmantotu kā pamatu mūsu pašu konfigurācijai:include("GCodeBase.js");
// Mūsu klases konstruktors:function MyGCode(documentInterface, newDocumentInterface) { // Izsauciet bāzes klases konstruktoru: GCodeBase.call(this, documentInterface, newDocumentInterface);}
// Atvasiniet mūsu klasi no klases GCodeBase:MyGCode.prototype = new GCodeBase();
// Attēlojamais nosaukums, kas parādīts lietotāja saskarnē:MyGCode.displayName = "My G-Code";Tagad mēs esam izveidojuši jaunu, pilnībā strādājošu konfigurāciju ar nosaukumu „My G-Code”, kas ir gatava izmantošanai QCAD/CAM un rada pamata G kodu.
Konfigurācijas preferences
Section titled “Konfigurācijas preferences”Iepriekš definētais konstruktors izsauc mūsu bāzes klases GCodeBase konstruktoru. Konstruktorā mēs varam iestatīt dažus mūsu konfigurācijas parametrus, piemēram, vēlamo izvades vienību vai to, vai vēlamies izmantot G41/G42 instrumenta rādiusa kompensācijai vai aprēķināt instrumenta ceļa centru.
Lai konfigurētu izvades vienību (tā ir vienība, ko sagaida jūsu mašīna vai kontrolleris), mēs varam iestatīt locekļa mainīgo unit uz Inch vai Millimeter, piemēram:
this.unit = RS.Inch;vai
this.unit = RS.Millimeter;Citi iestatījumi, ko var konfigurēt konstruktorā, ir:
| Mainīgais | Iespējamās vērtības | Noklusējums | Apraksts |
|---|---|---|---|
this.outputOffsetPath |
true vai false | false | Iestatiet uz true, lai aprēķinātu instrumenta rādiusa kompensāciju, nevis izmantotu G41/G42. |
this.lineNumber |
Skaitlis | 10 | Sākotnējais skaitlis, ko izmanto rindu numurēšanai (N…). |
this.lineNumberIncrement |
Skaitlis | 10 | Rindas numura palielinājums no rindas uz rindu. |
this.fileExtensions |
Masīvs | [ "nc", "cnc" ] |
Failu paplašinājumu saraksts, no kura lietotājs var izvēlēties, eksportējot caur šo pēcapstrādātāju. |
Pilns konstruktors varētu izskatīties šādi:
function MyGCode(documentInterface, newDocumentInterface) { GCodeBase.call(this, documentInterface, newDocumentInterface);
this.unit = RS.Inch; this.outputOffsetPath = true; this.lineNumber = 1; this.lineNumberIncrement = 1;}G koda izvades definēšana
Section titled “G koda izvades definēšana”Koda bloki
Section titled “Koda bloki”G koda izvade ir strukturēta koda blokos, kas tiek ierakstīti izvades failā, izmantojot CAM eksporta funkciju QCAD/CAM. Piemēram, pirmais ierakstītais koda bloks ir koda bloks „header”. Katrs koda bloks ir definēts locekļa mainīgajā, kas to identificē pēc nosaukuma, piemēram, this.header satur koda bloku faila galvenei.
Koda blokus var pārrakstīt, lai tie saturētu jebkādu kodu / tekstu. Koda bloki parasti satur mainīgos, lai izvadītu pašreizējās X/Y koordinātas, rindas numuru, padeves ātrumu utt.
Pieņemsim, ka viena līnija tiek eksportēta uz G kodu. Līnija tiek eksportēta ar instrumenta rādiusa kompensāciju līnijas kreisajā pusē (G41). Koda bloki, kas tiek ierakstīti izvades failā, ir šādi:
| Koda bloks | Apraksts | Piemēra izvade |
|---|---|---|
header |
Izvades galvene (vienmēr pirmais koda bloks). | G21 G17 G90 G40 G49 G80 |
rapidMoveZ |
Ātra kustība uz drošības līmeni. | G0 Z100 |
rapidMove |
Ātra kustība uz pirmās kontūras pirmo pozīciju (šeit līnijas ievada sākums). | G0 X5 Y10 |
toolHeader |
Pirmais bloks, kad jauns instruments sāk darbību (instrumenta maiņa). | T1 |
rapidMoveZ |
Ātra kustība lejup uz atstarpes līmeni (lidojot virs materiāla). | G0 Z5 |
firstLinearMoveZ |
Griešana materiālā ar iegremdēšanas ātrumu. | G1 Z-5 F50 |
toolpathHeader |
Jauna instrumenta ceļa pirmais bloks. | |
contourHeader |
Jaunas kontūras pirmais bloks instrumenta ceļā. | |
singleZPassHeader |
Galvene vienam Z pārgājienam. Mēs griežam visu dziļumu vienā pārgājienā. | |
zPassFirstHeader |
Viena vai vairāku Z pārgājienu pirmā galvene. | |
linearMoveCompensationLeft |
Lineāra kustība uz līnijas sākuma punktu gar ievadu, ieslēdzot instrumenta rādiusa kompensāciju. | G41 X10 Y10 F500 |
linearMove |
Lineāra kustība gar līniju uz līnijas beigu punktu. | X30 Y10 |
linearMoveCompensationOff |
Lineāra kustība prom no beigu punkta gar izvadu, izslēdzot instrumenta rādiusa kompensāciju. | G40 X35 Y10 |
zPassLastFooter |
Viena vai vairāku Z pārgājienu pēdējā kājene. | |
singleZPassFooter |
Kājene vienam Z pārgājienam. | |
contourFooter |
Kontūras beigas. | |
toolpathFooter |
Instrumenta ceļa beigas. | |
linearMoveZ |
Kustība ārā no materiāla uz atstarpes līmeni. | Z5 |
rapidMoveZ |
Kustība uz drošības līmeni. | G0 Z100 |
toolFooter |
Šī instrumenta beigas. | |
footer |
Programmas beigas. | M30 |
Daudzi no šiem koda blokiem parasti netiek izmantoti un nedod izvadi (tukšs koda bloks).
Mainīgie
Section titled “Mainīgie”| Locekļa mainīgais | Mainīgā nosaukums | Apraksts |
|---|---|---|
| inputFileName | INFILENAME | Ievades faila nosaukums (piem., DXF fails). |
| inputFilePath | INFILEPATH | Ievades faila nosaukums ar pilnu ceļu. |
| fileName | FILENAME | Izvades faila nosaukums. |
| filePath | FILEPATH | Izvades faila nosaukums ar pilnu ceļu. |
| dateTime | DATETIME | Eksporta datums un laiks. |
| lineNumber | N | Pašreizējais rindas numurs. |
| spindleSpeed | S | Vārpstas ātrums, parasti apgr./min. |
| feedRate | F | Padeves ātrums. |
| plungeRate | FP | Iegremdēšanas ātrums. |
| xHomePosition | XH | Sākuma pozīcija, kā konfigurēta CAM konfigurācijā. |
| yHomePosition | YH | |
| zHomePosition | ZH | |
| zSafety | ZS | Z drošības līmenis instrumentu maiņām un sākumam / beigām. |
| zClearance | ZU | Z atstarpes līmenis materiāla tuvināšanai. |
| zClearancePass | ZUP | Z atstarpes līmenis starp vairākiem pārgājieniem. |
| zCuttingDepth | ZD | Z griešanas līmenis (kopējais). |
| xFirstPosition | XF | Pirmās kontūras pirmā pozīcija pirmajā instrumenta ceļā. |
| yFirstPosition | YF | |
| xStartPosition | X1 | Entītijas sākums (līnijas / loka sākuma punkts). |
| yStartPosition | Y1 | |
| zStartPosition | Z1 | |
| xPosition | X | Pašreizējā mērķa pozīcija. Pašreizējās līnijas / loka beigu punkts. |
| yPosition | Y | |
| zPosition | Z | |
| xRelPosition | XR | Pašreizējā mērķa pozīcija kā relatīvā koordināta, attiecībā pret sākuma punktu. |
| yRelPosition | YR | |
| zRelPosition | ZR | |
| iArcCenterInc | I | Loka centrs, attiecībā pret sākuma punktu. |
| jArcCenterInc | J | |
| iArcCenterAbs | IA | Loka centrs, absolūts. |
| jArcCenterAbs | JA | |
| arcRadius | RADIUS | Loka rādiuss. |
| arcDiameter | DIAMETER | Loka diametrs. |
| arcSweep | SWEEP | Loka aptvērums (loka aptvertais leņķis radiānos, negatīvs pulksteņrādītāja virzienā). |
| tool | T | Pašreizējais instruments. |
| toolRadius | TR | Instrumenta rādiuss. |
| toolDiameter | TD | Instrumenta diametrs. |
| toolpathOrder | TOOLPATH_ORDER | Instrumenta ceļa secība instrumentu ceļu sarakstā, sākot ar 0 pirmajam instrumenta ceļam. |
| toolCalls | TOOL_CALLS | Cik reižu šis instruments ir izmantots. |
| toolpathName | TOOLPATH_NAME | Pašreizējā instrumenta ceļa nosaukums (lietotāja definēts). |
| programName | PROGRAM_NAME | Programmas nosaukums, kā lietotājs konfigurējis CAM konfigurācijā. |
| xMin | X_MIN | Rasējuma minimālais apjoms. |
| yMin | Y_MIN | |
| zMin | Z_MIN | |
| xMax | X_MAX | Rasējuma maksimālais apjoms. |
| yMax | Y_MAX | |
| zMax | Z_MAX |
Piemēri
Section titled “Piemēri”Galvenes un kājenes mainīšana
Section titled “Galvenes un kājenes mainīšana”Lai pievienotu vai mainītu G kodus vai M kodus, vai citu informāciju galvenē vai kājenē, konfigurācija var pārrakstīt locekļa mainīgos header un footer konstruktorā, piemēram, šādi:
this.header = [ "[N] G0 Z100" ];this.footer = [ "[N] G0 Z100", "[N] M30" ];Absolūtie I/J
Section titled “Absolūtie I/J”Lai loku centram izmantotu absolūtās vērtības I/J vērtībām, jūs varat pārrakstīt loka koda blokus šādi:
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]";Pēcapstrādātāja veidnes fails
Section titled “Pēcapstrādātāja veidnes fails”QCAD/CAM automātiski sapludina DXF veidnes failu ar tādu pašu nosaukumu kā pēcapstrādātāja fails (ja pieejams), iestatot vai pārslēdzot pēcapstrādātāju. Pieņemsim, ka pēcapstrādātājs saucas „MyGCode”, īstenots failā postprocessors/MyGCode.js. Izveidojiet DXF failu ar instrumentu definīcijām failā postprocessors/MyGCode.dxf. Šis fails var saturēt instrumentu definīcijas, noklusējuma slāņus vai pieejamā virsmas laukuma kontūru. Piezīme: jebkurš redzams veidnes faila saturs sapludināšanas laikā automātiski tiek novietots bloķētā slānī, tāpēc tas ir tikai redzams, bet nav atlasāms.