SYS: ONLINEBUILD: v2.0

USER GUIDE

Troubleshooting

Each section below is one problem, phrased the way you might search for it, with what the message means and what to do. The exact wording of an error is quoted where the app has one, because that wording is the fastest way to find the right answer here. For how the Plot dialog, transports and machine profiles work in the first place, see Plotting and cutting. If none of these fits, the last section says what to send us.

My cutter is not listed

Press Plot in the top bar. Under Connection, with Transport set to USB (direct), the dialog reports what it found on the USB bus:

  • "Cutter connected: …" followed by the machine's name and USB ids. You are ready to cut.
  • "No cutter detected on USB. Check the cable and power, then Refresh." Nothing LineaForge recognizes is plugged in and powered on. Check both ends of the cable, switch the machine on, wait a few seconds, then press Refresh.
  • A Which cutter picker appears only when more than one recognized cutter is attached, and lists them by USB id so two machines can be told apart.

Only machines LineaForge knows are listed: the Skycut C, D and V series, and the machines built on them (Starcraft SOLO, Siser Romeo and Juliet), by their USB identity. Every one of them presents the same USB identity, so the app asks the machine what it is and lists it by the model it reports. A model sold under several names is listed by the machine you have selected when it is one of them, and otherwise by the original with the other names alongside, so pick yours under Machine. If you see "This cutter reports a model this build does not recognise yet", pick your machine by hand under Machine and send us the model string shown; that is what lets the app recognize it next time.

If your machine is a different make, it will never appear on USB. Open Manage machines…, add Generic HPGL cutter or Generic G-code plotter, tune it, and send over Serial / COM port or Printer/driver queue instead. If you get an unlisted machine working, send the settings in and it can be confirmed and added.

Also check the Transport. A machine on your network is reached with Wi-Fi (network), and a plotter on a COM port with Serial / COM port; neither shows up under USB. The choice is remembered per machine, so a cutter on Wi-Fi and a plotter on a COM port each keep their own.

The job was sent but the machine did nothing

After you press Cut, the Plotter dialog reports what actually happened, under Connection. A successful send prints a line with the byte count, the route that carried it (the USB printer-class interface or the raw USB endpoint), and where it went, followed by: "If the machine did not move, it received this and ignored it, which is a different problem from a failed send."

That distinction is the whole point. A job that arrived and was ignored usually means one of:

  • The wrong machine profile. A Skycut sent G-code, or a G-code plotter sent HPGL, receives the bytes and does nothing with them. Check Machine in the Plot dialog.
  • The machine is not ready. Many cutters ignore data while offline, paused, or mid-way through a panel menu. Put it in its ready or online state and send again.
  • Force or speed out of range. Values are now held to what the machine accepts (Skycuts take force 1–160 and speed 1–13), but a job saved by an older build or typed for a different cutter is brought back into range when sent. Generic HPGL accepts anything, because every plotter has its own scale.
  • A single-head machine with drawn objects. On a Skycut V, anything marked draw runs on whatever tool is loaded. Check with a pen before a blade.

Cutting has been confirmed on hardware on a Skycut D-series only. The C-series and V-series share its command language but have not been run, and print-and-cut has not been confirmed on any machine. If your machine ignores a job, please report it with the byte-count line shown under Connection after the send and the output of USB diagnostics…, which is under the USB transport in the same section. Use a pen before a blade until a machine is confirmed.

USB cutter not found on Windows

Windows only lets a program talk to a USB device through a driver it can speak. LineaForge tries two routes, in order:

  1. The USB printer-class interface. A Skycut presents itself to Windows as a USB printer-class device, which Windows hands to its own built-in driver. LineaForge connects through that driver, the same way the manufacturer's software does. This needs nothing installed: no driver, no Zadig, no administrator rights, and it does not interfere with your existing Skycut software. You still just pick USB (direct).
  2. Direct USB, used only when nothing matched on the printer-class interface. On Windows this works only for a device bound to a WinUSB-class driver. A machine running its manufacturer's own driver is detected but cannot be opened, and nothing in LineaForge can change which driver Windows has bound.

