Vai al contenuto
CADCAMFUN
Documentazione

Documentazione

CAM e codice G

Genera percorsi utensile, post programmi macchina, riproduci i dati NC emessi e controlla le prove allegate a ciascun risultato.

Tradotto automaticamente dall'inglese. Vedi l'originale in inglese

Dalla geometria a un programma

@cadcamfun/core espone la funzionalità di produzione sotto cam. I generatori di operazioni trasformano la geometria e i parametri di lavorazione in movimenti del percorso utensile. I post trasformano un programma indipendente dalla macchina in testo di controllo. L'adattatore del generatore supporta anche le richieste di fresatura, tornio e 3stampante D utilizzate dal modulo di domanda.

Il kernel di produzione nativo aggiunge una pipeline ordinata: prepara la parte e le risorse, pianifica o accetta operazioni, calcola i dati di taglio, genera movimento, emette un programma NC, riproduci quel NC in modo indipendente e allega prove. Il testo generato, un programma analizzato e un artefatto di produzione verificato sono output diversi con garanzie diverse.

Emettere un programma esistente
import { cam } from "@cadcamfun/core"

const post = cam.getPost("fanuc")
if (post === undefined) throw new Error("Post is unavailable")
const nc = post.emit(program, { decimals: 3, tolerance: 0.01 })

Rappresentazione del percorso utensile

Un programma contiene percorsi utensile ordinati, ciascuno associato a un identificatore utensile e a un elenco di movimenti. Le coordinate sono millimetri, gli avanzamenti di taglio sono millimetri al minuto e le durate sono secondi. La profondità di taglio è Z negativa rispetto alla parte superiore del grezzo nelle coordinate operative convenzionali. I post convertono le unità di output senza modificare la convenzione del dominio.

Le mosse sono Rapid, Linear, Arc, Dwell, Comment, Cycle, e Orient. I centri dell'arco sono coordinate XY assolute; un post calcola gli offset I/J relativi al controller. Le coordinate XY di inizio e fine corrispondenti denotano un cerchio completo. Un ciclo mantiene l'intento di foratura, sosta, penetrazione o rompitruciolo con il piano di retrazione e l'avanzamento.

I campi rotanti sui movimenti lineari e rapidi esprimono il movimento simultaneo degli assi; Orient esprime il posizionamento indicizzato. Questi campi angolari utilizzano gradi. Un dialetto che non può supportare il movimento rotatorio rifiuta un tale programma invece di scartare i suoi campi rotanti.

Operazioni e API del generatore

La libreria di operazioni comprende profili, tasche, foratura, sfacciatura, incisione, lavorazione di superfici, lavorazione di parti rimanenti, filettatura, smussatura, lavorazione adattiva e generazione multiasse. Ogni operazione espone il proprio contratto parametrico e la funzione di generazione pura. Le dimensioni dell'utensile, i limiti di profondità, la distanza, gli avanzamenti e la geometria devono soddisfare le regole di convalida dell'operazione.

POST /api/toolpaths/generate accetta le impostazioni del generatore, la geometria e gli extra e i resi della stampante gcode, cycles, warnings, stats, programe normalmente prove di generazione. Una richiesta valida che non può generare un programma restituisce 400 con il motivo; un errore di calcolo imprevisto diventa 500. La generazione non salva un percorso utensile.

/api/toolpaths/suggest ricava parametri guidati dagli elementi, feedback, statistiche di taglio, testo operativo e avvisi. /api/toolpaths/parse interpreta il codice G fornito in mosse e statistiche del programma. Suggerimenti e analisi non stabiliscono se un programma sia sicuro o geometricamente corretto.

Dialetti del controllore

Il registro integrato implementa generic, fanuc, grbl, e haas. linuxcnc è un identificatore di post riconosciuto senza un'implementazione in questo registro; getPost può restituire indefinito. Risolvi e controlla il post prima di chiamarlo.

