DryRun

Docs

DryRun user guide

The app was re-skinned as DryRun (docs/dryrun-design.md): a dark window, the header DryRun · project name · New · Open · Library · Save, a large viewport, and a right panel with two tabs, Project and G-code. Section 2 describes the window as it is now; some screenshots and step descriptions elsewhere still show the earlier, light design.

This guide is for running DryRun on your own machine and programs. It covers the window, how to describe a machine, which G-code the simulator understands, and, most importantly, what a result does and does not tell you (section 7).

State of the software described here: four iterations are implemented: motion and axis limits (1), collision detection (2), material removal with collisions against the machined stock, computed progressively while you watch (3), and creating and editing a project in the app — machine catalogue, tools, fixture, stock, work zero, saving, and New project in the Project tab's accordion (4). GRBL 1.1 and grblHAL routers are a second controller family next to the DDCS V4.1 (sections 3, 4.2, 6.3, 7.12).

Every behaviour stated below was checked against the source code or by running programs through the real loader, interpreter, checks and the app. Where something could not be verified, the text says so.

Sections

  1. First morningOpen the app in Chrome: on the published site the address /app (Open files or folder… on the home page /); running it yourself, npm…
  2. 1. TermsProject: a folder containing setup.json, the machine.json it names, the STL meshes and the G-code programs.
  3. 2. The windowDefault demo, part.nc (the figure predates the DryRun shell: the regions are the same, the look is not; figure 1a shows the G-code tab and…
  4. 3. The demo projectsThe first three demos use the same generated machine, "Demo gantry 600x600x300 + A": a fixed base with a table and two rails, a gantry…
  5. 4. Describing your machine and jobA project is a folder. Its project file, project.json (format 2: one stock, the setups with their machine, fixture, placement, tools and…
  6. 5. Worked example: a 600×600×300 moving-gantry mill with a rotary A axisGoal: a machine.json whose machine coordinates are the DDCS machine coordinates, so that work offsets copy straight from the controller…
  7. 6. G-code supportThe dialect is controller.dialect in machine.json (section 4.2): DDCS V4.1 (the default), GRBL 1.1 or grblHAL. Section 6.1 is the syntax…
  8. 7. What is checked and what is notRead this section before using a result to decide whether to run a program on the machine.
  9. 8. Performance, memory and choosing a resolutionThe collision check and the material removal run as one pass in a background thread. The listing, the axis-limit warnings and playback are…
  10. 9. TroubleshootingLoad errors appear in red over the viewport. machine.json errors are shown first; setup.json errors appear only once the machine loads…

Controller notes

  1. The Digital Dream DDCS V4.1 G-code dialectWhat the manuals say about the controller's G-code, what is not confirmed, and test programs to settle it on the machine.
  2. GRBL 1.1 and grblHAL in DryRunWhat DryRun simulates for GRBL routers: supported and rejected codes with their error numbers, soft limits, tool changes, and what is not verified.