- 扩展DocumentChapter模型支持嵌套结构和评分值 - 新增智能分组算法,按关键词和前缀对评分项进行分类 - 重写章节生成逻辑,支持一级、二级、三级标题完整结构 - 优化显示系统,支持递归显示和颜色区分 - 增强表格解析能力,处理复杂的合并单元格结构 - 改进AI识别逻辑,更好地识别评分表格类型 - 完善.gitignore文件,添加项目相关忽略规则 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.1 KiB
4.1 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
项目概述
这是一个基于Three.js的3D模型查看器和船厂三维数据管理展示系统。项目包含两个主要页面:
index.html: 主要的3D模型查看器界面,支持模型加载、选择、测量、标注等功能1.html: 船舶建造精度数字化平台的数据分析界面,通过iframe嵌入3D查看器
技术架构
前端技术栈
- Three.js: 核心3D渲染引擎
- 原生JavaScript: ES6+ 模块化架构,无框架依赖
- HTML5/CSS3: 响应式布局,使用Flexbox和Grid
- Tailwind CSS: 样式框架(仅在1.html中使用)
- ECharts: 数据可视化图表(仅在1.html中使用)
核心模块结构
所有JavaScript模块位于 js/ 目录下,采用模块化设计:
核心管理器
- ModelViewer (
main.js): 主应用入口,管理整个3D场景 - ModelManager (
ModelManager.js): 模型管理,处理模型的加载和切换 - ModelLoader (
ModelLoader.js): 模型加载器,支持GLTF格式 - ModelAPI (
ModelAPI.js): 模型API接口,提供程序化控制
功能管理器
- SelectionManager (
SelectionManager.js): 零件选择和高亮 - MeasurementManager (
MeasurementManager.js): 3D测量工具(距离、角度、面积) - ClippingManager (
ClippingManager.js): 切面控制 - AnnotationManager (
AnnotationManager.js): 3D标注功能 - ModelTreeManager (
ModelTreeManager.js): 模型结构树管理 - AnomalyDisplayManager (
AnomalyDisplayManager.js): 异常状态显示 - LayerDisplayManager (
LayerDisplayManager.js): 分层显示管理
UI和状态管理
- UIController (
UIController.js): UI控制器,管理所有界面交互 - ObjectStateManager (
ObjectStateManager.js): 对象状态管理 - StorageManager (
StorageManager.js): 本地存储管理 - OutlineManager (
OutlineManager.js): 边缘高亮效果
资源结构
- models/: 3D模型文件(.glb格式)
- css/: 样式文件(主要是style.css)
- image/: UI图标和图片资源
- three/: Three.js库文件
开发环境
启动开发服务器
由于项目使用ES6模块和本地文件引用,需要通过HTTP服务器运行:
# 使用Live Server(推荐)
# VS Code安装Live Server扩展,配置端口5501
# 右键点击index.html选择"Open with Live Server"
# 或使用Python内置服务器
python -m http.server 5501
# 或使用Node.js http-server
npx http-server -p 5501
访问页面
- 3D模型查看器:
http://localhost:5501/index.html - 数据分析平台:
http://localhost:5501/1.html
开发约定
模型文件管理
- 支持的格式: .glb (推荐)
- 模型文件存放在
models/目录 - 默认加载模型:
CX0856_CB01C.glb
配置和状态管理
- 使用
StorageManager进行本地存储 - 配置项通过
ObjectStateManager管理 - 模型状态通过事件系统同步
代码风格
- 使用ES6+语法和模块
- 采用面向对象设计模式
- 每个功能模块独立文件
- 使用驼峰命名法
- 保持代码注释的完整性
事件通信
项目使用自定义事件系统进行模块间通信:
- 模型加载完成事件
- 选择状态变化事件
- UI状态更新事件
- 测量结果事件
浏览器兼容性
- 支持现代浏览器(Chrome 88+, Firefox 85+, Safari 14+)
- 依赖ES6模块支持
- 需要WebGL 2.0支持
调试和测试
控制台调试
- 使用
window.modelViewer访问主应用实例 - 各管理器实例可通过modelViewer实例访问
- 开启浏览器开发者工具查看Three.js性能面板
性能优化
- 大模型文件建议压缩优化
- 使用LOD (Level of Detail) 技术
- 合理使用材质和纹理
- 避免过度的实时计算
常见问题
CORS错误
确保通过HTTP服务器访问,而不是直接打开HTML文件
模型加载失败
检查模型文件路径和格式,确保.glb文件完整性
Three.js版本兼容
项目基于Three.js r150+,更新版本时注意API变更
内存泄漏
及时清理不需要的几何体、材质和纹理对象