The error you see says which route failed and why:

  • "Windows won't let this app open the cutter over USB (libusb: NotSupported)…" The direct route hit the driver gate, and the message goes on to say the machine was not found on the printer-class interface either, "which is the route a Skycut normally uses, so it may be connected by Wi-Fi or a COM port rather than USB, or powered off." Check the cable and the Transport, then press USB diagnostics… and send the result.
  • "The cutter is open in another program. Quit the Skycut software (or Sure Cuts A Lot) and try again." Another program holds the connection. Only one program can talk to the machine at a time.
  • "The cutter is in use by another program. Quit Sure Cuts A Lot (or other cutter software) and try again." The same problem, reported by the direct route.
  • "The cutter is no longer at that USB address. Unplug it, plug it back in, then press Refresh." or "The cutter could not be opened: the system no longer has a device there…" The device went away between being listed and being opened. Reconnect it and refresh.
  • "Can't access the cutter (permission denied). Try reconnecting it." The operating system refused the open. Reconnect, and on Windows try a different USB port.
  • "This device has no OUT endpoint to receive data, so it cannot be driven over USB. Use Transport → Printer/driver queue or Serial instead." The device offers no channel LineaForge can write to. Use one of the other transports.

USB diagnostics… is the thing to send with any report. It lists what LineaForge can see on the USB bus and, the useful part, whether it can open and talk to your cutter right now, on both the printer-class interface and the raw USB one. It is copied to your clipboard when it runs. It tells apart the three faults that look identical from the screen: no machine found, a machine found that Windows will not let us drive, and a machine that receives the job and ignores it.

The Skycut shows up as a printer

That is normal. A Skycut is a USB printer-class device: Windows lists it under printers and binds its own printer driver to it. This is not a mistake to fix, and you do not need to remove it or install anything else. LineaForge talks to the machine through that same interface when you choose USB (direct), which is the route the manufacturer's own software uses.

If the cutter is also installed as a Windows printer with a queue of its own, Printer/driver queue is a second way to reach it: the job goes through the Windows print system. Direct USB is the one to try first.

Sending over Wi-Fi or a serial port fails

Wi-Fi (network): enter the IP address the cutter shows for its own Wi-Fi. Skycuts listen on port 8080, which is filled in for you. Press Test connection before sending; it checks the address and asks the cutter what it is, and a Skycut answers with its model. The messages mean:

  • "Enter the cutter's IP address." The field is empty.
  • "'…' is not an address this machine can reach" or "'…' did not resolve to an address." The address is mistyped, or your computer is on a different network from the cutter.
  • "Couldn't connect to …" The address resolved but nothing answered on that port. Check the cutter's Wi-Fi is on and that the port matches.

Nothing needs installing for Wi-Fi: it is a plain network connection, the same one the Skycut software uses, so none of the USB driver questions apply. The Wi-Fi transport has not yet been run against hardware; if it fails, Test connection says what happened, and that text is what to send.

Serial / COM port: choose the port from the list and press Refresh if it is missing. "No serial port selected." means the list is empty or nothing is chosen. "Couldn't open COM3: …" usually means another program has the port open. For G-code machines, "Timed out waiting for the controller on …" means the controller never acknowledged a line: check the baud rate and that the machine is awake, and "Controller reported: …" quotes the controller's own error or alarm.

Fonts are missing

There are two kinds of font in LineaForge, and they go missing for different reasons.

Fonts installed on your computer are read when the app starts. If you install a new font while LineaForge is running, restart it to see the font in the list.

