Hardware BOM and company catalog

Open Design > Solid > Hole Series > Export Hardware BOM. Keep Report on Hardware BOM (the other report is the hole chart per part). Choose CSV (spreadsheet), the default, or HTML (printable A4), then choose a local filename ending in .csv or .html. Export reads the model and replaces only that chosen file after writing it completely. It does not change the design or contact a supplier. Canceling the file dialog creates no file.

Rows include quantity, role, metric or UNC/UNF thread size, fastener length, head style, reference standard, HSF part number (the add-in's own ID), recorded geometry dimensions, supplier, supplier part number, description, mapping status, contributing stack IDs and geometry basis, then the purchase designation and a search link. Numbers and geometry dimensions are in millimetres. UTF-8 with a BOM preserves Vietnamese names in spreadsheet applications. Text fields are CSV-escaped and formula-like supplier text is treated as literal text.

The HTML report is a self-contained document that opens offline in a browser. It presents item numbers, quantities, head/role names, thread sizes and lengths, human-readable recorded dimensions, supplier details and missing mapping status. It includes the project name, export date, inventory scope and geometry basis. HSF part numbers and contributing stack IDs remain visible as secondary details; the exact grouped rows are also retained as inert data inside the HTML file. No material, grade, price or supplier is filled in automatically.

Use the browser's Print command with A4 portrait paper to print the report or save it as PDF. Table headings repeat across pages, and long entries wrap without truncation. Displayed dimensions round to 0.001 mm where needed; the original recorded values remain in the file. CSV keeps the first 14 columns in the same order for spreadsheet/import workflows and adds designation and search_url after them. HTML and CSV both revalidate and recollect the inventory after the Save dialog, then replace one chosen file atomically; a failed write preserves the previous file.

Purchase designations

Each row names the part to order. A metric screw, bolt or pin gets its standard, thread and length (ISO 4762 M6 × 20, ISO 12474 M10 × 1.25 × 50, ISO 8734 6 × 20); a nut its standard and thread (ISO 10511 M8); a washer its standard and nominal size (ISO 7089 6). Inch hardware is named by size, length in inches, head and standard (1/4-20 UNC × 5/8 in flat head socket screw, ASME B18.3). A reference envelope without a sourced standard is described instead (M18 × 30 button head socket screw). A fine-pitch size shares the washer row of its coarse size.

The designation never contains a property class, material or finish the model does not know. Add your own per kind of hardware with grades, and point the search links at your supplier with search_url:

{
  "grades": {"socket": "12.9", "hex": "8.8", "nut": "8", "washer": "200 HV"},
  "search_url": "https://your-supplier.example/search?q={query}"
}

Grade kinds are socket, hex, button, countersunk, flange, washer, nut, nut_nylon, nut_flange and pin. search_url must be an https address with exactly one {query}; without it, the links run a web search. The link searches for the designation; choose and verify the exact part on the supplier's site.

What is counted

The export does not inventory unopened linked source documents, third-party fasteners, loose untagged bodies or deleted Hole Series & Fasteners records. It reads saved hardware metadata rather than reverse-engineering manually altered geometry. Audit and rebuild modified stacks before exporting a manufacturing handoff. Hardware is an approximate design envelope; reference ISO names do not certify compliance, strength, material, finish or supplier availability.

Older stacks did not record custom dimensions. They still export with a legacy dimensions unrecorded; stack ... specification and a warning. Such stacks are kept separate across stack IDs, so a current catalog change cannot silently relabel their old geometry. Rebuild once under the intended catalog to record dimensions and consolidate matching hardware across those stacks.

Local supplier mappings

Edit %APPDATA%\VanThanBK\HoleSeriesAndFasteners\metric_fasteners.json. Keep only your overrides; shipped geometry and standard defaults are merged at load time. The parts object maps an HSF part number to your purchasing information. Example:

{
  "schema_version": 1,
  "units": "mm",
  "standards": {},
  "sizes": {},
  "parts": {
    "HSF-SOCKET-M6-30": {
      "supplier": "Your selected supplier",
      "supplier_part_number": "YOUR-VERIFIED-SKU",
      "description": "M6 x 30 socket screw, verify material and finish"
    },
    "HSF-WASHER-M6": {
      "supplier": "Your selected supplier",
      "supplier_part_number": "YOUR-VERIFIED-WASHER-SKU"
    }
  }
}

supplier, supplier_part_number and description are optional strings. Unmapped hardware retains its HSF identifier with blank supplier fields. An HSF identifier is internal; it is never automatically presented as a supplier SKU. Verify the geometry specification on each mapped row, especially where custom dimensions have been used under the same HSF identifier. Mappings do not create an order or establish stock availability.

Hole chart per part

Set Report to Hole chart per part to export, for every part a Hole Series drilled, one row per hole: the part and body, the hole's entry point in the part's own component coordinates (X, Y, Z in mm) and its axis, the feature (diameter, thread, slot or Dowel H7), the tap drill, a counterbore or countersink, a nut pocket on the far side, the material crossed and the Hole Series position (series-position). A part used several times is charted once. Holes made by other features are not listed. A series whose parts cannot be read is listed as a note to rebuild it with Update All; nothing is guessed. The CSV has the columns part, body, hole, series, x_mm, y_mm, z_mm, direction, feature, size, diameter_mm, thread, tap_drill_mm, depth, head, tail and notes; the HTML page prints one table per part on A4.

Invalid data and fitting lengths

An absent optional override uses the shipped defaults. An existing unreadable or malformed JSON file, unsupported schema/units, unknown dimension key, nonpositive/nonfinite dimension or invalid washer proportions is an error. Repair the reported file, or deliberately rename the override to use shipped defaults. The add-in does not overwrite a damaged file or silently fall back. Update validates the catalog and all stack lengths before deleting old geometry.

Automatic sizing chooses the next configured preferred length; this can exceed a shallow tapped target. For example, a 10 mm clearance grip plus 5 mm of tapped engagement requires 15 mm, but a preferred 16 mm screw exceeds a 15 mm measured maximum. The operation stops before mutation. If actually available, choose 15 mm Manual length with Preferred lengths only off; alternatively, reduce requested engagement to 4 mm to select 14 mm automatically, or revise the target depth. Check engagement strength and real drill/thread depth against your design requirements. The measured range is geometric, not a strength check.

Creation/Edit/Update require a Hybrid parent design. A linked Part source can be modeled by a supported distributed job from that parent. Direct Part or Assembly mutations are rejected; the add-in does not convert design intent.