I post condividono un emettitore con formattazione decimale fissa, pulizia dei commenti, modifiche degli strumenti, gestione dell'arco, numerazione delle righe opzionale ed espansione del ciclo. Le impostazioni predefinite sono tre cifre decimali, cicli fissi abilitati, archi IJK, intestazione abilitata e tolleranza 0.01 mm. I formati di arco non supportati ricadono nelle forme supportate e nella linearizzazione del dialetto.

toolNumbers mappa gli identificatori dello strumento in tasche di interi positivi espliciti. Gli strumenti non mappati utilizzano la numerazione di primo utilizzo evitando i numeri occupati. retractBeforeToolChange è opt-in; solleva Z alla posizione più alta raggiunta dal programma prima di un cambio utensile. Anche l'emissione del sottoprogramma è opzionale e dipende dal supporto del dialetto. Esaminare l'output del controller selezionato e la configurazione della macchina prima dell'uso in produzione.

I percorsi utensile ripetuti possono essere emessi come sottoprogrammi. Un percorso utensile si qualifica quando, dopo il movimento di posizionamento, il suo movimento è il movimento di un altro percorso utensile tradotto entro 5 × 10⁻⁶ mm, con gli stessi tipi di movimento, avanzamenti e sensi dell'arco. Ogni gruppo necessita di almeno sei mosse del corpo e deve salvare almeno dodici mosse in totale. I percorsi utensile con cicli fissi o parole rotanti non sono mai candidati (packages/core/src/cam/post/subprograms.ts).

Livelli di produzione e rilascio nativi

POST /api/toolpaths/manufacture accetta CamKernelRequest, un'istantanea CAD della versione 1 con identità, materiale, macchina opzionale, stock, strumenti, operazioni, controlli di qualità e offset lavoro. Le operazioni mancanti richiamano il pianificatore; gli strumenti mancanti utilizzano il supporto taglierina predefinito. Input non supportati, materiale o strumento sconosciuto, geometria della parte vuota, stock non valido e lavoro non pianificabile restituiscono problemi espliciti.

Il kernel calcola gli avanzamenti per operazione, la velocità del mandrino, l'impegno, le stime di potenza e forza, gli avvisi, il tempo e il volume rimosso. Pubblica un programma ed interpreta autonomamente le sue NC emesse. L'artefatto conserva il programma, i taglierini, il testo NC, le statistiche sulle scorte, i risultati delle operazioni, i riassunti delle identità, le rivendicazioni e i problemi.

release è blocked, preview, o verified-program. Guasti gravi o rilascio del blocco NC vuoto. La verifica richiede il superamento delle relative affermazioni; l'attuale regola di rilascio consente prove non supportate di viaggi in macchina pur contrassegnando il programma come verificato. Ispeziona ogni reclamo, compresi gli stati non supportato e irrisolto, prima di decidere se le prove coprono la macchina prevista.

Le richieste riguardano i dati di taglio, i limiti della macchina, le operazioni completate, lo svincolo rapido, lo svincolo del supporto, la scriccatura, la rimozione del materiale, la riproduzione NC, la corsa della macchina e lo svincolo della macchina. Le prove sono legate al NC dell'artefatto e all'identità della fonte. La modifica di NC o la modifica di un'impostazione di origine invalida la connessione a meno che il lavoro non venga valutato nuovamente.

La verifica della riproduzione e i suoi limiti

POST /api/toolpaths/verify riproduce il codice G o un programma rispetto al materiale allineato all'asse. Fornire esattamente una fonte di movimento, uno strumento e i limiti del grezzo. Gli impianti opzionali sono buste allineate agli assi; i solidi o le mesh target opzionali consentono il confronto del tallonamento e del materiale rimanente. Le dimensioni mancanti di scanalatura, gambo, sporgenza o supporto lasciano i controlli corrispondenti non modellati.

Il verificatore campiona il movimento in un campo di altezza e restituisce problemi, statistiche di rimozione, lunghezze di impegno/taglio in aria e un'anteprima di visualizzazione. La tolleranza predefinita è 0.05 mm. La risoluzione predefinita è quella del diametro della fresa e può essere resa più grossolana per adattarsi al budget di calcolo; ResolutionCoarsened segnala che il cambiamento. La risoluzione della griglia limita l'evidenza geometrica che il risultato può supportare.