Google Fonts added to a project (through the Fonts button on the top bar and Add to Project) are downloaded into LineaForge's own data folder on this computer. They are not stored inside the .lf file, so a document opened on another machine, or after the app's data folder is cleared, needs the same family added again from Fonts. The panel's own messages:

  • "Could not reach Google Fonts. Check your internet connection." Adding a font downloads it, which needs a connection. Searching and browsing do not: LineaForge carries a catalog of about 1,950 families inside it, so the list is never empty.
  • "This build has no Google Fonts API key, so this is the list included with it. Adding a font still works; the list just can't refresh." Not a fault. Only refreshing the catalog needs the key.
  • "Could not download font…" or "Font download failed": the connection dropped part-way. Try again.

An image will not import

Import → Image… accepts PNG, JPEG, GIF, BMP and WebP. Other formats (HEIC, TIFF, PSD, PDF) are not read; export the picture as PNG first. For a vector file, use Import → SVG… or Import → DXF…, or Open…, which takes all of them.

A failed import shows a dialog titled Could not import "name" with "The file was left untouched. Nothing in your open documents has changed." and the underlying reason under it:

  • "Could not decode image." The file is damaged, or its extension does not match its contents (a HEIC renamed to .jpg, for instance). Re-export it.
  • "Could not read …" followed by a system message. The file is unreadable: on a disconnected drive, a cloud placeholder that has not been downloaded, or blocked by permissions. See "The app says it could not read a file".

If the import succeeds but you see nothing, the picture may have landed off-screen. A large image lands at one pixel per world pixel, so anything much over 1150 pixels across is bigger than a 12 in artboard. Use View artboard or View selected in the Zoom fly-out.

An image with a transparent background is traced on the way in when Trace cut lines on imported cutouts is on in Preferences; that brief pause is the trace running, not a hang. Very large images used to freeze the app during this step and no longer do.

An SVG imports at the wrong size. The file's program and LineaForge disagree about DPI. Set SVG import DPI in Preferences to the program the file came from (Illustrator 72, older Inkscape 90, CorelDRAW and ScanNCut 96) and import again. An SVG that states its size in inches or millimeters rather than pixels is still read as pixels; if changing the DPI does not fix it, that is the reason.

An SVG imports but replaces my artboard. Switch off Resize artboard to the imported SVG in Preferences; see Preferences, updates and your account.

The bottom of a dialog is cut off

On a display with scaling turned up (Windows at 125% or 150%, or a small laptop screen) a tall dialog can be taller than the window. Since 0.7.7 every dialog fits the window and scrolls when its contents do not, and the same applies to the floating panels (Color Chooser, Warp, Array, Kerning and the rest) and to the start screen. A floating panel's title bar stays put while its contents scroll, so it can always be dragged out of the way.

If you still see a dialog running off the screen, update to the current version (Help → Check for updates…) and, if it persists, tell us the dialog's name, your screen size and your display scaling.

One known gap remains: a right-click menu longer than the canvas is cut off at the bottom. A menu that would not fit below the pointer opens upward instead, so right-click nearer the top of the canvas, or make the window taller. The same commands are available from the tool rail, the Inspector and the Objects panel.

The app says it could not read a file

Any failed open, import, save or export shows a dialog titled Could not open "name", Could not import "name", Could not save… or Could not export…, with "The file was left untouched. Nothing in your open documents has changed." and the underlying error quoted in red. That quote is the useful part:

  • "Could not read /path: No such file or directory": the file has moved, or sits on a drive or network share that is no longer connected.
  • "Could not read /path: Permission denied": your account cannot read that location. Copy the file to your Documents folder and open it there.
  • A cloud placeholder (iCloud, OneDrive, Dropbox "online-only") must be downloaded before it can be read. Open the folder in Finder or Explorer and make the file available offline.
  • "Could not save /path: …": the destination is read-only, full, or locked by another program. Use Save As… to a different location; your document stays open with its changes.
  • A .lf file from a much older build opens, but any document setting it did not record (unit, registration marks, printable margins) starts from the app defaults.

SVG files that begin with a <!DOCTYPE> declaration failed to import before 0.2.1, with no message at all. If a file that worked elsewhere imports as an empty canvas, make sure you are on a current version.

