Skip to content

QCAD/CAM naknadni procesor

QCAD/CAM lahko izvozi risbe CAD v različne formate, uporabljene v CAM (računalniško podprta proizvodnja). Ti formati so lahko narečja G-kode ali drugi, popolnoma različni formati. Vsak podprt format CAM je določen v konfiguracijski datoteki (ali „naknadnem procesorju”), ki je datoteka ECMAScript (JavaScript), ki izvaja podrobnosti formata. Vse razpoložljive konfiguracije so shranjene v imeniku postprocessors. Nove implementacije formatov je mogoče dodati na isto mesto.

Vsaka konfiguracijska datoteka vsebuje razred ECMAScript z enakim imenom kot datoteka skripta. Če se datoteka skripta imenuje MyGCode.js, se mora razred, določen znotraj skripta, imenovati MyGCode.

Razred ECMAScript mora neposredno ali posredno izhajati iz razreda CamExporterV2, ki ga določi QCAD/CAM. CamExporterV2 določa osnovno strukturo konfiguracijskih razredov izvoznika CAM. Različne metode v CamExporterV2 se pokličejo za izvoz glave datoteke, različnih entitet v risbi CAD in noge. CamExporterV2 skrbi tudi za različne funkcije QCAD/CAM, na primer kompenzacijo polmera orodja, vhod / izhod, rezanje notranjih kontur pred zunanjimi konturami, optimizacijo poti itd.

CamExporterV2 sam po sebi ničesar ne izpiše, ampak bi sam ustvaril prazno datoteko. CamExporterV2 ponuja besedilni tok (QTextStream) za pisanje v izvoženo datoteko. Ta besedilni tok je izpostavljen prek članske spremenljivke this.stream.

Če je želeni izhod narečje G-kode (npr. G1 X10 Y20 za linearno gibanje), je mogoče konfiguracijo izpeljati iz obstoječe konfiguracije za G-kodo, imenovane GCodeBase, ki je določena v datoteki GCodeBase.js. Tako je pri večini krmilnikov strojev. Ena taka primer konfiguracija za izpis G-kode v milimetrih je določena v datoteki GCodeMM.js in na voljo v uporabniškem vmesniku kot konfiguracija, imenovana G-Code (G41/G42) [mm].

Ustvarite datoteko z edinstvenim imenom po vaši izbiri. Za ta primer našo novo konfiguracijo poimenujemo MyGCode in jo shranimo v datoteko z enakim imenom, tj. MyGCode.js v imeniku postprocessors vaše namestitve QCAD/CAM.

Za ustvarjanje in pisanje datoteke lahko uporabite svoj najljubši urejevalnik navadnega besedila, na primer Notepad v sistemu Windows, TextEdit v sistemu macOS ali vim, Emacs itd. v sistemih Linux.

MyGCode.js mora določiti razred, imenovan MyGCode, da je veljavna konfiguracija za QCAD/CAM. Čeprav v ECMAScript strogo gledano ni razredov, lahko ustvarimo podoben koncept s priključitvijo funkcij na prototipni objekt konstruktorske funkcije. Kako natančno to deluje, presega obseg te dokumentacije. Vendar obstaja preprosta predloga, ki jo lahko uporabite za vse konfiguracijske datoteke.