Un risultato con ok: true non presenta problemi di gravità degli errori. Senza un target non è possibile stabilire la precisione del pezzo finito; senza dispositivi o geometria del supporto non è possibile stabilire la loro distanza. La riproduzione integrata del kernel e i controlli della macchina aggiungono prove specifiche al lavoro acquisito, mentre la verifica autonoma riflette solo la richiesta fornita.

Mappa di implementazione

cam/ir.ts possiede mosse e contratti di programma; operations/ possiede generatori di strategie; post/ possiede l'emissione del controller; generator/ adatta le impostazioni dell'applicazione e analizza il testo; model/ costruisce la geometria della parte; verify/ possiede il replay del campo in altezza; kernel/ possiede l'orchestrazione e le prove della produzione. setup.ts e indexing.ts fornire la convalida del workframe e le trasformazioni delle tabelle indicizzate.

Il salvataggio dei documenti, il controllo dell'accesso ai disegni e la conservazione delle prove di origine appartengono ai servizi collaterali. Vedere Configurazioni per documenti operativi portatili e controlli di persistenza.

Profondità, altezze, feed e impostazioni predefinite

I parametri operativi principali distinguono la profondità di taglio positiva dai piani Z assoluti. totalDepth e stepdown sono richieste lunghezze finite positive; una profondità di 5 mm con stepdown di 2 mm produce passaggi a 2, 4 e 5 mm sotto la parte superiore. Le impostazioni predefinite si applicano solo quando manca un campo, quindi viene mantenuto uno zero esplicitamente consentito.

CampoPredefinito/unitàSenso
clearanceHeight10 mmPiano utilizzato per un posizionamento rapido e chiaro.
safeHeight5 mmAltezza di entrata/uscita dell'alimentazione operativa.
retractHeight2 mmAltezza del parcheggio tra i passaggi; zero può essere valido.
feed / plungeFeed800 / 300 mm/minTaglio positivo e avanzamenti a tuffo.
spindleRpm / coolant10,000 / offMandrino a livello operativo e finalità del refrigerante.

Le altezze devono soddisfare la distanza ≥ sicura ≥ retrazione. Le impostazioni predefinite del profilo sono compensazione esterna, direzione di salita, margine di finitura pari a zero, ingresso diretto, adattamento dell'arco e tolleranza di 0.01 mm. L'angolo di rampa predefinito è 3° e accetta 0.1–45°; Il passo dell'elica è predefinito su 1 mm per giro. Un lato e una tolleranza dichiarati spostano il percorso del centro dello strumento, anziché modificare il contorno di origine.

Queste sono pure operazioni predefinite. Le impostazioni del generatore dell'applicazione e i dati di processo derivati dal materiale del kernel nativo sono livelli di parametri separati; non assumere gli stessi nomi di campo o gli stessi valori predefiniti in essi.

Fonte: packages/core/src/cam/params.ts e operations/profile.ts.

La fresatura di filetti utilizza le altezze del profilo di base ISO 68-1: 0.54127 × passo per filettature interne e 0.61343 × passo per filettature esterne (packages/core/src/cam/operations/thread.ts). Il visualizzatore del percorso utensile presuppone 500 mm/min per i movimenti di taglio senza avanzamento e 1,000 mm/min per i rapidi quando si cronometra un'animazione; queste sono ipotesi di riproduzione, non stime della macchina.

Riprodurre un piccolo programma NC

Questo esempio in memoria taglia una fessura diritta larga 4 mm e profonda 3 mm attraverso un modello grezzo 40 × 40 × 10 mm. Esercita lo stesso verificatore principale utilizzato dall'endpoint HTTP senza salvare un percorso utensile.

Ispezionare la rimozione del materiale e le collisioni
import { cam } from "@cadcamfun/core"

