Bellows expansion joint
Metallic bellows expansion joint with weld-neck flanged ends and pipe nipples. Stainless bellows with formed convolutions (count, pitch and height scale with the size) and reinforcing collars on the cuffs. kind selects the hardware: single (unrestrained), tied (tie rods, gusseted lugs, spherical washers and nuts), hinged (a hinge pair with pins), gimbal (a gimbal ring with two pin pairs at 90°) or in-line pressure-balanced (two line bellows and a larger balancing bellows on an intermediate spool, tied end to end). Optional internal flow liner and external cover.
Installation
Copies piping/expansion-joint.tsx and the shared lib/ into src/components/deck-twin/. Needs three, @react-three/fiber and @react-three/drei. See installation for the manual route.
Usage
import { Canvas } from '@react-three/fiber'
import { OrbitControls } from '@react-three/drei'
import { Stage } from './components/deck-twin/lib/stage'
import { ExpansionJoint } from './components/deck-twin/piping/expansion-joint'
export default function Scene() {
return (
<Canvas shadows camera={{ position: [8, 5, 9], fov: 35 }}>
<Stage>
<ExpansionJoint />
</Stage>
<OrbitControls makeDefault />
</Canvas>
)
}
Props
| Prop | Type | Default | Range |
|---|---|---|---|
kind | "single" | "tied" | "hinged" | "gimbal" | "pressure-balanced" | null | |
nps | number (NPS, in) | null | |
rating | 150 | 300 | 600 | 900 | 1500 | 2500 | null | |
convolutions | number | null | 2 – 20 |
liner | boolean | null | |
cover | boolean | null | |
...group | position, rotation, scale… |
P&ID
A short section of the line drawn with a zig-zag (convoluted) outline between two flange bars; tie rods, hinges or gimbals are noted as EJ type, often tagged EJ or XJ.
Zig-zag outline in the line = bellows; a flexible hose is drawn as a wavy line. Found on exhaust ducts, cooling water, compressor and turbine connections.
kindnpsratingconvolutionslinercoverTypical suppliers
U.S. Bellows. The geometry is generic and sized from public standards. It is not vendor CAD.
For agents
Machine-readable entry with props, ranges, defaults and ports:
Or fetch /r/expansion-joint.json, or copy a ready-made instruction:
Add the Deck Twin "Bellows expansion joint" component to this project. Run `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz add expansion-joint` (it copies the file and the shared lib into src/components/deck-twin/), then `npx -y https://decktwin.com/cli/deck-twin-0.2.2.tgz info expansion-joint` for its props, ranges and ports. Render <ExpansionJoint /> inside a React Three Fiber <Canvas shadows>, wrapped in <Stage> from src/components/deck-twin/lib/stage. Set props from my data (metres, NPS in inches, ASME class) and leave the rest at defaults. Install three, @react-three/fiber, @react-three/drei and @types/three if they're missing. Full guide: https://decktwin.com/skill/SKILL.md