minsung
567345e933
Sprint 34 — IFC4X3 Add2 익스포터 Phase 2
Phase 1(사각 profile·월드 원점) → Phase 2(정확 단면·skew·헌치·방호벽).
## 변경
### bridge_export.rs
- `IfcSectionKind` enum: PscI / SteelBox / Rectangle.
- `BridgeExportParams` 확장:
· section_kind, skew_deg, haunch_depth, show_parapets, show_joints.
- `write_psc_i_profile()` 신설:
· PSC-I 14점(top/bottom flange + web + haunch) 을
`IFCARBITRARYCLOSEDPROFILEDEF` + `IFCPOLYLINE` 으로 출력.
· 도심 중심화 (Y 를 h/2 만큼 아래로 평행이동) → beam 중심 배치와 정합.
· start==end 점 복제로 profile close.
- `write_girder_profile()`: section_kind 따라 PSC-I / Rectangle 분기.
- `write_local_placement_skewed()`:
· IFCAXIS2PLACEMENT3D RefDirection = (cos θ, 0, -sin θ) 로 Y축 회전 반영.
· 교대·피어·받침에 적용. 거더·데크는 직선 유지(precast 관례).
- 헌치: deck Y = bearing_h + girder_h + haunch_depth + slab/2.
- 방호벽: IFCRAILING .GUARDRAIL. 좌/우 2개 (500×1200 × total_mm).
### 테스트
- psc_i_profile_is_used_by_default
- parapets_present_by_default / parapets_hidden_when_disabled
- rectangle_section_skips_psc_i
- skew_rotates_ref_direction (30° → cos30≈0.866 검증)
- haunch_moves_deck_up
16개 전체 통과.
Phase 3 로드맵(후속):
- IfcAlignment + IfcLinearPlacement (선형 기반 좌표)
- Camber 반영 (solid 변형 또는 여러 extrude 단면)
- Pset_BeamCommon·Pset_BearingCommon (Property Set)
- IfcElementAssembly 로 신축이음·격벽·피어(column+capbeam) 그룹화
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 17:58:23 +09:00
..
2026-04-14 18:48:10 +09:00
2026-04-15 08:18:06 +09:00
2026-04-15 09:09:47 +09:00
2026-04-14 20:55:16 +09:00
2026-04-15 17:58:23 +09:00
2026-04-15 12:42:21 +09:00
2026-04-15 17:02:51 +09:00
2026-04-14 17:46:14 +09:00