const report = cam.verify.verifyToolpath({
  gcode: "G21\nG90\nG0 X-10 Y0 Z5\nG0 Z0\nG1 Z-3 F200\nG1 X10 F400\nG0 Z5\nM30",
  stock: { minX: -20, maxX: 20, minY: -20, maxY: 20, minZ: -10, maxZ: 0 },
  tool: { kind: "endmill", diameter: 4 },
  fixtures: [], tolerance: 0.05, resolution: 0.25
})
console.log(report.ok) // true for this stock/tool model
console.log(report.stats.removedVolume)
console.log(report.issues)

Cambiare il tuffo in G0 Z-3 produce a RapidInMaterial trovare. L'aggiunta di una lunghezza di taglio o di dimensioni del supporto corte può introdurre risultati del gambo/supporto che la richiesta originale non è stata in grado di verificare. Fornire la geometria target aggiunge il confronto delle parti finite; questo esempio non fa alcuna affermazione su un bersaglio o sugli impianti.

Il verificatore assegna al massimo 2,500,000 celle della griglia e 3,000,000 campioni di percorso, con un budget di lavoro di 80,000,000. Le richieste possono essere ampliate per soddisfare tali limiti. Lo stock di anteprima viene sottoposto a downsampling per la visualizzazione, quindi i suoi pixel non rappresentano un secondo risultato di verifica più preciso.

Fonte: packages/core/src/cam/verify/verify.ts e verify/verify.test.ts.

Quando si riproduce un testo che richiama sottoprogrammi, l'interprete segue M98 annida fino a otto livelli di profondità e interrompe lo srotolamento alle righe 2,000,000, quindi un numero elevato di ripetizioni non può esaurire la memoria (packages/core/src/cam/subprogram-text.ts).

Leggere un artefatto non riuscito o visualizzarne l'anteprima

Un problema del kernel include a tag, severity, stage, message, and optional operation ID, NC line, and point. Follow that stage to the input that caused it: preparation checks stock/material/tools; planning selects strategies; cutting-data checks process limits; generation creates motion; posting writes the controller format; replay/evidence checks the resulting bytes.

  • NoSuitableTool o UnknownTool: controlla l'ID della fresa selezionata e i limiti della geometria, inclusi diametro, lunghezza della scanalatura, sporgenza e la libreria di frese fornita.
  • RapidInStock o HolderCollision: individuare l'operazione/il punto segnalato e ispezionare l'ingresso, i ritiri, lo stock e la distanza del supporto/tavolo. Aumentare l'avanzamento di taglio non ripara una rapida non sicura.
  • Gouge: controlla il lato del contorno, i livelli superiore/inferiore, il sovrametallo di finitura e la geometria target. Il kernel testa un profilo interno della parte esterna come un vero e proprio fallimento di riproduzione.
  • RemainingStock: ispezionare gli angoli inaccessibili, il raggio dell'utensile, la strategia di finitura e la risoluzione della verifica prima di interpretare il volume rimanente.
  • ReplayMismatch: considera il movimento pubblicato e il relativo IR dichiarato come incoerenti e rigenerati dal lavoro acquisito.

Le preimpostazioni della macchina rappresentano classi tipiche, non macchine misurate. Gli ID preimpostati per le istantanee disponibili sono vmc-standard, haas-vf2, hsc-mill, desktop-mill, e cnc-router. Il primo è quello predefinito. Esaminare la corsa effettiva della macchina e le prove di gioco invece di dedurle dal nome visualizzato di una preimpostazione.

Fonte: packages/core/src/cam/kernel/execute.ts, machines.ts, e kernel.test.ts; i campi relativi ai problemi relativi ai cavi sono presenti packages/api/src/cam-kernel.ts.

Genera una tasca e pubblicala

Il livello CAM è una pipeline di funzioni pure: geometria e parametri entrano in un'operazione, l'operazione restituisce a Toolpath delle mosse di rappresentazione intermedia (IR), a Program raggruppa i percorsi utensile e un post processore trasforma il programma in testo specifico del dialetto. Niente prima del post conosce le parole del codice G, quindi lo stesso percorso utensile può essere emesso per GRBL, Fanuc, Haas o il dialetto generico.

pocket.ts — completo, eseguibile con bun
import { cam } from "@cadcamfun/core"

