68 lines
3.6 KiB
Python
68 lines
3.6 KiB
Python
"""TEMPLATE — Installation Guide (INS). Copy this folder to <PROJECT>/source/ and fill it in.
|
||||
|
|
|
|||
|
|
Step-by-step physical installation for someone outside MPM (customer facilities, installer, field crew).
|
|||
|
|
4–10 pages. See MPM_Document_Standard.md §9.1. Reference: INS-LT-15R-01 (LakeTran).
|
|||
|
|
|
|||
|
|
Order (do not reorder):
|
|||
|
|
masthead (automatic) → Before you start → Process at a glance → Hardware + Tools
|
|||
|
|
→ reference figure (template / drill schedule), optional → Walkthrough (one doc.step per step)
|
|||
|
|
→ Final check → Revision history (automatic)
|
|||
|
|
"""
|
|||
|
|
import sys, pathlib
|
|||
|
|
HERE = pathlib.Path(__file__).resolve().parent
|
|||
|
|
sys.path.insert(0, str(next(p / "_STANDARDS" for p in HERE.parents if (p / "_STANDARDS").is_dir())))
|
|||
|
|
|
|||
|
|
from mpmdoc import Doc
|
|||
|
|
from figs import FIGS
|
|||
|
|
|
|||
|
|
F = {k: f() for k, f in FIGS.items()}
|
|||
|
|
|
|||
|
|
doc = Doc(
|
|||
|
|
number="INS-MPM-SUBJ-01", rev="0.1", date="2026-11-06",
|
|||
|
|
customer=None, subject="Product",
|
|||
|
|
title="Product Name:<br>Mount Type", # the outcome, not "Installation Guide"
|
|||
|
|
lede="One sentence per phase of the job: mount it, wire it, hang it, lock it.",
|
|||
|
|
meta=[("Audience", "Who does the work"), ("Mount type", "What it mounts to")],
|
|||
|
|
slug="Customer_Product_Install",
|
|||
|
|
history=[("0.1", "2026-11-06", "Initial draft.")],
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
doc.add(
|
|||
|
|
# Safety, permits, who must do what, and anything to confirm BEFORE the first hole. Bold the critical fact.
|
|||
|
|
doc.before_you_start([
|
|||
|
|
"<b>Confirm the location and mounting height</b> with your MPM project contact before drilling.",
|
|||
|
|
"<b>Wear eye protection and gloves.</b>",
|
|||
|
|
"<b>Line-voltage wiring must be done by a qualified electrician</b> per NEC and local code.",
|
|||
|
|
]),
|
|||
|
|
doc.section("Process at a glance"),
|
|||
|
|
doc.glance([("Mark<br>holes", "3 marks"), ("Drill", "Ø1/2\""), ("Mount<br>bracket", "3 bolts"),
|
|||
|
|
("Wire", "8 splices"), ("Hang<br>& test", "on bracket")]), # 4–8 tiles, ≤ 2 words + detail
|
|||
|
|
'<div class="keep">' + doc.two(
|
|||
|
|
doc.section("Hardware") + doc.table([("Item", ""), ("Spec", ""), ("Qty", "q")],
|
|||
|
|
[["Bracket", '<span class="mono">107 × 465 mm</span>', "1"]], cls="tight"),
|
|||
|
|
doc.section("Tools") + doc.table([("Tool", ""), ("Notes", "")], [["Drill", "Corded or 18 V+, low speed"]], cls="tight"),
|
|||
|
|
ratio=(11, 9)) + "</div>",
|
|||
|
|
|
|||
|
|
doc.section("Walkthrough", new_page=True),
|
|||
|
|
# One outcome per step. Kicker = the tool / part / place. 3–6 numbered actions. Say what success looks like.
|
|||
|
|
doc.step(1, "Layout", "Mark the hole locations", doc.steps([
|
|||
|
|
"Hold the bracket against the mounting face at the approved height.",
|
|||
|
|
"Set a level on the bracket edge and adjust until it's <b>plumb</b>.",
|
|||
|
|
"Mark through holes <b>A</b>, <b>B</b> and <b>C</b>.",
|
|||
|
|
]) + doc.note("Check your marks", "A to C should measure <b>312 mm</b>."),
|
|||
|
|
doc.figure(F["part"], "Caption: what the reader should see")), # side figure (35%)
|
|||
|
|
doc.step(2, "12 V DC · WAGO 221", "Connect power", doc.steps([
|
|||
|
|
"Confirm the breaker is <b>off</b>.",
|
|||
|
|
"Splice <b>brown</b> to <b>red (+)</b> and <b>blue</b> to <b>black (−)</b>.",
|
|||
|
|
]) + doc.note("Check polarity", "Reversing + and − can damage the sign.", tone="warn"),
|
|||
|
|
doc.figure(F["part"], "Wide figures go below the text", style="width:45%;margin:0 auto"), wide=True), # wide=True for diagrams
|
|||
|
|
|
|||
|
|
doc.checklist("Final check", [
|
|||
|
|
"Bracket plumb, all bolts tight",
|
|||
|
|
"Every splice tug-tested",
|
|||
|
|
"Sign powers up and every function works",
|
|||
|
|
"Photo of the finished install sent to MPM",
|
|||
|
|
]),
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
doc.build()
|