Quick answers to the questions and problems users hit most often. Looking for step-by-step fixes? See Fixing common problems in the guide.
No questions match your search. Try fewer words, or ask on GitHub.
A macOS menu-bar app suite for designing and printing wrap-around wire/cable labels, originally built to print Brady M610/M611 labels directly from Vectorworks ConnectCAD circuit exports. It now also supports custom designs and printing from your own CSV/XLSX data.
The four apps split responsibilities so only one privileged piece talks to the printer. VectorLabel Engine is the menu-bar hub that owns the USB printer and prints; Auto Print watches your export folder and shows the print window; Template Designer and Custom Designer create labels. They coordinate through a shared queue/status folder, and the designers/Auto Print auto-start the Engine when needed.
macOS 14 (Sonoma) or newer, on an Apple Silicon Mac (the apps are arm64-only). The installer still lets you continue on an older macOS but warns it may not work correctly. No extra software is required for end users — the USB library (libusb) is bundled inside the app.
Download the latest signed release from the Downloads page and run the guided .pkg installer, which installs all four apps. Then launch VectorLabel Engine to get the menu-bar icon.
On first launch, VectorLabel's setup screen — the same screen that offers supply groups — lets you choose which sample (starter) templates to install into your Templates folder. On a fresh install each template defaults to install; when you're updating an existing install they default to skip (you'd already have them) — flip any row individually, or use the "Install all & clear existing" preset for a clean factory set. The sample templates are built into the app itself; the installer no longer copies them (earlier versions' .pkg did). You can reopen the setup window any time from Preferences ▸ Updates ▸ "Set Up Supplies & Templates…".
The Engine checks GitHub for new VectorLabel releases. On first launch it asks how often to check — on every launch, every N days (the pre-selected default, every 7 days), or manually only — and you can change that any time in Preferences → Updates. When a newer version is found, a popup lists the changes between your installed version and the new one — every version in between, pulled from the project changelog — and offers 'Update Now' (downloads the installer to ~/Downloads and opens it), 'Remind Me Tomorrow', and 'Don't Update' (skips that version only; a newer release prompts again). Preferences → Updates also has a 'Check for Updates Now' button and shows the same what's-changed list with its own Update Now button, and the menu bar has a 'Check for Updates…' row.
Yes. Turn on the launch-at-login toggle in Preferences ▸ Advanced ▸ App Behaviour and the Engine (the menu-bar app) starts every time you log in to your Mac. macOS may ask you to approve it under System Settings ▸ General ▸ Login Items. The Engine also keeps Auto Print running — if Auto Print crashed, was quit, or never started, the Engine relaunches it within about 20 seconds — so launch-at-login on the Engine effectively covers Auto Print too.
Vectorworks shows one menu item per command plug-in, so VectorLabel ships two: 'Export Selected Circuits to VectorLabel' (exports only your current selection) and 'Export All Circuits to VectorLabel' (exports every ConnectCAD circuit on the active design layer, ignoring the selection). Install each by pasting its script (export_selected.py / export_all.py) into its own New Command in the Plug-in Manager.
The Template Designer builds REUSABLE, data-bound templates (.vltmp) that the Print window later fills from your wire data and prints in bulk. The Custom Designer makes ONE-OFF labels (.vlcus), can bind its own CSV/Excel data, and prints directly from its own window. The canvas and editing tools are identical; the Custom Designer adds a print header and a Database pane.
Right-click (Control-click) the app or .pkg in Finder and choose Open, then confirm Open in the dialog. That's the one-time override a double-click doesn't give you. If it's still blocked, go to System Settings → Privacy & Security and click 'Open Anyway'. Official notarized releases from the Downloads page should open normally; if a notarized release is blocked, re-download it (a partial download breaks the signature).
No. Released apps bundle libusb inside, so end users just install the signed .dmg/.pkg. Homebrew (libusb + pkg-config) is only needed if you're building the app yourself from source in Xcode.
No — it's macOS only. It's built as native macOS apps and uses macOS USB facilities to reach the printers. There is no Windows or Linux version.
The Engine (the background app that does the printing and watching) puts an icon in the top-right menu bar. If it's missing, the Engine isn't running — launch VectorLabel. A crowded menu bar can also push the icon off-screen; launching VectorLabel a second time is designed to surface the Preferences window so you still have a way in. Reaching Preferences also re-parks a usable on-screen window.
It re-reads the supply loaded in that printer on demand — the same action as the print window's "Detect supply" button — and shows a spinner while it runs. Each printer row in the Engine's menu-bar popover has one. It's hidden for offline printers, and it politely declines while that printer is mid-print.
The Engine (menu-bar app) owns the printers and does all printing. Auto Print is the print window that opens for exports. Template Designer and Custom Designer build label layouts. The designers and print window hand jobs to the Engine — if the Engine isn't running, nothing prints.
Launching the sibling designer apps only works when you've installed the full packaged suite (the .pkg/.dmg). If you're running a single dev build, the launcher has nothing to open. Install the full suite release.
The export is silent on success (no confirmation dialog), so it may have worked even if you saw nothing. Check ~/Documents/VectorLabel/Exports/<YourVWFileName>/ for a new dated CSV. For the print window to auto-open you need the Engine running and Preferences → Export → 'Auto-open print window when export is detected' turned on, with the Watch Folder pointing at the same place the scripts write (default ~/Documents/VectorLabel).
The 'Export Selected' command needs ConnectCAD circuits selected first; 'No objects selected' means nothing was selected, and 'No ConnectCAD circuits found in selection' means you selected non-circuit objects (the count of skipped objects is shown). 'Export All' ignores selection but only exports circuits on the ACTIVE design layer — make sure you're on the right layer.
The 'Export All' command only looks at the active design layer — circuits on other layers are excluded. Also, only objects the script recognizes as ConnectCAD circuits are exported; other objects are skipped (the skip count is shown). And old exports are auto-pruned (default keep-15 per project), so a missing older file may simply have been pruned.
By design. A successful export is silent — no dialog in Vectorworks. The confirmation you're looking for is the VectorLabel print window opening on your Mac. Vectorworks only shows an alert when there's a problem (nothing selected, or no circuits found).
No. It exports only the ConnectCAD circuits on the ACTIVE design layer. Switch to the layer you want before running it. To pull from multiple layers, run it once per layer (or select across layers and use 'Export Selected').
Drag a box (marquee) around them on the canvas, or Shift-click / Cmd-click them in the Objects list. Hold Shift, Cmd, or Ctrl while dragging the marquee to ADD to the current selection. Arrow keys nudge the whole selection; Delete removes it.
It rotates the design canvas 90 degrees so you can lay the label out in the other orientation. For continuous tape it swaps landscape and portrait; for die-cut it shows a portrait canvas while the printer keeps the physical label size and rotates your design onto it. Brady printing now auto-orients die-cut designs to the loaded cassette (see "Do labels automatically print the right way round?" under Printing), so this button is there for when you want something different. Note that it rotates your design, not the stock: on a die-cut supply whose printable area is square, the setting that describes how the stock feeds is that supply's Feed rotation option in Edit Supplies. The rotation is saved with the label.
Those hatched strips are the printer's unprintable margins, and they appear in the designers only — the print window's preview shows just the printable area (with a note when its dimensions come from the loaded cassette). The white canvas is still exactly the printable area; the hatching sits outside it, and the dashed outline is the physical edge of the label or tape. The Custom Designer follows the selected live printer (a loaded cassette that reports its printable area, like the M611's, overrides the built-in tables). In the Template Designer, pick the target model in the "⎙ Printer" dropdown next to the Supply button — "None" hides the overlay, and the choice is saved with the template. The "▧ Margins" button next to the grid controls hides or shows the overlay — including the label's blue printable-area boundary line, so it visibly does something even with no printer selected (the white label itself stays visible either way); it's remembered between sessions.
The overlay live in the real designer: the white canvas is the wrap's printable panel; the hatching is the rest of the physical label.
It outlines every text box on the canvas so you can see each box's exact bounds while designing — handy for lining boxes up or spotting one that's bigger than it looks. It's a design aid only: the outline never appears in the Print window preview or on the printed label. The setting is remembered between sessions.
Yes. From either designer's "Open…" dialog, pick a Brady ".BWT" or Brother P-touch ".lbx" file and it is auto-converted into a new VectorLabel design that opens in its own new tab — your current label is left untouched. The converters decode a subset of objects (text, geometry, and for Brother also barcodes, lines, and tables — a .lbx whose content is a table, like a patch-panel grid, comes in as an editable table object, including merged header cells); anything not converted is listed in an "Import note". A Brady file with no readable text fields won't import.
Yes. When you open a Brady ".BWT" or Brother ".lbx" file, VectorLabel matches it to a catalog supply automatically — a Brady label to the Brady M6 supply group (by part number, then by size) and a Brother label to the Brother P-touch tape group (by tape width) — so it opens at the right size and orientation. If it can't confidently match, the supply picker opens showing the imported label's dimensions and asks you to choose which supply it should print on.
Yes — the designers and the Print window are tabbed. Click the + on the tab bar for a new document; opening or importing a file opens it in its own new tab without disturbing what you already have. Opening a file that's already open doesn't make a duplicate — the window just switches to its existing tab (in the Print window, a re-export or Reprint of an already-open data file lands on its tab and refreshes it). Each tab keeps its own canvas, selection, zoom, undo history and bound data. A dot (•) before a tab name means it has unsaved changes, and ‹ › arrows appear at the ends of the bar when there are more tabs than fit. In the Print window, each Vectorworks export arrives as its own tab.
The importers are reverse-engineered and decode only some object types. Brady .BWT recovers text and geometry but reports barcodes/images/shapes as warnings; Brother .lbx recovers text, barcodes, lines, shapes, and tables (including merged header cells) but reports images/groups/unsupported barcodes. Check the "Import note" dialog after importing for the list of items that need attention.
Yes. The shapes toolbar now has a triangle and a polygon (3–12 sides) alongside the rectangle, ellipse, and circle. A rectangle has a corner-radius setting for rounded corners, and rectangle / ellipse / circle / triangle / polygon each have a solid-fill option. They move, resize, and rotate like every other object. Brother P-touch imports now bring rectangles, rounded rectangles, ellipses, and polygons across instead of dropping them.
Give a text object, barcode, or table cell a source of "Date/Time" — the same place you'd pick a data field — then choose a format from the presets. It renders the current date and/or time at print time. Formats include separator-less numeric ones — YYYYMMDD (20260704), MMDDYYYY (07042026), DDMMYYYY (04072026) — plus MM/DD/YYYY, YYYY-MM-DD, "Mon DD, YYYY", and several time formats.
Turn on the text object's auto-scale in the designer so long values shrink to fit a single line — with auto-scale on, the whole value always fits and is never truncated with a "…". Or turn on word-wrap to flow onto multiple lines, turn on both (the text wraps and shrinks until every wrapped line fits), or make the text box wider. Only with auto-scale and wrap both off is overflowing text clipped with an ellipsis. On continuous tape you can instead lengthen the label with the designer's 'fit length to content' action.
Yes. With both turned on, the text wraps onto multiple lines and shrinks to the largest size at which every wrapped line fits the box — so long values stay readable instead of being clipped. The designer canvas, the print preview, and the printed label all agree on the result.
Update — that's fixed. With Wrap text OFF, pressing Enter inside a text box now starts a new line on the label exactly as typed (older versions collapsed manual returns onto one line). With Wrap text ON, the app keeps deciding line breaks by the box width and ignores your manual returns, as before. The on-screen preview and the printed label match in both modes.
A template's size comes from the supply it's assigned to. Check which part number it points at (and that part's printable dimensions in Edit Supplies). Continuous supplies use the template's chosen printed length; die-cut supplies use a fixed height from the catalog — so the template is probably assigned to a different or edited supply than you expect. Reassign it to the correct supply.
Per cable end: device name and tag, socket name/tag/signal, connector, room, rack and rack U, plus the other end's device/socket/connector. Per circuit: number, cable, signal, circuit count, cable length (entered and calculated), number display, cable type, cable outside diameter, and circuit type. Each circuit produces a Source row and a Destination row.
Each circuit is exported as a Source row and a Destination row (marked in the _Side column), because a wrap label is usually applied near each end of the cable, and each end shows its own device/socket/connector plus a reference to the other end.
Select the text box, click "Field" under "Text source", and pick the column from the dropdown — or drag a column header from the Records panel (Template Designer) or Database pane (Custom Designer) onto the text box. For computed values, choose "Formula" and write an expression starting with "=" (functions include IF, LEFT, RIGHT, MID, LEN, UPPER, LOWER, TRIM).
Use the Custom Designer. In the bottom "Database" pane click "Choose data file…" and pick a CSV or Excel (.xlsx) file, bind canvas fields to columns, then use the print header's "Print" control (All / Selected / Range) to choose rows and Print. It prints one label per row.
Select the text box and click Field, then pick the data column from the drop-down. The box will show that column's value and change for every label. The fastest way is to drag the column header from the Records panel (or Database pane in the Custom designer) straight onto the label — drop it on an existing box to bind it, or on an empty spot to create a new field-bound box.
In the Custom Designer, open the bound data file's dropdown (the file-name button in the Database toolbar) and turn on Auto-sync. The bound data then reloads automatically whenever that file changes on disk — no manual refresh. While auto-sync is on, in-app editing of the data is hidden so an edit can't be overwritten mid-sync; the toolbar shows an "Auto-sync enabled · editing disabled — click to disable" button. A one-time "Refresh from source" reload lives in the same dropdown menu. If you reopen an auto-sync design and its linked file can't be found, you're asked to locate it right away (auto-sync needs the live file); cancel and the label still opens with its saved copy of the data. Designs without auto-sync only ask when you choose "Refresh from source".
The Custom Designer's "first row is headers" tick is now a tick plus a row number (default 1). Set the number to the row that actually holds your column names — say 10 — and everything above it is hidden. Works for both CSV and Excel files.
In the Custom Designer, when you bind an .xlsx workbook that has more than one worksheet (tab), a picker asks which worksheet to use as the print data — instead of silently taking the first sheet. To change it later, open the data-file button's dropdown in the Database toolbar and choose "Redefine tab…" to reopen the same picker. The chosen tab is saved in the .vlcus document, so reopening the label and "Refresh from source" both re-read the same worksheet. Single-sheet workbooks and CSV files behave exactly as before — no picker.
The bound data file is a menu button in the Database toolbar: it shows the file name with a dropdown offering "Replace file…", "Export…", and "Remove database…", plus "Refresh from source" and "Auto-sync". Remove database… unbinds the data and returns the design to a single (non-data) label — it confirms first, and warns if objects on the label pull from the data (they keep their bindings and simply show blank until a database with those columns is added again). The toolbar wraps neatly when the window is narrow.
In the Custom Designer's data grid, right-click a row and choose "Insert rows above…" or "Insert rows below…" — you're asked how many blank rows to add, and the count defaults to however many rows you had selected. Table objects on the canvas get the same thing: right-click a cell and choose "Add rows above…" / "Add rows below…".
While you're typing inside a cell, ⌘V inserts at your cursor, replacing just the text you've highlighted. The moment you click or tab into a cell, its full contents are selected — so a paste right then replaces the whole cell. And pasting one copied value with several cells selected fills all of them, not just one.
Exactly eight: IF, LEFT, RIGHT, MID, LEN, UPPER, LOWER, and TRIM. Plus the operators & (join text), = (equals), <> (not equal), parentheses for grouping, and quoted "text". There is no arithmetic, no CONCATENATE, no FIND/SUBSTITUTE, and no number formatting.
Two common causes: the formula doesn't start with = (so it's treated as literal text — but if it looks blank, the result evaluated to empty), or there's a syntax error (errors render as an empty string rather than a message). Open the Formula editor (Editor ⤢) and watch the Live preview while stepping through records to see what's happening.
Use =IF(Number<>"",Number&IF(Cable<>""," - "&Cable,""),IF(Cable<>"",Cable,"")). This prints "N044 - RIO 1 PRI" when both exist, just the number or just the name when only one exists, and nothing when both are empty. This is the exact formula used in the built-in template.
QR Code, Data Matrix, Aztec Code, PDF417, Micro QR, Code 128, GS1-128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Interleaved 2 of 5, and Codabar. QR and Micro QR also let you set error correction (L/M/Q/H). Set the barcode's data the same way as text: Static, Field, or Formula.
QR Code, Data Matrix, Aztec Code, and Micro QR are always drawn square and centered no matter the box shape. The linear codes (Code 128, GS1-128, Code 39, Code 93, EAN-13/8, UPC-A/E, Interleaved 2 of 5, Codabar) and PDF417 stretch to fill whatever width and height you give the box.
With the barcode selected, use the Error correction drop-down. QR offers L — 7%, M — 15%, Q — 25%, and H — 30%. Higher levels survive more damage but hold less data in the same size. Micro QR offers L/M/Q, and PDF417 offers Level 0 through Level 8. Data Matrix, Aztec, and the 1-D codes have no user-selectable error-correction setting.
Yes, if you set its source to Field or Formula. Each barcode is regenerated fresh from its own data row at print time, at full printer resolution, so a field-bound barcode is correct and sharp on every label.
That code prints blank on the affected label rather than printing a garbage barcode. Other labels with valid values still print normally. Check the preview to catch rows whose values don't fit the symbology's rules.
Known alpha issue: the app downscales from a high-res master to the printer's native resolution (about ×3 Brady, ×5 Brother), and a 2-D code's modules must line up with that step or they blur into one black rectangle. Make the 2-D code bigger so its modules survive downscaling, or use a linear barcode like Code 128 for small marks. Square codes (QR/Data Matrix/Aztec/Micro QR) stay square; linear and PDF417 can stretch.
That means the record's value can't be encoded by the chosen barcode type (e.g. letters in a numeric-only symbology, or a wrong digit count for UPC/EAN). The print window flags those rows ('A barcode on this label can't encode this record — it will print blank') and the preview shows 'This record can't be encoded as <type>'. Switch to a more permissive symbology like Code 128, or fix the source data. ('Barcode engine unavailable' instead means the renderer didn't load — relaunch.)
Blank = the data can't be encoded by that symbology (a data problem; the app warns you). Solid black = a 2-D code's modules are too small to survive the downscale and merge together (a sizing problem; make the code bigger). They have different fixes.
All of these must be true: a template is selected, at least one label is selected to print, the chosen printer's status is Ready (green), and there is no pre-flight error (printhead open / invalid supply / invalid ribbon). Fix whichever is missing — for example, tick some rows, pick a Ready printer, or clear the printer error and press Re-detect.
One at a time sends each label as its own job, so you get per-label progress and a Cancel button (in-flight labels finish, the rest are dropped). Full job sends everything at once — it's fastest, and on the M611 it starts printing immediately, but it can't be interrupted once sent, so no Cancel button is shown for it. Both run at full speed. Set this per printer in Preferences ▸ Printers ▸ Per-Printer Settings.
Cancel appears only for jobs that can actually be cancelled. One-at-a-time prints keep the Cancel button — in-flight labels finish and the rest are dropped. A full-job batch is sent to the printer in one shot and can't be interrupted, so no Cancel button is shown for it.
In the Custom Designer, once you set Copies above 1 on a job that prints more than one label (where the order actually differs), a Collate tick box appears. Ticked, it prints a full set at a time — 1,2,3 · 1,2,3. Unticked, it prints each label's copies together — 1,1 · 2,2 · 3,3.
It means the printer (M611) stopped reporting progress mid-job (for example the connection dropped), so the menu-bar job status — and the Custom Designer's print header — show a literal "unknown" instead of a made-up advancing count. A stalled job shows "unknown" for about its estimated print time and is then marked printed. Progress is never faked — on any printer: an M610 batch that wedges mid-job (jam, ribbon out) reports the real printed count instead of claiming all labels done, and Brother P-touch printers surface their own error reports (no media, cutter jam, cover open) as a failed job instead of "done". ("Printer paused" is different — see the next question.)
You paused the printer on the device itself mid-print. The menu-bar job status and the Custom Designer print header show "Printer paused" in orange, and the job is held open: it resumes live tracking when you resume the printer, completes only on the printer's real complete signal, and can be cancelled while paused. This is hardware-verified on the M611 in one-label-at-a-time mode; it's implemented for full-job mode too but not separately verified there. The distinction: "Printer paused" means you stopped the printer; "unknown" means the printer stopped reporting — the Engine never invents progress in either case.
The Cut dropdown sets it: Every Label, End of Job, or None. If you leave it alone, continuous tape defaults to cutting after every label and die-cut stock cuts once at the end of the job. The M610/M611 cutters are full-cut only. Note that the Brother drivers are only partially hardware-verified, and "None" on Brother is one of the paths not yet confirmed — test it on your unit first.
Yes. Press Reprint on the job in the menu bar's Recent Prints list; the Print window reopens with the same file, selection, range, and filter/sort. If the original export file has been moved or deleted by hand, you can choose "Reprint Without Editing" to re-send the original rendered labels. Note that when an old export is auto-pruned (the "Exports to keep per project" limit), its Recent Prints entry is removed with it — so a pruned job simply leaves the list rather than offering a Reprint whose data is gone. Custom Designer jobs aren't affected by pruning: they carry their own design, not a CSV. A Custom Designer job reopens in the Custom Designer with the full print setup it was printed with — the print range (All / Current / Selected / Range) and its bounds, which rows were ticked, the record being previewed, the database filter, sort and search, and the printer — while loading the current saved version of the label file if you've edited it since. An auto-sync data refresh no longer resets that print selection. This applies to prints made in v1.9.0 or later.
Yes. The print window's label preview shows the label in the same orientation as the template — including continuous labels and 90°-rotated die-cut labels — so it matches what actually prints and what the designer shows.
Yes, wherever the printable area has a long side to fit to. On both Brady printers (M610 and M611), a die-cut design is fitted against the printable-area rectangle the loaded cassette itself reports, so it lands on the label the right way round — wire wraps, raised panels, any supply, including custom supplies you added yourself. Continuous tape is unchanged.
Square printable areas are the exception. A square rectangle says nothing about which way round the design should go, so there is nothing for the automatic fit to decide — and the cassette's own reported orientation doesn't settle it either, because Brady's square cassettes report it inconsistently (two supplies in the same B-427 family answer differently). The M610 and M611 therefore now use the same fixed orientation on square die-cut stock, rather than the M611 following what its cassette reports. On those supplies the orientation control is the supply's Feed rotation setting in Preferences ▸ Printers ▸ Label Supplies ▸ "Edit Supplies…" — see Automatic orientation on Brady printers in the guide. (The designer's ⟳ 90° button still rotates the design on the canvas, and that rotation still reaches the print; the supply setting is the one to reach for when the stock feeds sideways.)
This shared fixed orientation is a recent change and has not yet been confirmed against a physical print on the M611. If a square die-cut label comes out sideways, toggle that supply's Feed rotation and print one label to check.
In the Custom Designer and the Print window, every tab keeps its own printer selection. Opening a label (or picking a template) auto-selects a printer whose loaded supply matches; if none match, the most recently used printer is chosen. A printer you pick by hand always wins and is remembered for that tab.
It's a checkbox in the Print bar that feeds an extra lead label before your job to advance or clear the supply. That lead label prints the word DISCARD across it, so it's obvious which one to throw away. For die-cut it feeds one label (cut per your cut setting); for continuous it feeds 1 inch and always cuts. It only appears when the selected printer supports it — the Brady M610 and M611 do, Brother P-touch doesn't — and the setting is remembered separately for each printer.
Use per-printer calibration: Preferences → Printers, print the calibration grid, then nudge the Horizontal/Vertical offset (in printer pixels) until the grid is square. There's a reset-to-zero button. Offsets are saved per printer serial. Calibration and other printer settings are now shared across the whole suite, so setting it once in the Engine also affects prints from the print window and the designers, and works for network and Brother printers, not only USB Brady. If the shift is actually cropping, check the supply-match indicator (red ⚠) — calibration won't fix a wrong-size supply.
On a Brady M611 this should now be corrected for you. The image used to land slightly off on the label — enough to clip content laid near an edge — and the app now compensates for it per supply, because the printer centres on the backing paper and each cassette sits differently on that backing. If you still see a shift, the calibration offset above is the adjustment.
It means the cassette/tape physically loaded doesn't match the supply your template was built for, so the label may print misaligned or cropped. A green ✓ means they match. Load the matching supply (or choose a template/supply that matches what's loaded) and click Re-detect. Supply status also refreshes automatically about every 30 seconds while printers are idle and immediately when the print window opens; nothing is polled while a job is printing. Note network printers can't auto-detect the loaded supply.
By default continuous tape is cut after every label and die-cut stock is cut once at the end of the job. Override it per job with the 'Cut' dropdown in the print window. There's also a feed/lead-label option to clear or advance the supply before printing. Caution: M610 cut bytes are still not hardware-verified, and the Brother drivers are only partially hardware-verified ('never cut' hasn't been confirmed) — test cutting on a small batch first.
Not fully, in alpha. On the Brady M610 the exact cut byte sequences are unverified on hardware, and on the Brother classic models (whose drivers are only partially hardware-verified) suppressing the cut ('never') is a path not yet confirmed — the job terminator may still feed and cut. The M611 is more validated. Test on your specific unit before a production run.
That's fixed: Brother P-touch text now prints at the weight the preview shows, and this particular fix is hardware-verified. If you're on an older version, update. Note the Brother drivers overall are still only partially hardware-verified — that alpha caveat hasn't changed.
Update — that's fixed in v1.18.0. The driver used to pad every label's image out to 24.5 mm (the minimum length of tape the printer itself feeds, not a minimum image length), so anything shorter than about 1″ printed with blank tape tacked on the end — and every label of a half-cut strip was padded. It now uses Brother's documented 4.4 mm minimum. One caveat that isn't a bug: a single full-cut label may still come out around 24.5 mm, because that floor is the printer's own cutter position — not something the app controls. As ever, the Brother drivers are only partially hardware-verified.
Plug a USB printer (Brady M610, Brother PT models) in and the Engine detects it; use Preferences → Printers → Scan USB if needed. For a network Brady M611, add it by host/IP in Preferences → Printers and click Add.
Go to Preferences ▸ Printers ▸ "Add network printer", type the printer's IP address, and pick its model from the dropdown (the model chooses the driver). For Brady M611 it connects on raw TCP 9100; for a Wi-Fi Brother choose PT-E550W. You can also use Scan ▸ Scan network to find Brady printers automatically.
Use per-printer calibration in Preferences ▸ Printers. Click "Print calibration grid", compare it to the label edges, then enter Horizontal and Vertical offsets in pixels and reprint until it's square. Offsets are saved per printer serial and applied to every job. Use Reset to zero them.
This is an alpha. The Brady M611 is the most thoroughly hardware-validated. The Brady M610 works but some details (like cut bytes) are not fully verified. All three Brother P-touch drivers (PT-E550W, PT-P750W, PT-E560BT) are partially hardware-verified — individual functions have been confirmed on real printers, but not every function or end-to-end path yet — so verify orientation, cutting, and media detection on your own unit before relying on them.
Make sure the Engine is running, then open Preferences → Printers and use Scan → Scan USB. Power-cycle the printer, reseat the cable, and try a different cable/port (some are charge-only). Both the M610's and M611's USB IDs are hardware-confirmed, so a printer that still isn't found usually means a cable, power, or device-claim problem — an M611 can also be added over the network instead.
Preferences → Printers. Either Scan → 'Scan network (subnet)' to auto-discover, or type the printer's IP in the 'Add network printer' field, pick the model, and click Add. The model you pick decides which driver is used. The Brady M611 is found automatically; a Brother Wi-Fi model is guessed as PT-E550W by the scanner because it can't be positively identified over the network.
A network-connected printer is print-only — it can't read the loaded cassette over the network. So there's no live loaded-supply readout and the automatic die-cut→continuous remap won't trigger. Use a continuous template, or connect over USB, when you need supply auto-detection.
No. Although the unit is Bluetooth-capable, only USB is implemented for it — there is no Bluetooth transport. It prints over USB. (The 'W' models print over USB or Wi-Fi/network.)
Not yet as a printer — there is no i3300 driver, so you can't print to one. What does ship is a full Brady i3300 supply catalog (the B30/B33 series — around 150 real part numbers covering paper, nylon, vinyl, self-laminating wraps, polyester, PermaSleeve heat-shrink, magnetic tape, ToughWash and more), so those supplies exist to design against. A driver may follow once the printer's protocol can be verified on hardware.
Click the "Supply" button in the top bar to open "Choose a label supply", then click your part in the list. Die-cut supplies are fixed size; continuous tapes let you set a "Length" (inches) in the top bar (or click "⤢ Fit" to fit the length to your content). If a printer is connected, "Use currently installed" jumps to the loaded cassette's supply.
The label currently loaded in the printer doesn't match the size/part number your template needs, so the print could be misaligned or cropped. Load the correct supply and press Detect supply, or click "Print anyway" in the confirmation if you're sure. The check uses the real loaded label size and part number reported by the printer, and supply status refreshes automatically about every 30 seconds while printers are idle and immediately when the print window opens (nothing is polled while a job is printing).
Open Preferences ▸ Printers ▸ Label Supplies ▸ "Edit Supplies…". You can add categories and supplies, set each supply's size and type (die-cut or continuous), tick Feed rotation on a die-cut supply whose printable area is square, and add part numbers with quantities/roll lengths and buy links. Changes sync live into the Print and Designer windows.
Preferences → Printers → Edit Supplies…. Pick the right printer group and add/edit a supply: category, size, part number, roll length/quantity, Feed rotation (square die-cut supplies only), and an optional buy link. Your additions are preserved across app updates. (The supply catalog is fully user-editable — no code needed.)
Mostly no — with one exception worth knowing. The automatic fit, the part that turns a design to suit the loaded label, never consults the catalog: it uses only the printable-area rectangle the cassette itself reports, so supplies you add yourself auto-orient just like the built-in ones.
The exception is a die-cut supply whose printable area is square. A square rectangle gives the fit nothing to decide, so the supply itself carries a "Feed rotation" setting instead (Preferences ▸ Printers ▸ Label Supplies ▸ "Edit Supplies…") — and that setting does change what comes out of the printer: it turns the printed design 90°. So if a square die-cut label prints sideways, that is the control to change — see Feed rotation in the user guide. It applies to every part number of that supply, and it changes the printed label only, not the design canvas or the preview.
Yes. In Edit Supplies, every supply size shows an inch field and a mm field side by side — type into either and both update. Roll length shows feet and metres together the same way, so you can enter whatever unit the supplier printed and read off the other. (Preferences ▸ Printers ▸ Edit Supplies…) Elsewhere in the app you can also type a mm value like 12,7 or 3mm straight into an inch field and it converts — see the units questions under "Files & settings".
Some seeded Brother TZe part numbers (especially the 3.5 mm one) are best-effort placeholders that haven't been hardware-confirmed. Correct them in Preferences → Printers → Edit Supplies…. Brother support overall is alpha and only partially hardware-verified.
Each part number has its own "Buy link" field in Preferences → Printers → Edit Supplies…. The Buy button simply opens whatever URL is stored there. Brady (M6) parts come pre-filled with a Brady part-number search link, so nothing changes for them — but you can edit it or paste your own supplier's URL. A part whose Buy link is blank shows no Buy button at all; Brother P-touch tapes ship blank for now, so they have no button until you add a link.
It's a helper for installing the bundled label-supply groups and starter templates. It opens automatically after an install finishes — both a fresh install and an in-place upgrade of the running Engine — and you can reopen it any time from Preferences ▸ Printers ▸ "Set Up Supply Groups & Templates…" or Preferences ▸ Updates ▸ "Set Up Supplies & Templates…". It lists the bundled ("available") groups and your ("existing") groups. Each available group can be set to Don't install, Install New, or Install & Replace — it defaults to Replace when a same-named group already exists, otherwise Install New (choosing Install New against an existing name adds a numbered copy, e.g. "Brady M6 2"). Existing groups each have a Delete tick, and an "Install all & clear existing" preset wipes your groups and installs a clean factory set of both supplies and templates (it flips every starter template to Install & Replace too — a same-named template is overwritten, never duplicated).
Yes. Engine ▸ Preferences ▸ Advanced ▸ Units lets you pick Inches or Millimetres, and the choice applies live across the whole suite — the designer rulers, every dimension field, the print previews, and the supply readouts. The Template and Custom Designer rulers also have a small in/mm toggle in the top-left ruler corner. Labels are always stored the same way internally, so switching units is display-and-entry only and never changes a saved template.
Yes. Any dimension field accepts fractions (1/8", 1 1/4), other units (3mm), and arithmetic — .25"-1/8" gives 0.125", and 10+5 gives 15 mm — with the result converted to the field's current unit. It works in inches or millimetres, and a comma decimal like 12,7 is accepted. This covers the designers' object / position / size / table fields and the supply editor. Font size (points), line and stroke weights, %, degrees, and plain counts stay as-is — they aren't physical label measurements.
Yes. ⌘S saves and ⌘⇧S is Save As in both designers (in the Template Designer they save the template). In the Custom Designer, "Save Label" now saves straight to the open .vlcus file with no dialog, and a separate "Save as…" button saves a copy to a new file. A brand-new label, or one opened from a Brady .BWT or Brother .lbx import, still prompts the first time so an import is never overwritten.
When the Custom Designer opens — and on each new "+" tab — a start dialog offers your 5 most recent labels to reopen, plus Browse… and New blank label. Opening a label reuses the blank tab (no leftover "Untitled" tab), and reopening a label that's already open just switches to its tab instead of duplicating it. Each file dialog also remembers its own last folder.
Your templates and exports live under ~/Documents/VectorLabel/ (Templates/ and Exports/<project>/). The apps' internal print queue and status live under ~/Library/Application Support/VectorLabel/ipc/. Preferences are stored in macOS UserDefaults.
To ~/Documents/VectorLabel/Exports/<YourVectorworksFileName>/, in a file named <YourVectorworksFileName>_export_YYYYMMDD_HHMMSS.csv. Each Vectorworks project gets its own subfolder and each export is timestamped.
The 15 most recent per project folder, by default — change it with "Exports to keep per project" in Preferences → Export. Older ones are deleted automatically based on the date stamp in the filename (not the file's modification date), so it stays correct even with cloud sync or restores. When an export is pruned, the Recent Prints entries that used it are removed too. Files that aren't VectorLabel exports are never deleted.
Template Designer templates (.vltmp) save to ~/Documents/VectorLabel/Templates/. When the save dialog appears, navigate to that folder. Custom Designer labels save as .vlcus wherever you choose, and they embed a copy of any bound data so reopening or reprinting recreates the exact label.
Templates: ~/Documents/VectorLabel/Templates/. Exports: ~/Documents/VectorLabel/Exports/<VWFileName>/ (one folder per project). Recent print history is kept for reprinting (clear it in Preferences → Recent). Old exports are auto-pruned to the newest 15 per project by default, using the date code in the filename. Use 'Open Export Folder' (⌘E) from the menu bar to jump there.
The original CSV export was moved or deleted outside the app. You can still reprint the original labels as-printed, but you can't re-edit them because the source data is gone. If you need to edit, re-export from Vectorworks. (An export the app pruned itself takes its Recent Prints entries with it, so a pruned job disappears from the list rather than failing this way.)
Yes. If the cloud service keeps the file online-only, VectorLabel downloads it first: a small 'Downloading…' popup with a Cancel button appears, and when the download finishes the open continues on its own. This works everywhere a file can be chosen — data sources, templates, imports, images, and Finder double-clicks. Cancelling returns you to where you were.
Yes — Preferences → Export changes the Watch Folder, and Preferences → Templates changes the templates folder. But if you move the watch folder, make sure the Vectorworks scripts still write into it; by default they write to ~/Documents/VectorLabel/Exports/, so a mismatched watch folder means the Engine won't see new exports.
That message ('Could not open printer (permissions?)') almost always means another process is holding the device — for example the macOS system print driver or a second copy of the Engine. Quit any legacy VectorLabel.app and make sure only one Engine is running.
No — this is alpha. The Brady M611 is hardware-validated. The Brady M610's cut behavior is noted as still unverified. All three Brother P-touch drivers are implemented and partially hardware-verified — individual functions have been confirmed on real printers, but not every function or end-to-end path yet.
v1.9.0 landed a large batch of stability fixes: imported and edited work is less likely to be silently lost, corrupt or malformed import files no longer crash the app, and on the hardware-validated Brady M611 the printed orientation is now consistent across back-to-back jobs. Update to the latest release. If you still hit a crash or lost work, report it in-app so it's sent with your logs.
Just launch VectorLabel Engine again. A second launch detects the live Engine, nudges it to re-show its icon, and opens Preferences as a reliable on-screen entry point.
Most often: VectorLabel AutoPrint wasn't running when you exported (it only reacts to new files created while it's live, and it does not scan old files at launch), or the 'Auto-open print window when export is detected' preference is turned off. Also confirm your selection/layer actually contained ConnectCAD circuits. The detection has a short delay, so wait a moment. Note that while the Engine is running it now keeps Auto Print alive — if Auto Print crashed or was quit, the Engine relaunches it within about 20 seconds (if Auto Print keeps dying instantly, the Engine stops retrying after 3 attempts in 5 minutes and notes it in the log).
Brady M610/M611 are the main target over USB (M611 also network). Both Brady USB IDs are hardware-confirmed (the M611's was validated on a real unit). Brother PT-E550W, PT-P750W, and PT-E560BT are implemented and pass the app's offline tests, but hardware verification is uneven. Only the PT-E560BT has had a pass on a real unit — USB detection, tape/status read, printing, and orientation are confirmed there; its cutting is not. The PT-E550W and PT-P750W have not been print-tested on real hardware at all, so orientation, cutting, and tape auto-detect are all still unconfirmed for them. So treat Brother printing as alpha: test-print a single label and check the cut before committing to a long run.
That's the classic one-job-hang failure mode. It happens if the wrong (classic) dialect is sent to the E560BT, which speaks a different dialect — it then hangs until power-cycled. The app routes by USB product ID to avoid this, but it's the known canary for a routing bug. Power-cycle the printer; if it recurs, report it with your build number. Note the Brother drivers are only partially hardware-verified.
Neither dead-ends on an error. If an update check or download can't reach the server, the alert offers a "Download from Website" button that takes you straight to the Downloads page for the latest signed installer. If sending a problem report fails, the app offers "Copy & Open Feedback Form" — it copies the report and opens the website's feedback form so you can submit it manually in a couple of clicks (the option to save the report to a file is still there too).
The easiest way is in-app: every error alert has a "Report…" button, and the Engine menu bar has "Report a Problem…" (below "Check for Updates…") for anything else. Describe what happened and it's sent PRIVATELY to the developer — reports include the app version/build, macOS and hardware info, current printer status, and the app's recent log (kept in ~/Library/Logs/VectorLabel/). The first report asks your name and email (phone optional) and remembers them; a crash is offered for reporting on the next launch. You can also use the feedback form on this site (no GitHub account needed) — it goes to the same place; include the build number and short commit hash from the menu-bar footer, your printer model and connection type, the loaded supply part number, and the exact text of any alert. If it's about M610 cutting, any Brother model, or M611 USB detection, mention that — those are the least-verified alpha areas.