FH VentLib
Product-data completenessGenerator accuracyInstallation completenessProjects / EKParts and PDFsGuidesDev evolutionK39B work planning (Google access)
Living development workspace for the canonical parametric ventilation add-on in 2HE__Blender.
Version
0.82.111
One productive Engine now owns topology, connectors, solve scopes, Live, Guide, obstacles, previews and route planning. Architecture Guide
Canonical package
addons_2HE/addons/FH__VentLib/
Fast dev loop
2he deploy FH__VentLib → Reload Geometry / Refresh N-Panel. Full Blender restart only when registered RNA/property/operator classes require it.
v0.82.111 focus
Single productive Solver Engine
The Blender adapter snapshots scene state and commits validated results atomically. The host-independent Engine owns Chain topology, connector frames, bounded lengths, Full/Active/Span and Live solving, Guide and obstacle evaluation, plus A/B/C planning. Old root routing dispatchers and shadow paths are removed. Detailed runtime flow · Solver workflow
v0.82.13 focus
Safe Append direction
To extend a Chain, select the loose part and make the existing Chain endpoint active. New Append refuses a selected part from another Chain before releasing any old link. Detach first for an intentional transfer. Tracked Append Guide
v0.82.12 focus
Chain list selection
Clicking a connected part highlights its complete Chain in the Chains list even if the part is marked as a planning obstacle. Guide
v0.74.5 focus
Exact TVU branch connector
TVU connector C and its generated branch mesh now share one endpoint calculation, so MF/NPU attachments meet the visible end exactly.
v0.74.4 focus
Add Part at the selected Append axis
Add Part uses the open connector selected under Append axes, so a TVU can add its first branch part directly at C.
v0.74.3 focus
Existing-edge Cut Active and SR choices
Cut Active continues an already tracked connector pair without requiring another open connector. SR Add/Exchange offers all published diameters with their correct stock length.
v0.74.2 focus
Safe Cut Active connector choice
Cut Active to Fit rejects an occupied connector on the active part before changing the Chain and reports the available connector explicitly.
v0.74.1 focus
All-in-one Cut Active append
Cut Active to Fit independently preserves the eyed-in poses, appends the selected part and fits the active length part in one action.
v0.74.0 focus
Append in Place
Append can preserve both eyed-in World poses and optionally cut the active length part to fit its new neighbours.
v0.73.1 focus
Lindab Safe TVU45
The complete 199-variant TVU45 generator now carries its correct Safe identity and global manufacturer PDF.
v0.73.0 focus
Complete Add Part families
Add and Exchange now include TVUSS45, TCPUSS, RCLU, CBC/CBE, XVU and YVU with their relevant dimensions.
v0.72.7 focus
Reload-safe preview cleanup
Preview Off and Apply discover and remove tagged Align & Adjust preview meshes even after an add-on reload.
v0.72.6 focus
Faithful Align & Adjust preview
Length contributes movement along the CUT axis. Preview shows evaluated collection-instance geometry and the virtually fitted CUT at its calculated length while originals remain unchanged.
v0.72.5 focus
Align & Adjust Length
A parametric CUT selected as D exposes Length. A same-Chain reference B beyond A stays fixed while only the segment between CUT D and B moves and the CUT is rebuilt.
v0.72.4 focus
Local Join in Place
Join in Place can connect exact open endpoints without moving either Chain, even when another seam inside a linear Chain is already loose. Join + Move continues to require clean Chains.
v0.72.3 focus
Local Fit validation
Fit Inbetween validates the two seams it creates. A pre-existing loose seam elsewhere in the same linear Chain stays reported without rolling back the exact local Cut.
v0.72.2 focus
Stock labels and spacing
Each used variant now has a visible 3D text label with its product ID and quantity. Evaluated maximum dimensions, a fixed gap and dynamic row heights keep long parts separated.
v0.72.1 focus
Stock matrix
Stock calculates its table when opened. Show Used Parts builds the labelled 3D matrix in one update and reliably isolates it in the Viewport. Source & Instances is nested inside Part Configure. Guide
v0.72.0 focus
Catalog and Used Parts matrix
Catalog is the product-facing library; Add Part creates or reuses its canonical Source automatically. Used Parts / Stock can isolate a refreshed, labelled 3D matrix with each used variant once. Preview Instances are excluded from quantities and never move Planning Instances. Advanced Source controls live under Source & Instances. Guide
v0.71.3 focus
Manufacturer PDF beside Add/Exchange
The icon immediately before Exchange Part and Add Part opens the online manufacturer PDF for the selected Part Type in the same compact row. Guide
v0.71.2 focus
Verified Exchange result
Exchange validates reused Source geometry against the selected parameters and preserves the active semantic Planning Color. Stale Custom metadata is recovered when its color matches a saved profile. Guide
v0.71.1 focus
Expected Source reuse
Add Part and Exchange Part silently reuse an existing product Source. The manual Parts Generator still reports duplicate generation. Guide
v0.71.0 focus
Exchange Part
Append → Exchange Part replaces only the active occurrence using the remembered Part Type and parameters. Its World pose, Planning Color and Chain references remain; both neighbours stay fixed. Direct project Instances continue to show Planning Colors. Guide
v0.70.1 focus
Planning Color recovery
If Blender preferences unexpectedly contain only defaults, VentLib reconstructs missing custom profiles and adjusted built-in colors from stable metadata already stored on scene Instances, then saves the repaired library. Existing objects keep their assignments and colors. Guide
v0.70.0 focus
Add Part
Choose a remembered Part Type and its parameters directly under Append → Add Part. The part is inserted after the active Chain member or placed at the 3D Cursor outside a Chain.
v0.68.0 focus
Align by Adjust
Choose A, B, transform channels C and adjustable freedoms D. Preview the result as reversible blue wire ghosts; Apply becomes available only for a valid Preview and commits one Undo step. Up/Down keys traverse Chain Order while the pointer is over the sidebar. Guide
v0.67.7 focus
Fit staging and root-anchored Solve
Initial Cuts retain their previous Chain edge. Solve From Active at position 1 keeps that part fixed and solves positions 2 through End.
v0.67.6 focus
Compact Chain blocker
Solve, Cut and Join share one stable workflow row. Blocked Joins show the active Chain error count and maximum residual; click for every failing seam.
v0.67.5 focus
Registration hotfix
Occurrence identities migrate after Blender leaves restricted Add-on registration, with rollback for partial module registration.
v0.67.4 focus
Reusable copies and stable Chain actions
Ordinary Blender duplicates retain part and Planning Color data but discard copied Chain, Append, P and Solver Lock state. Solve, Cut and Join rows now disable in place.
v0.67.3 focus
Stable Cut Length panel
Cut actions and explanations keep fixed rows; unavailable controls remain visible and disabled while the active Chain Order part changes.
v0.67.2 focus
Cut colors and clear Order Edit errors
Fit Cuts retain the Planning Color of the replaced part. Order Edit identifies reused A/B connectors and keeps its Guide-linked error open.
v0.67.1 focus
Complete-Lock selected-side Fit
Fit Inbetween refuses to translate a selected side with all Location channels locked and preserves its World pose and captured target.
v0.67.0 focus
Lindab MF generator
Generate the uninsulated MF female sleeve from every published DN, length and mass row, with end-face connectors, Configure support, local PDF and icon. Guide
v0.66.1 focus
NPUI generator icon
The NPUI generator card now shows its local product icon derived from the bundled Lindab datasheet.
v0.66.0 focus
Aim for Straight Cut
Select two open Chain endpoints to preview and solve their roll angles, adjacent SRI lengths and one exact middle SRI. Confirm any MFI replacement, then apply one atomic Chain join. Guide
v0.63.2 focus
Clean Chain ends after object deletion
Normal Blender object deletion clears references to the removed part. Remaining fragments keep their exact World transforms and can be joined again. Chain operations
v0.63.1 focus
One Planning Color profile source
New Instance Profile and the main Planning Colors picker now show the same complete ordered profiles, including every saved custom entry. Planning Colors Guide
v0.63.0 focus
Native right-click Guide and Detach Part
VentLib no longer spends panel width on a Guide symbol beside every action. Hover a control for concise help; right-click it for Blender's button menu and choose * Open VentLib Guide. Information and status rows remain directly clickable for multiline details. The named Detach Part action and the Chain Order X remove one part from adjacent Appends and movement coupling while preserving the object and its exact World transform. Help system · Chain operations
Current component scope
| Family | Configuration | State |
|---|---|---|
| SRSS | DN100 / 125 / 200; one SOURCE per stock product, exact baked cuts | Scale-to-cut, stock segmentation and generated spiral seam |
| SRI | Type 25 / 50, DN100–500; one 3000 mm stock SOURCE plus exact baked cuts | Pre-insulated duct; BFUI/fittings insert directly, SRI–SRI requires NPUI |
| TCPUSS | All 167 published d1/d3 combinations through 630/630 | Exact PDF dimensions/mass; pressed saddle remains planning geometry |
| BU | Published DN63–224 × 15°; DN63–250 × 30° / 45° / 60° / 90° | Exact PDF l-table; under-nominal male spigot, shallow seals below the SR inner wall, visible stop bead and hard insertion-stop shading |
| BUSS | Legacy smoke-extract family | Kept separate from ordinary supply/extract BU geometry |
| TVUSS45 | All 199 published d1/d3 combinations through 1000/1000 | Exact PDF dimensions/mass; branch intersection remains planning geometry |
| XVU | Arbitrary live Main DN / Branch DN / angle + published Lindab preset dropdowns | Live three-cylinder planning geometry |
| YVU | Arbitrary live d1 / d3 / d4 / angle + PDF-only nominal dropdowns | v0.6.6 shared three-axis junction; user visual acceptance pending |
| MBB-S / MBB-E | Queued | Datasheet received; not yet implemented |
| MFI | Type 25 / 50, DN100–500 with project-corrected DN160 | Fixed insulated coupling for Isol fittings; not cut stock |
| NPU | Published DN63–1250 | Nipple for joining ordinary circular ducts |
| NPUI | Type 25 / 50, DN100–500 | Extended inner nipple for joining two SRI ducts; published 8–10 mm stop range |
| SLU | 50 / 100 mm insulation with published DN and length combinations | Integral Safe nipples append at insertion-stop shoulders; large variants use loose NPU connectors |
| BSLU | DN125–315 / 50 mm insulation; DN125–630 / 100 mm insulation | Generator and Blender E2E validated; visual acceptance pending |
v0.60.0 focus
Linked information and Chain actions
Compact information rows reveal their full text on hover and open a multiline detail with the matching Guide link. Join + Move and Join in Place now sit under Chain. Duplicate makes a visible 250 mm X/Y/Z offset; Duplicate in Place deliberately overlaps. Chain controls Guide
v0.58.1 focus
Selectable rows and persistent status
Chain and Part names select and turn blue; separate pencil buttons edit them. Chain Order remains visible after selecting none, Parts have individual visibility, and Local View enters safely from a normal viewport. Clicking a status icon opens persistent diagnostics with Guide links. Chain controls Guide
v0.58.0 focus
Direction-aware Chain matrix
Invert Chain rebuilds active P coupling in the new direction. Chains stays above Chain Order with fixed action columns and flexible names. Part rows cycle free, Solver and complete transform locks; select either Chain side; edit names; reorder; or detach without moving/deleting the object. Guide links reuse a matching Chrome tab through the optional 2HE Commands bridge. Chain controls Guide
v0.57.1 focus
Reliable Chain rows and live status
Expanded Chain rows now work inside and outside Local View. The Local View control is a compact plain V. A fixed icon before Trash reports ready, known assembly work or a loose/invalid Chain; its hover explains the live state and clicking it opens the relevant Guide section. Chain controls Guide
v0.57.0 focus
Chain controls without Outliner nesting
The Chains list now provides visibility, Local View, editable naming, reversible P movement coupling, complete Chain protection, selection and link deletion. P uses VentLib constraints and therefore keeps the Outliner flat. Chain protection restores prior native locks when disabled and remains separate from Solver solver anchors. Chain controls Guide
v0.56.1 focus
Retained Instances and reliable Fit setup
Delete Source Variant keeps dependent Instances as transform placeholders when Delete all instances is off, and reconnects them when the exact Source returns. A rotation-locked New Append with incompatible connector axes is rejected before old relations are released. Re-fit errors identify locked channels and advise checking the opposite connector. Guide
Independent project and model accuracy
FH__VentLib is an independent project and is not affiliated with, endorsed by, or approved by Lindab. Its models are planning aids, not manufacturer-certified product models. Verify current dimensions, performance data, installation requirements and availability before ordering, fabrication, installation or compliance decisions.
Air-Circle planning part
Air-Circle DN100 inline fan
Choose Parts Generator → Fans → Generate Air-Circle to create the DN100 Source for BAUHAUS 23207127; use Create Instance to place it. Internal and undimensioned casing details are planning approximations. Automatic Append remains unavailable until insertion-stop dimensions are evidenced.
v0.55.2
MFI DN 160 project correction
MFI offers DN 160 instead of DN 150 for both Type 25 and Type 50. This is a project modelling decision for a suspected source printing error, not a manufacturer-confirmed revision. Verify the current manufacturer documentation before ordering or installation. MFI guide
Persistent Planning Colors profiles
New and edited profiles are saved immediately in Blender user preferences, even with Auto-Save disabled. Profile changes survive a restart and scene reload. Existing instance colors remain unchanged until explicitly applied. Profile guide
Reliable Chain core
The visible Chain Order is the sole operational direction, while old parent/child edge direction is treated as storage provenance. One-port terminals are supported and every topology mutation validates transactionally.
Chain operations
Chain rows select one occurrence exclusively. Invert Chain supports terminal one-port parts, Solve From Active translates the active and following suffixes without changing rotation or being transformed twice by Chain Parenting, and Cut Chain splits the exact edge after the active row without moving geometry.
Read-only panel status
Panel drawing no longer synchronizes connector metadata inside Blender's restricted context. Cut Length and Fit Inbetween therefore remain visible for eligible SRI, SR and SRSS occurrences.
Unified Fit Inbetween
The same context-aware action creates the first exact Cut from an internal fresh stock Instance or rebuilds an existing Cut in place. With one separate endpoint selected and the Cut active, it translates the selected side onto the Cut axis even when Location-locked, captures the aligned lock target, connects it and fits the gap transactionally.
Assembly requirements
Chain Order can represent the intended sequence before every coupling is present. VentLib flags unequal DN values and known male-to-male or female-to-female neighbors as Work required, naming MFI, NPU, NPUI or a suitable reducer/adapter. Direct Append and Join + Move refuse incomplete joints; Join in Place records them without moving geometry.
Join Chains
The active chain stays authoritative. Join + Move closes a compatible seam rigidly; Join in Place preserves every world transform and combines only the logical order. Required order inversions and one-part endpoint selection are automatic.
Constrained Re-fit
Following-side World Location, Rotation and Size locks remain authoritative per channel. Compatible partial locks use their free channels; conflicting constraints roll back the complete operation.
Cut workflow placement
Fresh stock INST_… and baked CUT_… occurrences expose Fit Inbetween directly after Append. A fresh Instance additionally retains Cut Entered Length for manual cuts without two neighbours.
Re-fit Cut
An internal baked SRI/SR/SRSS keeps its Blender Object identity while its exact millimetre geometry is regenerated from the staged Chain gap. The fixed previous member stays put and the following side is re-appended transactionally within its World locks.
Profile-safe names
Non-neutral __SUPPLY, __EXTRACT and custom profile suffixes survive reloads and Source updates while stored Chain/Append references follow the actual Blender name.
New Append transfer
A connector-pair click releases only the selected inactive part from its old chain and transfers it into the active target's surviving chain.
Reversible relationships
Append Off remembers but does not apply the last relation; Append On restores it as Re-Append. Parenting remains independent.
Solver locks
Locked components remain directly movable with Blender G/R and can still be appended without silently overriding their target pose.
Proportional SRSS
A persistent toggle controls whether eligible SRSS components share required length changes.
Curve Guide Fit
A selected Bezier or Poly curve attracts internal chain components while two locked endpoint poses remain authoritative.
Ordered Assembly
Move parts up or down in the tracked OCL sequence without losing staged poses; obstacles remain automatic spatial overlays.
Automatic Pipe Routing
The centerline plan avoids inflated obstacles and preserves partial World-axis locks. Apply Catalog Route inserts demanded bends, replaces surplus bend capacity and validates the complete assembly transactionally.
One product definition
Each exact variant has one functional SOURCE below 2HE_MEP/HVAC. Product-defining values are part of its ID; no WORK definition is generated.
Source-only Generate
Generate creates and selects only the canonical SRC_… object. It does not silently create a project placement.
Create Instance
With a Source or occurrence active, Create Instance places INST_… using the Scene-saved L/R/S × X/Y/Z defaults.
Connector Pivot
A/B/C/D temporarily use the connector cursor pivot. Selecting another object restores Active Element and its object-origin gizmo through a short-lived watcher.
Generator and instance workflow
- Choose the complete product variant and click Create. A new product creates only its canonical Source; an existing product selects that Source.
- Move the selected Source into the visible warehouse and use Commit Source Position to preserve every existing instance pose.
- Select the Source or one of its occurrences, set the optional collapsed Instance Transform Defaults, and click Create Instance.
Assembly workflow
- Build tracked connections with the required connector mappings.
- Use the Chains-list P control when following parts should move together, then switch it off while preserving their world poses.
- Select any occurrence and expand Chain for order, inversion, connection cutting and local seam solving.
- Expand Solver for advanced World locks, whole-chain solving and guide routing.
- Set Solver Locks on architectural endpoints; they remain directly movable with G/R/S.
- Use Solve Between Locks or Live Solve and read unresolved-length diagnostics when a side cannot reach.
- For guided routing, choose a Curve under Guide Fit (Prototype) and click Fit Chain to Guide.
- Expand Components only when another catalogue part is needed.
Compatibility and validation
- Works with VentLib source objects, direct collection instances and FH__InstanceStructure PART_INSTANCE objects.
- Blender 5.2 regressions verify selected-part chain transfer, dormant Append-Off behavior, constrained Re-Append, transactional in-place Re-fit Cut, SLU/MFI stop-datum overlap, SRSS propagation, Live Solve, Guide Fit and broken-connection diagnostics.
- v0.21 validates tracked connector closure and sampled catalog centerlines against obstacle axes using both duct radii and installation clearance.
Documentation
GuidesSolver GuideDevLogSource
Additional source definitions: enable Create additional SRC definition to create __VAR-B, __VAR-C, etc. Procurement still groups these alternatives as one product.