|
|
aa0557c9e6
|
修改系统配置的问题。
|
2025-12-31 11:29:21 +08:00 |
|
|
|
93135d3c29
|
增加了路径曲线化的方案,实现了基础的曲线化路径数据结构和存储,以及曲线化核心算法
|
2025-12-30 18:29:41 +08:00 |
|
|
|
f3a07eb482
|
实现路径坐标点手动编辑功能
|
2025-12-30 09:55:36 +08:00 |
|
|
|
2bd117ff8a
|
重构了高亮显示的逻辑,统一处理流程。
|
2025-12-11 13:23:55 +08:00 |
|
|
|
7446431f9c
|
增加了虚拟物流车辆动画生成和碰撞检测功能
|
2025-12-10 16:59:35 +08:00 |
|
|
|
ca4488dcb8
|
根据安装程序的要求,更新项目文件,目标平台为x64,项目设置为Release
|
2025-11-18 18:27:40 +08:00 |
|
|
|
dba1f76f0a
|
增加了几何体缓存文件支持
|
2025-10-20 10:39:21 +08:00 |
|
|
|
b05bb727c6
|
refactor: 完成 DataBindingPerformanceMonitor 功能的完整删除
- 删除 DataBindingPerformanceMonitor.cs 文件
- 从 NavisworksTransportPlugin.csproj 移除编译引用
- 清理 ViewModelBase.cs 中的所有性能监控代码
- 清理 ThreadSafeObservableCollection.cs 中的性能监控集成
- 清理 SmartDataBindingOptimizer.cs 中的性能监控使用
- 清理 BindingExpressionOptimizer.cs 中的性能监控调用
该功能不再需要,移除后简化了代码结构
|
2025-10-14 15:01:26 +08:00 |
|
|
|
360d55ffa8
|
fix: 修复 Vector3d.Distance 调用并将 Spatial 文件添加到项目
- 修复 Distance 方法调用(使用实例方法而非静态方法)
- 将 SpatialHashGrid.cs 和 SpatialIndexManager.cs 添加到 csproj
- 在 PathAnimationManager.cs 中添加命名空间引用
|
2025-10-14 11:53:52 +08:00 |
|
|
|
bd7eeb3d46
|
修复路径预计算范围不对、碰撞检测报告名字匹配错误的BUG
|
2025-10-13 19:14:46 +08:00 |
|
|
|
27908540c2
|
实现XY平面膨胀算法和3D体素路径规划
本次提交包含三个主要改进:
1. XY平面膨胀算法(VoxelGrid.cs)
- 实现简单迭代形态学膨胀
- 只在水平方向(XY平面)的4邻域膨胀
- 不在Z方向(垂直方向)膨胀
- 符合车辆物流场景:车辆只侧面/顶部碰撞障碍物
2. 3D体素路径规划(VoxelPathFinder.cs)
- 集成RoyT.AStar库进行3D A*路径规划
- 支持体素网格上的路径搜索
- 添加VoxelPathFindingTestCommand测试命令
3. UI和测试改进
- 删除旧的包围盒测试命令(VoxelGridTestCommand.cs)
- 更新SystemManagementView UI
- 添加体素路径规划测试功能
核心设计原则:
- 门模型在SDF生成前被排除(留出通道空洞)
- SDF阶段只标记几何体内部为障碍物
- 安全间隙仅在XY平面膨胀阶段应用
- 避免Z方向的错误膨胀
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-12 21:13:02 +08:00 |
|
|
|
1e11f60042
|
feat(voxel): 实现障碍物膨胀算法 - 阶段1.5完成
完成任务1.5 - 障碍物膨胀算法(Obstacle Inflation)
核心实现:
- ✅ VoxelGrid.InflateObstacles() 主方法(约200行)
- ✅ PerformFastSweeping() 8方向扫描
- ✅ Sweep() 单向距离传播
- ✅ CheckAndUpdate() 邻居距离更新
- ✅ 从geometry4Sharp移植Fast Sweeping算法
技术特性:
- 3D距离变换使用DenseGrid3f存储距离场
- 8方向扫描:(+1,+1,+1), (-1,-1,-1)等8个方向
- 每次扫描检查7个邻居进行距离更新
- 门类型体素保护机制(门不膨胀)
- 正确的模型单位转换处理
性能数据(gatehouse_pub.nwd):
- 初始障碍物:3,747个体素
- 膨胀后障碍物:4,477个体素
- 新增膨胀:730个体素(19.5%增量)
- Fast Sweeping耗时:3ms
- 总膨胀耗时:4-5ms
- 可通行比例:22.9% → 7.9%
集成测试:
- VoxelGridSDFTestCommand新增膨胀测试
- SystemManagementViewModel调整测试参数(0.6米膨胀半径)
- 膨胀半径必须 >= 体素大小才能生效
问题修复:
- 修复膨胀为0的问题(参数配置:0.3米 < 0.5米体素)
- 调整测试参数为0.6米(600模型单位 > 500体素大小)
- 移除VoxelGridSDFTestCommand构造函数默认参数
阶段1完成:
- 任务1.1-1.5全部完成 ✅
- 性能远超目标(< 1秒 vs 目标 < 5秒)
- 提前5天完成阶段1
- 建议继续阶段2
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-12 17:00:06 +08:00 |
|
|
|
6460dda879
|
feat(voxel): 添加体素网格测试UI和命令
实现内容:
1. 创建 VoxelGridTestCommand - 体素网格测试命令
- 选中对象创建体素网格
- 简单的边界标记(边界为障碍物,内部为自由空间)
- 生成可视化报告
- 防止体素数量过多(>100万)
2. 在系统管理页签添加功能测试区域
- 新增"功能测试"分组
- 添加"测试体素网格"按钮
- 集成到 SystemManagementViewModel
3. 功能特性
- 自动计算选中对象的总包围盒
- 提取三角网格(为后续SDF做准备)
- 体素统计信息(总数、可通行、障碍物)
- 生成详细的测试报告
使用方法:
1. 在 Navisworks 中选择一个或多个模型对象
2. 打开插件面板 -> 系统管理页签
3. 滚动到最下方"功能测试"区域
4. 点击"测试体素网格"按钮
5. 查看测试结果对话框和日志
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-12 13:49:55 +08:00 |
|
|
|
805814616a
|
feat(voxel): 阶段1.5 - 体素网格可视化验证
实现内容:
- 创建 VoxelGridVisualizer 类,支持多种可视化模式
- VisualizeAsPoints(): 完整网格可视化(支持采样率)
- VisualizeSlice(): 单层切片可视化
- VisualizeBoundary(): 障碍物边界可视化
- ConvertToPathRoute(): 转换为 PathRoute 以便集成到现有渲染系统
- QuickVisualizationTest(): 快速测试套件
- GenerateVisualizationReport(): 文本报告生成
设计策略:
- 复用现有 PathPointRenderPlugin,而非创建新的 RenderPlugin
- 将体素转换为 PathPoint 对象进行渲染
- 使用小球体表示体素,不同颜色区分类型
完成情况:
- ✅ 编译通过,无错误
- ✅ 阶段 1 全部 5 个任务完成 (100%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-12 13:38:57 +08:00 |
|
|
|
f64e79d372
|
feat(voxel): 阶段1.4 - 测试 geometry4Sharp 的 MeshSignedDistanceGrid
- 创建 MeshSDFTester.cs: 测试 geometry4Sharp 库的可用性和功能
- 实现 Navisworks Triangle3D 到 DMesh3 的转换
- 实现 MeshSignedDistanceGrid (SDF) 计算功能
- 添加库可用性快速测试方法
- 手动构建测试立方体网格
特性(原型版本):
- QuickLibraryTest(): 验证 geometry4Sharp 库是否正常工作
- ConvertToDMesh3(): 将 Navisworks 三角形转换为 DMesh3 格式
- ComputeSDF(): 计算签名距离场(使用 DMeshAABBTree3 加速)
- TestFullPipeline(): 完整测试流程(ModelItem → 三角形 → DMesh3 → SDF)
- CreateTestCubeMesh(): 手动创建测试立方体
注意:
- 这是原型版本,部分 SDF 距离查询 API 需要进一步研究
- 验证了 DMesh3, DMeshAABBTree3, MeshSignedDistanceGrid 基本可用
- 与 GeometryHelper.ExtractTriangles() 集成
下一步: 体素可视化验证(阶段1.5)或根据实际需求调整
|
2025-10-12 13:20:29 +08:00 |
|
|
|
064945bfa6
|
feat(voxel): 阶段1.3 - 实现简单体素化原型 (VoxelGridGenerator)
- 创建 VoxelGridGenerator.cs: 从 BIM 模型生成体素网格
- 使用包围盒方法进行简单体素化(阶段1原型版本)
- 支持障碍物膨胀(车辆半径)
- 自动识别物流元素类型(从属性或名称推断)
- 详细的性能日志和统计信息
- 包含 CreateTestGrid() 快速测试方法
特性:
- 包围盒体素化算法
- 物流类型自动识别(门、楼梯、电梯、通道、障碍物)
- 体素膨胀处理(仅对障碍物)
- 单位自动转换(米 → 模型单位)
- 完整的 XML 中文注释(360行代码)
性能:
- 支持大规模场景处理
- 详细的时间统计和进度日志
下一步: 测试 MeshSignedDistanceGrid(阶段1.4)
|
2025-10-12 11:45:38 +08:00 |
|
|
|
c9ca6b4d32
|
feat(voxel): 阶段1.2 - 创建 VoxelGrid 基础数据结构
- 创建 VoxelCell.cs: 体素单元类,包含类型、通行性、距离、成本等属性
- 创建 VoxelGrid.cs: 3D体素网格类,包含坐标转换、邻域查询、统计信息等方法
- 添加到 NavisworksTransportPlugin.csproj 编译项
- 编译成功验证
特性:
- VoxelCell: 物流属性集成,SDF距离存储,成本计算方法
- VoxelGrid: 世界坐标↔体素索引转换,6/26邻域查询,欧几里得/曼哈顿距离计算
- 完整的 XML 文档注释(中文)
下一步: 实现简单体素化原型
|
2025-10-12 11:25:45 +08:00 |
|
|
|
0a61057476
|
feat(voxel): 阶段1.1 - 添加 geometry4Sharp 1.0.0 NuGet 包
- 安装 geometry4Sharp 1.0.0
- 更新 packages.config
- 添加 DLL 引用到 NavisworksTransportPlugin.csproj
- 使用 net48 版本确保 .NET Framework 4.8 兼容性
依赖项: packages\geometry4Sharp.1.0.0\lib\net48\geometry4Sharp.dll
下一步: 创建 VoxelGrid 基础数据结构
|
2025-10-12 11:22:52 +08:00 |
|
|
|
a938afd946
|
对齐配置参数
|
2025-10-11 17:36:33 +08:00 |
|
|
|
7343133f12
|
增加了配置管理功能,配置文件保存为toml格式,可在配置窗口编辑;实现了日志级别管理功能
|
2025-10-11 12:18:33 +08:00 |
|
|
|
8cd988279f
|
把碰撞报告保存到数据库,修改碰撞报告格式
|
2025-10-05 19:07:23 +08:00 |
|
|
|
6091b794de
|
实现了基本的路径分析功能,增加了文档关联的sqllite数据库
|
2025-10-03 16:28:02 +08:00 |
|
|
|
2de531e98c
|
阶段二:合并动画管理器
合并策略:
- 保留 PathAnimationManager(实际使用的Transform-based动画引擎)
- 删除 LogisticsAnimationManager(SavedViewpoint功能完全未使用)
- 将碰撞排除列表缓存功能迁移到PathAnimationManager
变更详情:
1. PathAnimationManager.cs
- 添加碰撞排除列表缓存管理字段
- 迁移PrecomputeCollisionExclusions等5个方法
- 添加using NavisworksTransport.Utils
2. AnimationControlViewModel.cs
- 移除_logisticsAnimationManager字段
- 将所有缓存调用改为_pathAnimationManager
3. StartAnimationCommand.cs
- 移除未使用的LogisticsAnimationManager参数
4. 删除文件
- src/Core/Animation/LogisticsAnimationManager.cs (542行)
- 从NavisworksTransportPlugin.csproj移除引用
代码减少:约342行(542删除 - 200迁移)
编译验证:✅ 成功
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-30 22:32:59 +08:00 |
|
|
|
52bb3da0eb
|
阶段三:删除未使用的WPF Services
删除的文件:
- src/UI/WPF/Services/DataBindingBestPractices.cs (0次外部引用)
- src/UI/WPF/Services/CrossViewModelSynchronizer.cs (仅被BestPractices使用)
- src/UI/WPF/Collections/VirtualizedObservableCollection.cs (仅被BestPractices引用)
更新:
- 从NavisworksTransportPlugin.csproj中移除引用
编译验证通过
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-30 22:20:29 +08:00 |
|
|
|
3f2d66c255
|
测试和修改A*返回的坐标转换的问题
|
2025-09-29 23:25:21 +08:00 |
|
|
|
95bf6e839b
|
增加生成导航地图的功能,把当前路径场景保存成图片
|
2025-09-29 14:20:54 +08:00 |
|
|
|
8a95820fca
|
修改了通道网格生成的高度设置,能在斜面上生成网格,可视化也对了
|
2025-09-28 16:20:04 +08:00 |
|
|
|
cd74f857a2
|
对生成的网格地图进行了缓存,提高路径规划速度
|
2025-09-27 22:50:52 +08:00 |
|
|
|
89c98f1556
|
把动画播放控制改成媒体控制按钮,增加了步进、快放,支持反向播放
|
2025-09-13 13:34:22 +08:00 |
|
|
|
0b0028c19c
|
增加了文档变更后,清理和初始化的功能
|
2025-09-12 17:36:26 +08:00 |
|
|
|
abda8a4a4d
|
将插件主控UI移到Views目录
|
2025-09-12 16:30:20 +08:00 |
|
|
|
fc0b6d6aaa
|
简化可见性控制代码,改成工具类
|
2025-09-12 11:25:00 +08:00 |
|
|
|
6c5400f172
|
优化分层属性读取,优化单独显示性能(可见性管理器)
|
2025-09-11 16:41:19 +08:00 |
|
|
|
b449cf08ad
|
修改经常崩溃的问题,最大原因是并行路径计算(步骤中调用了NW的API)
|
2025-09-09 13:16:28 +08:00 |
|
|
|
cd5dd3bf34
|
修改了物流属性参数不一致的情况,简化了COM API管理
|
2025-09-08 16:23:47 +08:00 |
|
|
|
235529315e
|
对COM API的使用进行了一些优化,释放内存
|
2025-09-08 12:38:41 +08:00 |
|
|
|
3732c6fa99
|
用Idle机制改造UI管理框架
|
2025-09-08 10:01:20 +08:00 |
|
|
|
ceb37e33a4
|
增加网格可视化开关,路径优化不成功
|
2025-09-07 02:30:31 +08:00 |
|
|
|
9f42c6f381
|
修改网格点大小为自适应
|
2025-09-07 00:45:45 +08:00 |
|
|
|
e73cd2113e
|
通道网格用几何三角形精确计算,增加通行网格可视化
|
2025-09-06 16:26:39 +08:00 |
|
|
|
3ba3d328b8
|
增加了焦点捕捉功能,即使切换导航工具依然可以获取鼠标焦点,用于路径点设置
|
2025-09-05 17:49:20 +08:00 |
|
|
|
41cac3dedd
|
重构了碰撞代码,抽取包围盒几何计算到Uitls
|
2025-09-04 17:14:04 +08:00 |
|
|
|
d75582d664
|
用节点类型(是否只包含几何体)来进行节点包含判断,废掉包围盒的方式。
|
2025-09-04 12:31:29 +08:00 |
|
|
|
2cd3772105
|
将节点关系和几何体关系代码从动画管理器中抽取出来,形成工具类
|
2025-09-04 10:16:25 +08:00 |
|
|
|
0b27c609c3
|
增加了时间线和路径规划的UI原型
|
2025-09-03 14:09:04 +08:00 |
|
|
|
3c1458245c
|
清理了一些过期代码
|
2025-09-01 21:42:19 +08:00 |
|
|
|
ea809277c3
|
开始实现2.5D空间网格,进行到空间哈希成功,垂直扫描失败
|
2025-08-29 20:43:02 +08:00 |
|
|
|
065a9a2341
|
增加路径导出的文件格式:JSON和CSV,修改导出按钮文本
|
2025-08-27 17:55:12 +08:00 |
|
|
|
944f83bd7e
|
增加自定义分层设置,修改物流属性设置的问题。
|
2025-08-26 18:35:25 +08:00 |
|
|
|
2845f949e3
|
完善了碰撞报告和路径规划问题
|
2025-08-26 11:47:25 +08:00 |
|