Skip to content

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ā.

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.

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 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).

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

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" ];

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]";

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.