Skip to content

GlossCode 0.1.9

Choose a tag to compare

@github-actions github-actions released this 06 Nov 04:19
· 13 commits to main since this release
2c89ef7

Editor

  • Long runs of moves fold away, the way a subprogram call's lines do. A fold starts at the first line that moves down (Z on a mill, X on a lathe) after one that didn't, so a CAM program's layers fold one per layer: ramp in, cut, ramp out and the move back, under a ▸ button with the number of lines and the depth. Rapids, M codes, tool changes, comments, block-delete lines, called labels and canned cycles always stay visible. A G01 at 10× the cutting feed or more counts as a rapid (some programs reposition with G01 F500); View › Fold long runs of moves sets 10×, 5×, 3× or G00 only. Runs under 10 lines don't fold.
  • Opening a file folds the moves in each section (between comments, tool changes and labels) whose folded lines wouldn't fit in the window, except folds with a problem in them. After that each fold opens and closes on its own, including each place a subprogram is shown. View › Fold all / Unfold all, and the setting to fold on opening, are in the same group. Going to a line inside a fold (click, Find, Problems, the toolpath) opens it; the arrow keys step over a closed fold; the simulation marks the fold's first line. Folding only changes what's shown: line numbers, copying and saving use every line.

Simulation

  • Haas G47 text engraving shows in the toolpath and the Z-by-line timeline. Each G47 line is one grey rectangle, 1.25 × J tall (a shop note says J.120 text comes out .150 high and .120 wide per character), starting at X Y and turned by I, cut on the left, top and bottom. The letters aren't drawn. Letter widths vary and the control doesn't give them, so the length is an estimate (1.0 × J per character, which fits the symmetric layouts and serial-number gaps in proven programs) and the right end fades out, unless the next line is a P1 serial number on the same baseline: then the rectangle ends where the serial starts. While simulating, the tool is a red line across the text, sweeping along it. A G47 line no longer reads as a rapid to Z. The estimate is engrave in the Haas mill tables in gcode-rules.json. New sample program: examples/NAMEPLATE.nc.
  • Haas bolt hole patterns are drilled: G70 (circle), G71 (arc) and G72 (line) put a hole at each point with the active canned cycle, about the current position or X Y on the line. They used to draw nothing. A canned-cycle line with L0 and X Y now moves there without drilling (usually a bolt circle's center). The gloss row reads their words (I RAD, J STARTANG, L HOLES, K STEPANG), and a pattern with no cycle active is flagged.
  • G68 with no R (Haas: the angle is in Setting 72) leaves the toolpath unturned and says so in the position line and in Problems.
  • G68 rotation and mirror imaging are followed: the toolpath after Haas G68 A B R (Fanuc G68 X Y R) is turned until G69, and after Haas G101 X0 / Y0 (Fanuc G51.1) it's mirrored until G100 (G50.1). Arcs, holes, engraving and the cutter comp side follow. A G101 X0 line no longer reads as a move to X0. New gloss words: G68 set.rotate.on, G69 set.rotate.off, G101 set.mirror.on, G100 set.mirror.off.
  • Mill arcs written with R (G02 X2. Y0 R1.) are drawn. They used to be drawn as a dot.
  • Every drilled hole has a small circle where it's drilled, including lathe drilling and tapping on center (Haas and Fanuc lathe G81-G89, now simulated as holes, Okuma G74 at X0 and G77/G78).
  • Cutter comp: moves made with G41 or G42 (and the circles of a G12/G13 pocket) have a grey band on the side the tool's centre is on. It's a fixed width on screen, since the cutter's radius is in the offset table. D00 turns it off, as it turns off the offset. View › Cutter comp side (G41/G42) shows or hides it.
  • Haas G12/G13 circular pockets are drawn: a full circle at each radius from I out to K in steps of Q, at Z, L times (G91: deeper each time). They used to read as a Z move. A G12 line no longer counts as a rapid below Z0.
  • G73 and G83 peck retracts: the Z timeline shows how far G73 backs off after each peck (about 0.01 in / 0.25 mm) and where G83 rapids back down to (about 0.039 in / 1.0 mm above the last peck) with a grey band, since these amounts are machine settings, not in the program. The values are peckRetract in the Fanuc mill tables.
  • Haas G107 cylindrical mapping: the toolpath between G107 A0 Y0 Q and G107 is drawn unrolled, inside a dashed rectangle from the origin across X and one turn (π × Q) up Y. With Q0 the diameter is in Setting 34, so the rectangle's top is left open and labelled "diameter unknown (Q0: Setting 34)". A G107 line no longer reads as a move.
  • Okuma lathe cycles: G71 threading is drawn pass by pass, as the OSP manual describes: M73 (and no M code) cuts D each pass until within D of H - U, then what's left in halves (D/2, D/4, D/8, D/8), then the U finishing pass; M74 cuts D each pass to H - U, then U; M75 cuts pass n at √n × D. With an infeed angle B, each pass starts further along Z: down the left face (M32), the right face (M34) or alternating (M33). Haas one-line G76 threading is drawn pass by pass too (√n × D, or D each pass with P3/P4). G73 grooving cuts a groove along X at the start Z and every K to the end Z. G77 and G78 tapping go over to X, rapid K toward the hole, tap to Z and feed back out. These used to be one straight move.
  • Variables panel, under Active modes: every variable the program sets or reads (#1-#999, and Okuma V and named variables), its value at the line shown, and a start value box. The simulation starts with those values. A variable read before the program sets it, with no start value, is flagged there and in Problems. Common variables (#100-#999, Okuma VC) can be saved to the machine profile with one button, and every program on that machine then starts with them (shown in purple; ✕ removes one).
  • Alarms: a code for an option the machine doesn't have stops the simulation on that line with a red ✕, an "Alarm" in the position line and an error in Problems, and the lines after it are greyed. The first is Okuma G152 (programmable tailstock positioning): machine profiles have a new lathe option, Programmable tailstock, and without it G152 alarms. G152 W moves the tailstock, never the tool, so with the option nothing is drawn (it used to read as a Z move). New gloss word: G152 machine.tailstock.move.

Speed

  • Long programs (ten thousand lines and more) are much faster. Clicking a line, the arrow keys and the simulation moving to the next line only move the highlight instead of reading, checking and drawing the whole program again. Rows out of view aren't laid out, the Z timeline draws only the steps around the current one, and the toolpath is drawn as a few paths instead of one line per move. On a 10,000-line test program a click went from about 6 seconds to under 0.2, and the simulation from about 1 frame a second to 30 or more.
  • Arcs are drawn and simulated with as many straight moves as their size needs (10° each on a mill, a full circle still 36) instead of 36 for every arc, so a program of short arcs no longer simulates 36 times slower than straight lines.
  • The simulation speed menu has a Max speed.
  • A program with very many moves could stop drawing the toolpath with "Maximum call stack size exceeded". Fixed.

Which file to download

Windows, installed GlossCode-0.1.9-windows-x64-setup.exe
Windows, portable GlossCode-0.1.9-windows-x64-portable.zip
Debian, Ubuntu GlossCode-0.1.9-linux-amd64.deb
Fedora, openSUSE GlossCode-0.1.9-linux-x86_64.rpm
Linux, portable GlossCode-0.1.9-linux-x86_64-portable.tar.gz
Sample programs GlossCode-0.1.9-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.