Repository navigation
GlossCode 0.1.7
Machines
- Machines are picked as machine type → control → machine. Every type and control has a Generic machine, so "Mill › Generic" or "Lathe › Okuma OSP-U10L / OSP-U100L › Generic" works without a profile. Only controls made for the chosen type are listed.
- Your machine profiles are kept in settings.json. New starts from a machine type and control, Copy from another profile, and Add from library from a known model (Haas VF-2 and ST-10, Okuma M560-V and LB3000 EX II), with the numbers we aren't sure of left empty to fill in. Profiles can be deleted: programs that used one open with the Generic machine for its type and control.
- New controls: Okuma OSP-U10L / OSP-U100L and Okuma OSP700L / OSP7000L (lathe), and a Generic control with the common ISO codes. New machine type: router (Centroid, LinuxCNC, GRBL and Generic), which reads like a mill. Haas NGC stays one control: where the 2020 and 2025 manuals differ, the machine profile settles it.
- Lathe G code systems B and C are their own controls: Fanuc lathe system B and C, Mazak EIA/ISO lathe system B (the Mazak default) and C, and Mitsubishi M800 lathe G code list 3, 5 or 7. On these G90/G91 are absolute and incremental, G92 clamps the spindle and with X or Z sets the coordinates, G94/G95 pick the feed, and the turning cycles are G77/G78/G79 (system B) or G20/G21/G24 (system C, where inch and metric are G70/G71 and the repetitive cycles G72 to G78). The Fanuc and Mazak controls stay system A on a lathe.
- New control: Fagor 8055 / 8055i mill. Its statements are in parentheses: (SUB 12) … (RET) subroutines called with (CALL 12) or (PCALL 12, …), (P1 = 2) assignments, (IF (P1 EQ 2) GOTO N40), (MSG "…") and the rest each read as one word, and
;starts a comment. An N at the end of a line is how many times to repeat it. G04 K is in hundredths of a second, G43/G44 turn the tool length on and off, G58/G59 are additive offsets, G60 to G65 are multiple machining patterns and G96/G97 pick how the feed is measured. The patterns read their own words (G60 X is its length, K the number of points, P to V the points to skip) and the simulation machines the active cycle at every point; G66 to G68 irregular pockets read their labels and words, and the simulation traces the pocket's profile. An N at the end of a line runs it that many times in the simulation. - New control: Fagor 8060 / 8065 lathe, with the 8060's own block format. Its cycles match the 8055 lathe's (G66, G68/G69, G81 to G89), with the live tool cycles at G160 to G163 (N is the live tool spindle). G192 S limits the spindle speed, G92 presets the coordinates, G33 K is the thread pitch and G04 K is in seconds. G50 is flagged, since it's a corner mode on this control. The cycle words follow the 8065 T canned cycles manual (Ref. 1209): G66, G68 and G69 take the profile as labels S and E, a local subroutine P or a global subroutine Q, and leave G00, G40 and G90 active; the live tool speed S on G160 to G163 is optional, and these cycles flag a missing G94 feed when G95 is active. The dialect still needs checking against a machine.
- New control: Fagor 8055 / 8055i lathe, with the same statements in parentheses as the mill. Its cycles run once where they're written: G81/G82 straight turning and facing, G84/G85 with an arc, G66 pattern repeat, G68/G69 roughing along a profile, G83 drilling, G86/G87 threading, G88/G89 grooving, and the G60 to G63 live tool cycles. On those lines S can be a profile label or the live tool speed and M a finish stock, and they read that way. G96 is constant surface speed, G92 S limits the spindle speed, G33 L is the thread pitch and G04 K is in hundredths of a second. The simulation draws the passes of each cycle and the profile of G66, G68 and G69; G84/G85 are drawn with straight passes. Its cycles follow the 8055 M programming manual (Ref. 1501): G69 and G81 to G89, the G87/G88 pockets and G210 to G212, with Z as the reference plane and I as the depth.
- New control: Fagor 8060 / 8065 mill. It reads Fagor's own block format:
;and( )comments,$IF/$GOTOand#CALL/#MSGstatements,%Llocal subroutines ending in M17, M29 or #RET and called with LL or #CALL,N10:and[NAME]labels, NR repeats and P parameters (XP1). Its cycles take Z as the reference plane and I as the depth, G04 K is in seconds, G70/G71 set the units and the tool length comes from D. G43, M98 and other Fanuc codes it doesn't have are flagged. The cycle words follow the 8060/8065 canned cycles manual (Ref. 1807) and still need checking against a machine. - New control: Heidenhain TNC 640, Klartext (conversational) programs, as a first draft. A block number, then a function and its words:
L X+10 Y-5 RL F200 M3,CC,C,CR,CT,CP,LP,RND,CHF,APPR/DEP,TOOL CALL 5 Z S4000,BLK FORM,CYCL DEFwith its Q parameters one to a line ending in~,CYCL CALL,PATTERN DEF,LBL/CALL LBL,FNfunctions and Q parameter formulas. Each reads in English like G code does:CYCL DEF 200 DRILLINGreads its Q lines by name (Q200 is the set-up clearance). The checks cover block numbers, the program name, a cycle call with no cycle defined, calls and jumps to missing labels, and the first feed move with no F or with the spindle stopped. The simulation draws lines, arcs, polar moves and tangent arcs, drilling cycles at each call, pattern points and pockets, and follows subprograms, repeats and FN jumps. RND and CHF corners and FK free contours aren't drawn. Program › Renumber numbers the blocks from 0, and File › Open lists.Hfiles. - New controls: Fanuc Series 0 / 00 / 0-Mate (mill: no G93, G150 to G152 normal direction control, G05), and a Mitsubishi M800 lathe with G code list 2, 4 or 6 (G190/G191 absolute and incremental).
- New control: Mitsubishi M700/M70 in the M2/M0 format (mill). G22 L calls a subprogram (L the program, P the repeat count) and G23 returns, G44 cancels the tool length (G49 is flagged), G62 is mirror image, and G22.1/G23.1 are the stroke check.
- New control: Okuma OSP-E100L (lathe), the generation between the OSP-U10L and the OSP-P200L, with the same Okuma lathe tables. On every Okuma lathe G30 now reads as the skip cycle rather than a return home, and on the OSP-E100L and OSP700L M98/M99 read as tailstock thrust low and high. On Okuma controls M99 no longer ends a subprogram (they end with RTS), and Okuma lathes read a number with no decimal point as written, so X1 is X1.000.
- The Home tab is just the ⌂ icon.
Simulation
- The toolpath fits the cutting moves, so a home return far from the part (
G00 X20. Z20.) no longer shrinks the part to a dot. Rapids that go farther run off the edge. - Zoom and pan the toolpath: scroll to zoom about the pointer, drag to pan, Shift+drag (or ⬚ then drag) to zoom to a box, and double-click or Fit to fit again. +/− zoom from the middle.
- Macro expressions follow the Fanuc Custom Macro B rules more closely.
ATAN[a]/[b]gives the angle from 0 to 360 degrees (it used to divide the one-argument ATAN by b).ROUND[-1.5]is -2.ASIN,ACOS,LN,EXP,BIN,BCD,XORand#[expression]variables are read.ANDandORwork bit by bit, as on the control.
Okuma
- The graphic display statements
DEF WORK,PS LC,[..],[..],END,CLEARandDRAWread as one word each, and nothing moves. - A sign then a variable (
Z-V10) reads as one word, soG91 G50 Z-V10is a zero shift in the reading and the simulation. Lon aG75orG76line is the chamfer or rounding size.- The Ctrl+Z end-of-file mark some older systems write is kept, shown as
^Zand read as EOF. - New check
unbalanced-brackets: an expression whose[and]don't pair up.
Which file to download
| Windows, installed | GlossCode-0.1.7-windows-x64-setup.exe |
| Windows, portable | GlossCode-0.1.7-windows-x64-portable.zip |
| Debian, Ubuntu | GlossCode-0.1.7-linux-amd64.deb |
| Fedora, openSUSE | GlossCode-0.1.7-linux-x86_64.rpm |
| Linux, portable | GlossCode-0.1.7-linux-x86_64-portable.tar.gz |
| Sample programs | GlossCode-0.1.7-examples.zip |
The Windows files aren't code-signed yet, so Windows may show "Windows protected your PC" the first time. Choose More info, then Run anyway. SHA256SUMS.txt lists the checksum of every file.