Za naš primer je definicija razreda MyGCode videti takole (upoštevajte, da so vrstice, ki se začnejo z //, komentarji in niso obvezne):

// Vključite GCodeBase.js, ki vsebuje razred 'GCodeBase',
// uporabljen kot osnova za našo lastno konfiguracijo:
include("GCodeBase.js");
// Konstruktor našega razreda:
function MyGCode(documentInterface, newDocumentInterface) {
// Pokličite konstruktor osnovnega razreda:
GCodeBase.call(this, documentInterface, newDocumentInterface);
}
// Izpeljite naš razred iz razreda GCodeBase:
MyGCode.prototype = new GCodeBase();
// Prikazno ime, prikazano v uporabniškem vmesniku:
MyGCode.displayName = "My G-Code";

Zdaj smo ustvarili novo, popolnoma delujočo konfiguracijo, imenovano „My G-Code”, ki je pripravljena za uporabo v QCAD/CAM in ustvarja osnovno G-kodo.

Konstruktor, ki smo ga določili zgoraj, pokliče konstruktor našega osnovnega razreda GCodeBase. V konstruktorju lahko nastavimo nekatere parametre za našo konfiguracijo, kot je želena izhodna enota ali če želimo uporabiti G41/G42 za kompenzacijo polmera orodja ali izračunati središče poti orodja.

Za konfiguracijo izhodne enote (to je enota, ki jo pričakuje vaš stroj ali krmilnik) lahko nastavimo člansko spremenljivko unit na Inch ali Millimeter, na primer:

this.unit = RS.Inch;

ali

this.unit = RS.Millimeter;

Druge nastavitve, ki jih je mogoče konfigurirati v konstruktorju, so:

Spremenljivka Možne vrednosti Privzeto Opis
this.outputOffsetPath true ali false false Nastavite na true za izračun kompenzacije polmera orodja namesto uporabe G41/G42.
this.lineNumber Število 10 Začetno število, uporabljeno za oštevilčenje vrstic (N…).
this.lineNumberIncrement Število 10 Povečanje števila vrstice iz vrstice v vrstico.
this.fileExtensions Polje [ "nc", "cnc" ] Seznam pripon datotek, med katerimi lahko uporabnik izbira pri izvozu prek tega naknadnega procesorja.

Celoten konstruktor bi lahko bil videti takole:

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

Izhod G-kode je strukturiran v bloke kode, ki se zapišejo v izhodno datoteko pri uporabi funkcije izvoza CAM v QCAD/CAM. Na primer, prvi zapisani blok kode je blok kode „header”. Vsak blok kode je določen v članski spremenljivki, ki ga identificira po imenu, na primer this.header vsebuje blok kode za glavo datoteke.

Bloke kode je mogoče preglasiti, da vsebujejo katero koli kodo / besedilo. Bloki kode običajno vsebujejo spremenljivke za izpis trenutnih koordinat X/Y, številke vrstice, hitrosti podajanja itd.

Recimo, da se ena črta izvozi v G-kodo. Črta se izvozi s kompenzacijo polmera orodja levo od črte (G41). Bloki kode, ki se zapišejo v izhodno datoteko, so naslednji:

Blok kode Opis Primer izhoda
header Glava izhoda (vedno prvi blok kode). G21 G17 G90 G40 G49 G80
rapidMoveZ Hitro premikanje na varnostno raven. G0 Z100
rapidMove Hitro premikanje na prvi položaj prve konture (tu začetek vhoda za črto). G0 X5 Y10
toolHeader Prvi blok, ko novo orodje stopi v akcijo (menjava orodja). T1
rapidMoveZ Hitro premikanje navzdol na raven prostosti (lebdenje nad materialom). G0 Z5
firstLinearMoveZ Rezanje v material s hitrostjo potapljanja. G1 Z-5 F50
toolpathHeader Prvi blok nove poti orodja.
contourHeader Prvi blok nove konture znotraj poti orodja.
singleZPassHeader Glava za en Z prehod. Celotno globino režemo v enem prehodu.
zPassFirstHeader Prva glava enega ali več Z prehodov.
linearMoveCompensationLeft Linearno premikanje na začetno točko črte vzdolž vhoda, vklop kompenzacije polmera orodja. G41 X10 Y10 F500
linearMove Linearno premikanje vzdolž črte na končno točko črte. X30 Y10
linearMoveCompensationOff Linearno premikanje stran od končne točke vzdolž izhoda, izklop kompenzacije polmera orodja. G40 X35 Y10
zPassLastFooter Zadnja noga enega ali več Z prehodov.
singleZPassFooter Noga za en Z prehod.
contourFooter Konec konture.
toolpathFooter Konec poti orodja.
linearMoveZ Premikanje iz materiala na raven prostosti. Z5
rapidMoveZ Premikanje na varnostno raven. G0 Z100
toolFooter Konec za to orodje.
footer Konec programa. M30

Mnogi od teh blokov kode so običajno neuporabljeni in ne ustvarijo izhoda (prazen blok kode).

Članska spremenljivka Ime spremenljivke Opis
inputFileName INFILENAME Ime vhodne datoteke (npr. datoteka DXF).
inputFilePath INFILEPATH Ime vhodne datoteke s celotno potjo.
fileName FILENAME Ime izhodne datoteke.
filePath FILEPATH Ime izhodne datoteke s celotno potjo.
dateTime DATETIME Datum in čas izvoza.
lineNumber N Trenutna številka vrstice.
spindleSpeed S Hitrost vretena, običajno vrt/min.
feedRate F Hitrost podajanja.
plungeRate FP Hitrost potapljanja.
xHomePosition XH Domači položaj, kot je konfiguriran v konfiguraciji CAM.
yHomePosition YH
zHomePosition ZH
zSafety ZS Z varnostna raven za menjave orodij in začetek / konec.
zClearance ZU Z raven prostosti za približevanje materialu.
zClearancePass ZUP Z raven prostosti med več prehodi.
zCuttingDepth ZD Z raven rezanja (skupaj).
xFirstPosition XF Prvi položaj prve konture v prvi poti orodja.
yFirstPosition YF
xStartPosition X1 Začetek entitete (začetna točka črte / loka).
yStartPosition Y1
zStartPosition Z1
xPosition X Trenutni ciljni položaj. Končna točka trenutne črte / loka.
yPosition Y
zPosition Z
xRelPosition XR Trenutni ciljni položaj kot relativna koordinata, glede na začetno točko.
yRelPosition YR
zRelPosition ZR
iArcCenterInc I Središče loka, glede na začetno točko.
jArcCenterInc J
iArcCenterAbs IA Središče loka, absolutno.
jArcCenterAbs JA
arcRadius RADIUS Polmer loka.
arcDiameter DIAMETER Premer loka.
arcSweep SWEEP Zamah loka (kot, ki ga pokriva lok v rad, negativen za smer urnega kazalca).
tool T Trenutno orodje.
toolRadius TR Polmer orodja.
toolDiameter TD Premer orodja.
toolpathOrder TOOLPATH_ORDER Vrstni red poti orodja na seznamu poti orodja, začenši z 0 za prvo pot orodja.
toolCalls TOOL_CALLS Kolikokrat je bilo to orodje uporabljeno.
toolpathName TOOLPATH_NAME Ime trenutne poti orodja (določeno s strani uporabnika).
programName PROGRAM_NAME Ime programa, kot ga je uporabnik konfiguriral v konfiguraciji CAM.
xMin X_MIN Najmanjši obseg risbe.
yMin Y_MIN
zMin Z_MIN
xMax X_MAX Največji obseg risbe.
yMax Y_MAX
zMax Z_MAX

Za dodajanje ali spreminjanje G-kod ali M-kod ali drugih informacij v glavi ali nogi lahko konfiguracija preglasi članski spremenljivki header in footer v konstruktorju, na primer takole:

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

Za uporabo absolutnih vrednosti za vrednosti I/J za središče lokov lahko preglasite bloke kode loka takole:

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 samodejno združi datoteko predloge DXF z enakim imenom kot datoteka naknadnega procesorja (če je na voljo) pri nastavljanju ali preklopu naknadnega procesorja. Recimo, da se naknadni procesor imenuje „MyGCode”, implementiran v postprocessors/MyGCode.js. Ustvarite datoteko DXF z definicijami orodij v postprocessors/MyGCode.dxf. Ta datoteka lahko vsebuje definicije orodij, privzete sloje ali oris razpoložljive površine. Opomba: Vsaka vidna vsebina datoteke predloge se pri združevanju samodejno postavi na zaklenjen sloj, tako da je samo vidna, ne pa izbirljiva.