const tool = { id: "t6", name: "6 mm flat end mill", kind: "endmill",
               diameter: 6, flutes: 3, maxRpm: 18000 }
// 60 × 40 × 10 mm block; its top face is at origin.z (Z = 0)
const stock = { x: 60, y: 40, z: 10, origin: { x: 0, y: 0, z: 0 },
                material: "aluminium-6061" }

const params = new cam.PocketParams({
  name: "Pocket 30x20",
  totalDepth: 3,   // mm below the stock top
  stepdown: 1.5,   // two levels: -1.5 and -3.0
  entry: "ramp",   // default is "helix"
})

const ring = [{ x: 15, y: 10 }, { x: 45, y: 10 }, { x: 45, y: 30 }, { x: 15, y: 30 }]
const pocket = cam.generatePocket(params, ring, tool, stock)

const program = { name: "pocket-demo", units: "mm", workOffset: "G54",
                  toolpaths: [pocket] }
const gcode = cam.getPost("grbl")!.emit(program)
console.log(gcode)
Percorso utensile tasca: 30 × 20 mm, 3 mm di profondità, fresa Ø6 Trascina per orbitare · scorri per ingrandire · trascina con il tasto destro per eseguire la panoramica
The moves generated by the example below, drawn in machine coordinates. Dashed amber lines are rapids (G0); green lines are feed moves (G1). Watch the ramp entry spiral down at the start of each 1.5 mm level, then the offset rings work outward (order insideOut). The translucent block is the 60 × 40 × 10 mm stock, whose top face is Z = 0.
Output (GRBL, 85 righe, elide centrale)
(PROGRAM: pocket-demo)
(UNITS: MM)
(WORK OFFSET: G54)
(OP 1: Pocket 30x20 | T1 [t6] | S10000 | F300-800)
G21 G90 G17 G94
G54
(OPERATION: Pocket 30x20)
(TOOL T1)
M3 S10000
(Pocket: Pocket 30x20)
G0 X30.000 Y21.000 Z10.000
Z5.000
Z2.000
Z1.000
G1 X36.000 Z0.732 F300
Y19.000 Z0.643
X24.000 Z0.107
Y21.000 Z0.018
X30.000 Z-0.250
X36.000 Z-0.518
Y19.000 Z-0.607
X24.000 Z-1.143
Y21.000 Z-1.232
X30.000 Z-1.500
...
(the second level repeats the ramp from Z-1.500 to Z-3.000)
...
X18.000
Y27.000
G0 Z2.000
Z10.000
M5
M2

Lettura dell'output dall'alto: i commenti dell'intestazione elencano il programma, le unità, l'offset pezzo e un riepilogo per operazione (numero utensile, ID, velocità del mandrino e intervallo di avanzamento). G21 G90 G17 G94 seleziona millimetri, coordinate assolute, piano XY e avanzamento al minuto. GRBL non ha un cambio utensile, quindi il primo strumento viene annunciato come commento e le modifiche successive diventano (CHANGE TO TOOL Tn) seguito da M0. The pocket starts with rapids down through clearance (10), safe (5), and retract (2) heights, then ramps at the 300 mm/min plunge feed. Once the ramp reaches depth it switches to the 800 mm/min cutting feed. The program ends with M5 (arresto del mandrino) e M2.

La geometria vuota viene segnalata, non saltata silenziosamente

Se la regione non è un confine chiuso, l'operazione emette il commento (nothing to cut: no closed boundary) e nessun movimento. Passa i punti dell'anello come { x, y } oggetti. Cerca nei programmi generati quel commento quando un'operazione non produce tagli.

Parametri di funzionamento e default

La classe di parametri di ogni operazione estende gli stessi campi comuni. Le altezze sono valori Z assoluti e devono soddisfare una distanza ≥ sicura ≥ retrazione; lo schema rifiuta qualsiasi altra cosa. Le profondità sono distanze positive sotto la parte superiore del titolo; viene ritagliato l'ultimo passaggio totalDepth.

