How mrnorwayman/automatic-pipe-routing works
Automatic 3D pipe routing takes STEP port data and an STL machine model, searches obstacle-avoiding paths for each pipe, turns paths into point clouds, and displays the result. Main.py documents the orchestration; Classes.py excerpts show STEP extraction, STL sampling/fragmentation, pipe generation through D*, and visualization. Some internal implementations are omitted, so uncertain links are not shown.
Main entry points: Main.py Routing workflow · Classes.py Pipe definition
Components 13
Geometry inputs
- STEP port extraction
Classes.py - STL obstacle model
Classes.py - Obstacle fragmentation
Classes.py
Pipe routing
- Pipe definition
Classes.py - D* path search
Classes.py - Search state
Classes.py - Pipe point cloud
Classes.py
3D visualization
- Point-cloud viewer
Classes.py
Other components
- Operator
- Routing workflow
Main.py - STEP model
- STL mesh file
- Open3D
Connections 17
- Operator → Routing workflow: runs
- Routing workflow → STEP port extraction: requests ports
- STEP model → STEP port extraction: read by
- STEP port extraction → Routing workflow: returns ports
- Routing workflow → Pipe definition: creates pipes
- Routing workflow → STL obstacle model: creates model
- STL mesh file → STL obstacle model: read by
- Routing workflow → Obstacle fragmentation: requests obstacles
- STL obstacle model → Obstacle fragmentation: samples mesh
- Routing workflow → Pipe definition: sets obstacles
- Pipe definition → D* path search: calls
- D* path search → Search state: creates states
- D* path search → Pipe definition: returns path
- Pipe definition → Pipe point cloud: converts path
- Routing workflow → Point-cloud viewer: adds pipe points
- STL obstacle model → Point-cloud viewer: adds mesh
- Point-cloud viewer → Open3D: displays