Activation failed / device limit reached

The activation screen asks for your NAME, EMAIL and ACTIVATION PIN (in the form XXXX-XXXX-XXXX; lower-case letters are capitalized for you). Press ACTIVATE. What the red message means:

  • "Could not reach the activation server. Check your internet connection." Activation needs a connection to rabidsample.com. Connect, check that a firewall or proxy is not blocking the app, and try again.
  • A message about the device limit, quoted from the activation server. A license covers two devices, and both slots are taken. Free them from a computer that is still activated: open Account, press Deactivate all installs, then Deactivate everything. Every machine on the PIN is signed out and must re-activate, including that one. Then activate here.
  • A message saying the PIN is unknown or not valid, quoted from the server. Check the PIN against your purchase email; every character matters.
  • "Activation failed (…)" with a status code, or "Unexpected server response". The server answered but not usefully. Wait a few minutes and try again; if it persists, contact us with the exact text.
  • "Activation did not complete. Please try again." The server accepted the request but did not confirm it. Try once more.

If the app was activated and now shows the activation screen again, the license on this computer no longer matches it. The license is bound to this computer's device ID (the hardware identifier on a Mac; on other systems an identifier kept in the app's data folder), so a copied app data folder, a cleared one, or a reinstalled operating system can leave it not matching. Re-activate with the same PIN. If both slots are now taken by machines you can no longer reach, use Help → Contact & feedback… and include your PIN and the email you registered with.

The update check fails

Help → Check for updates… reports every failure in red, so a check that could not complete never looks like "you are up to date". The launch-time check, by contrast, is silent on failure by design.

  • An error mentioning a connection, timeout or host means the update server at rabidsample.com could not be reached within eight seconds. Check your connection, and whether a firewall or proxy blocks the app. Press Check again.
  • An error mentioning a signature means the manifest or the download did not carry a valid LineaForge signature and was refused. Nothing was installed. This should never happen on a healthy connection; please report it with the exact text.
  • If Update now fails part-way, the error is shown in the dialog and the version you were running keeps working. Run the check again later.

If the update dialog shows "Checking for updates…" and never moves on, close it and open it again; it checks afresh every time it opens.

The app opens frozen on the start screen

Versions before 0.3.2 could open with the new-document screen on show but completely dead when an update was waiting: the update prompt had opened behind it. Pressing Escape frees the window. Current versions open launch-time prompts in front of the start screen, so if you see this you are on an old build; take the update when it is offered.

I lost work after a crash

If the editor hits an error, you see a screen headed Something went wrong with the message "The editor hit an error. Your last autosave should still be on disk, and it will be offered the next time the app starts." and the error details in a box. Press Copy details and paste them into your report. Reload the editor restarts the editor in place. Some errors show a Dismiss button too, because the app may well still be usable.

Recovery works like this:

  1. With Autosave recovery snapshots on in Preferences (it is on by default, every 2 minutes), LineaForge keeps a private copy of every document with unsaved changes. It never writes to your own .lf file.
  2. The next time you open LineaForge, before the start screen, it asks Recover unsaved work?: "LineaForge autosaved name about 5 minutes ago, and those changes were never saved to a file." With several documents it lists them all and restores them as tabs.
  3. Press Restore to get the work back, or Discard to start fresh. The prompt cannot be dismissed with Escape or a click outside: the choice has to be deliberate, because Discard destroys the only copy.
  4. Restored documents are still unsaved. Save them straight away (Cmd/Ctrl+S); until you do, autosave keeps protecting them.

What is not recovered: anything drawn in the last interval before the crash, a document you had autosave switched off for, and work you discarded with Don't save when closing (that clears the snapshot too). Only documents with something actually drawn in them are offered, so you will not be asked to recover blank ones.

If a crash reports RuntimeError: Unreachable after node editing a design with a large embedded picture, that was the editor running out of memory for its undo history, fixed in 0.7.3. On a current version, please send the copied details.