Campo comunePredefinitoSenso
id, nameoperation, OperationIdentità mostrata nei commenti e nei riepiloghi.
clearanceHeight10Altezza per gli spostamenti tra le operazioni.
safeHeight5Altezza per gli spostamenti tra regioni.
retractHeight2Altezza prima di immergersi/alimentarsi.
totalDepthnecessarioProfondità positiva sotto il top azionario.
stepdownnecessarioProfondità positiva per passaggio.
feed800Avanzamento di taglio, mm/min.
plungeFeed300Avanzamento per l'immersione e la rampa, mm/min.
spindleRpm10000Velocità del mandrino.
coolantoffModalità refrigerante.
OperazioneCampi specifici (predefiniti)
Pocketstepover 40 (% del diametro, 1–100), allowance 0, finishPass falso, climb vERO, entry helix | ramp | plunge, order insideOut | outsideIn, helixPitch 1, helixRadius 0 (= raggio utensile), rampAngle 3° (0.1–45), tolerance 0.01, toolCentre falso.
Profileside outside | inside | onLine, climb vERO, allowance 0, leadIn direct | ramp | helix | arc, helixPitch 1, helixRadius 0, leadRadius 2, rampAngle 3°, tabs [] (ogni scheda: position 0–1 lungo il sentiero, width, height), arcFit falso, tolerance 0.01.
DrillNO stepdown o feed. peck 0 (un colpo), chipBreak falso, dwell 0 s. I cicli di penetrazione mantengono una distanza di 0.5 mm sopra l'ultima profondità e le ritrazioni per rottura truciolo sono di 0.5 mm.
Facestepover 60, overshoot 0 (= raggio utensile + 1 mm), alongX vERO, tolerance 0.01.
Engravetolerance 0.01.
ThreadFresatura di filetti; profondità del profilo 0.54127 × passo interno e 0.61343 × passo esterno.
Adaptive, riposo, superficie, smusso, multiasseUlteriori strategie esportate dallo stesso modulo; aggiunge lo smusso tipOffset 0.2 e lead 1.

Costruisci parametri con new cam.PocketParams({ ... }) (o la classe corrispondente) in modo che i valori predefiniti vengano applicati e i vincoli vengano controllati una volta. Ogni operazione viene anche esportata come coppia, ad esempio cam.Pocket = { Params, generate }, per il codice che viene inviato in base al tipo di operazione.

Post processori e opzioni di output

I post sono registrati in base all'ID in cam.posts e alzò lo sguardo con cam.getPost(id). IL linuxcnc L'ID è riservato ma non implementato, quindi getPost("linuxcnc") ritorna undefined. Controllalo prima di chiamare emit.

InviareCicli fissiUnità di abitazioneAssi rotantiCambio utensileCornice del programma
genericsÌsecondisÌTn M6nessuno
grblno (espanso alle mosse)secondirifiutatocommentate, allora M0 pausanessuno
fanucsÌmillisecondisÌTn M6 + G43 Hn% / O####, sottoprogrammi
haassÌmillisecondisÌ, G234 TCPTn M6 + G43 Hn% / O####, sottoprogrammi

Tutti e quattro accettano archi come ijk o radius; linearize è sempre possibile. Un programma le cui mosse comportano angoli rotanti viene rifiutato da GRBL anziché perdere silenziosamente gli angoli.

opzione emettiPredefinitoEffect
decimals3Cifre dopo la virgola decimale.
lineNumbersspento{ start, step } scrive N parole, per esempio N10, N20.
useCannedCyclestrueEmettere cicli di perforazione dove il dialetto li prevede.
arcModeijkijk, radius, o linearize.
headertrueScrivi l'intestazione descrittiva del commento.
tolerance0.01Tolleranza della corda quando gli archi sono linearizzati.
toolNumbersordine di primo utilizzoMappa dell'ID utensile nella tasca del carosello. Le voci mancanti mantengono la numerazione di primo utilizzo senza entrare in collisione con le tasche esplicite.
retractBeforeToolChangespentoAlzare Z al punto più alto raggiunto prima del cambio utensile.
stampassenteTimbro di intestazione. Lascialo fuori per l'output deterministico.
subprogramsspentoScrivere percorsi utensile ripetuti e tradotti una volta come sottoprogramma incrementale (Fanuc e Haas).
Stesso programma per un controllo Fanuc con numeri di riga
const text = cam.getPost("fanuc")!.emit(program, { lineNumbers: { start: 10, step: 10 } })
// %
// O1000
// (PROGRAM: POCKET-DEMO)          comments are upper-cased
// ...
// N10 G21 G90 G17 G94 G40 G49 G80
// N20 G54
// N30 T1 M6
// N40 G43 H1
// N50 M3 S10000