Lines do not weld / boolean gives an odd result

The Boolean fly-out on the tool rail offers Union, Intersect, Difference, Exclude and Knockout; Join is the separate button with the J shortcut. Common reasons for an odd result:

  • The pieces only touch; they do not overlap. Shapes that meet edge to edge, with no overlap, do not reliably weld: whether a shared edge merges comes down to rounding, so you get hairline slits or an unexpected hole. Overlap the pieces slightly (nudge one into the other, or offset it outward a fraction) and union again.
  • It is text, and nothing changed. Select the text object on its own and press Union: with one object selected the button welds that object's own overlapping outlines, which is what script lettering needs before cutting. Counters, the holes in o, a and e, are preserved. If no letters overlap, nothing is changed and the curves are left intact, which is deliberate.
  • The result keeps or loses the wrong hole. Booleans decide what is solid by the same rule the canvas uses to draw fills, so what you see filled on screen is what counts as solid. Switch fills on with the lower toolbar's fills toggle and look: a hole that shows filled will be treated as solid by the weld too. The dependable way to make a hole is Difference: draw the hole as its own shape on top and cut it out of the shape beneath.
  • A difference or intersection comes back empty or unchanged. Earlier versions could do this with a curved shape lying wholly inside a straight-edged one, such as a circle over a rectangle; the current engine handles it. Update if you see it.
  • Join says "Nothing to join: the selection has no open paths." Join welds open paths into one outline; a closed shape has no ends to join. Break it open first with the Knife, or use the Boolean tools for closed shapes.
  • Join reports chains but "none closed". The ends do not actually meet. Draw the bridging line so each end lands on a loose-end dot, the red marks where open paths end: they snap, and the dot fills in solid when the snap has taken. Join never invents a bridge across a gap you did not close. Note that dragging a whole object with Select snaps its box, not its ends; drag the individual node with Edit nodes instead.
  • Hidden or locked objects are skipped. A right-click on a palette swatch, or Cmd/Ctrl+A, selects only what can be edited.

Round corners does nothing

The Round corners tool (C) works like this: click an object that has corners, then drag anywhere up or down to set the radius, or type one in the floating panel. Click a corner handle to round only that one, Shift-click to add more. The status line at the bottom of the canvas says "Click an object with corners to round" until an object is picked.

If nothing happens:

  • The shape has no corners. A circle, an ellipse, or any node that is already smooth has nothing to round; the tool finds corners only where two segments meet at an angle (of more than about a degree). Convert a node to a corner first with the Edit nodes tool (Alt/Option-click it).
  • The shape was drawn with the Pen on a version before 0.9.1. A click that moved a pixel before release left tiny handles on the point, which counted as a curve, so the tool found no corners. Update; current versions treat those as corners.
  • The radius is 0, or the panel field is empty. Drag, or type a value and press Enter.
  • You are looking for the Corner section in the Inspector, which rounds or chamfers the selected node of a path by an exact size. It is the same operation on a single node.

Round corners left an inside corner small, or skipped it

In 0.9.7 and earlier, rounding several corners at once measured each corner against edges the previous ones had already shortened, so the corners came out at different radii, and inside corners, which usually sit on the short edges between outside ones, came off worst. A corner where a curve meets a line or another curve (the join of a circle welded onto a rectangle) was not offered at all. Update; current versions round every picked corner to the same radius where it fits, and treat curved joins as corners.

A corner can still come out smaller than the radius you typed when its edges are too short to hold it: a rounded corner never reaches past the next node along an edge, and two picked corners on one edge share it. Pick fewer corners to give the ones you want more room, or delete extra nodes along the edge with Simplify nodes first.

Two things to expect from the result: it comes back as a plain path, so a text object or a variable-width stroke profile on it is dropped, the same as after Simplify nodes or Warp to path; and rounding compounds if you round an already-rounded corner again, so undo first if you want a different radius.