Byte identico per impostazione predefinita

Le opzioni che modificano l'output (ritrazione cambio utensile, sottoprogrammi, timbri) sono disattivate per impostazione predefinita, quindi la rigenerazione di una richiesta memorizzata produce un testo identico. IL cam/gcode il passaggio del flusso di lavoro si basa su questo per rilevare i programmi non aggiornati.

Prima di inviare un programma a una macchina

  1. Conferma il grezzo: dimensione, origine del suo angolo minimo e che la sua faccia superiore sia a livello origin.z. Ogni profondità è misurata da quella faccia.
  2. Controllare le altezze rispetto agli infissi. Le altezze di sicurezza, di sicurezza e di ritiro sono valori Z assoluti nell'offset pezzo.
  3. Scegli il post per il controller effettivo e conferma che è implementato (getPost ha restituito un post).
  4. Riproduci il programma con la verifica e leggi ogni numero. Non considerare l'assenza di un commento di errore come una prova.
  5. Se il testo NC è stato modificato manualmente, rigenerarlo o verificarlo nuovamente. Le prove calcolate per il testo originale non si applicano più.
  6. Eseguire un funzionamento a secco sulla macchina sopra la parte con l'override dell'avanzamento ridotto, come faresti per qualsiasi nuovo programma.

Il codice generato non è una garanzia della macchina

Il kernel e i post controllano la geometria, i limiti e le regole del dialetto di cui sono a conoscenza. Non conoscono le vostre attrezzature, la lunghezza degli utensili o le condizioni della macchina. Un programma verificato è una prova, non una garanzia di un taglio sicuro.

Affermazioni sull'evidenza del kernel nativo

Oltre ai generatori mostrati sopra, il kernel nativo restituisce un artefatto con dieci affermazioni. Ciascuno lo è passed, failed, unsupported o unresolved, con una stringa di dettaglio. Il livello di rilascio li riassume: blocked, preview o verified-program.

ReclamoStato di esempioDettaglio restituito dal kernel
cutting-datapassatoOgni operazione viene eseguita con dati di taglio calcolati per Acetal POM-C (Delrin) e la sua taglierina
machine-limitspassatoVelocità del mandrino, avanzamento, potenza, coppia e deflessione della fresa entro i limiti
operations-completepassato3 operazioni generate; ogni funzionalità pianificata ha un'operazione
no-rapid-in-stockpassatoNessuna mossa rapida tocca il titolo come riprodotto
holder-clearancepassatoGambo e supporto stanno lontani dal grezzo (replay del campo di altezza dell'asse 3)
no-gougepassatoNessun taglio sotto la parte oltre 0.030 mm (una cella di gioco laterale)
material-removedpassatoLo stock riprodotto corrisponde alla parte entro 0.110 mm
nc-replaypassatoInterpretato 3035 movimenti NC indipendentemente dal post; le estensioni concordano entro 2.0e-3 mm
machine-travelnon supportatoLa macchina non ha limiti di corsa configurati
machine-clearancepassato3035 mosse controllate; il supporto e il gambo rimangono ad almeno 6.500 mm dal tavolo

Le righe sono il risultato reale per il pezzo grezzo POM nella guida di produzione nativa: 3 operazioni, 3071 righe NC, rilascio verified-program. Anche la postazione della macchina dell'artefatto può esserlo linuxcnc nello schema, ma non è implementato alcun post LinuxCNC, quindi i preset non lo utilizzano.