Open Print (Cmd/Ctrl+P) and check Scaling: Fit to page scales the artboard to fill the printable area; Actual size prints at 1:1. The measurements under the preview state the paper size, the printable area, and "scaled to N%" whenever the output is not 1:1.

  • Printing at Actual size came out at double size in versions before 0.7.8, on both Mac and Windows. Update.
  • Printing selected objects used to move them to the corner and scale them to fill the sheet (the odd "scaled to 117%"). Since 0.7.8 a selection prints where it sits on the artboard, and Fit to page scales the page, not the selection.
  • The warning "… of the artwork falls outside the printable area and will be cut off. Choose a larger paper, or Fit to page." now measures what you have drawn, not the paper's own margin. If it appears, something you drew really will be clipped at this size: choose a larger paper, a borderless paper size if your printer offers one, or move the artwork in from the edge. Fit to page keeps everything on the sheet but is no longer 1:1.
  • "Page size and margins from …" under the preview says where the printer's capabilities came from. On a Mac with a driverless printer the margins come from the system itself, which is the same source the system print panel reads; an old printer with only a description file may report margins that do not match the paper. If so, print once with a ruler-checkable dimension (a 100 mm line) and measure it.
  • Line fills, shadows, extrusions and variable-width strokes were missing from prints before 0.8.0. If they are missing on a current version, report it.

Print & Cut has its own print dialog, Print & cut: print with marks, opened with the Print with marks… button in the Plot dialog's Print & Cut section. It prints the artboard and marks at exact 1:1 scale. Its Fit to page (breaks alignment; proofing only) checkbox is off by default; leave it off for the sheet you intend to cut.

Registration marks are not detected

Print and cut means printing the sheet with registration marks, loading it into the cutter, and letting the machine's camera find the marks so the cut lines up with the print. Nothing has been confirmed on hardware yet: the command language is checked against captures from the machines, but no registration-mark job has been run end to end. Use a pen before a blade, and please report what you see.

Set up and check:

  1. Open Plot. On the Output tab, under Print & Cut, tick Registration marks (print & cut). The marks appear on the artboard at all times, and the setting is saved with the document. Choose Placement (Around objects or Relative to page), Mark size (L 20 × 20 mm or L 9 × 9 mm), the mark offset, Line thickness (mm) and Origin corner.
  2. If the section shows "Marks extend past the page. Reduce the mark offset above or the design size.", a mark would fall outside the printable area, which is the one thing that stops the cutter aligning. Fix that before printing.
  3. Press Print with marks… in that section. The preview shows the sheet, the printable area and every mark on it, and the print is made at exact 1:1 scale. Leave Fit to page (breaks alignment; proofing only) unticked: a rescaled sheet puts the marks in the wrong place, so the cut will not register. Do not print the marks from the ordinary Print dialog either.
  4. Load the sheet and, as the section says, set the origin over the mark named there (the corner chosen under Origin corner), then press Cut to send the aligned job.

If the machine still cannot find the marks: use the larger L 20 × 20 mm size and a thickness the camera can see; print on plain, matte, unlined media; keep the sheet square on the mat; and make sure the printer printed at actual size. Marker tuning (experimental) under the mark settings has Cut orientation and Working field (FSIZE) controls for a machine whose cut comes out rotated or mirrored relative to the print; change one thing at a time with a pen loaded.

Still stuck?

Use Help → Contact & feedback… and choose Bug report. The form is emailed to the LineaForge team, and it sends your app version, platform and activation details along with it, so those need no looking up. If you write to us any other way, quote the version number from Help → About (for example "About LineaForge 0.9.2"). Please include:

  • The exact error text, copied from the screen or pasted from Copy details on the crash screen.
  • What you did just before, step by step, and what you expected to happen.
  • For cutter problems: the machine and its series, the Transport, the byte-count line shown under Connection after a send, and the output of USB diagnostics….
  • For file problems: the file itself if you can share it, or at least which program made it.