An open API service indexing awesome lists of open source software.

https://github.com/cfd-dev/pygui


https://github.com/cfd-dev/pygui

Last synced: 20 days ago
JSON representation

Awesome Lists containing this project

README

          

# VTK 3D模型查看器

一个基于VTK的3D模型查看器,支持多种GUI框架,用于读取和可视化VTK文件。

## 功能特性

1. **核心功能**:读取并可视化显示vtk文件的3D模型数据
2. **菜单栏**:包含文件操作相关选项,实现文件浏览和导入功能
3. **主视图区**:用于显示VTK渲染的3D模型,支持基本的交互操作(旋转、缩放、平移)
4. **左侧模型树**:以层级结构展示导入模型的组成部分和属性信息
5. **选项卡面板**:集成文件浏览和导入功能,提供直观的文件选择界面
6. **显示模式切换**:支持线框模式、实体模式和实体-线框模式
7. **背景颜色设置**:支持预设颜色和自定义颜色
8. **用户设置持久化**:支持保存和加载显示模式及背景颜色设置

## 支持的文件格式

- .vtk(包括polydata、unstructured_grid和structured_grid类型)

*注意:虽然项目目录中包含.cgns文件,但当前代码不支持CGNS格式。*

## 技术实现

- 使用Python作为开发语言
- 使用VTK库进行3D渲染
- 提供两种GUI框架选项:Tkinter 和 PyQt5
- 支持conda PyMeshGen虚拟环境

## 环境配置

### 前提条件

- 已安装conda
- 已创建PyMeshGen虚拟环境

### 安装依赖

```bash
conda activate pymeshgen
pip install vtk
pip install pyqt5 # For PyQt5 versions (if needed)
```

## 运行应用程序

### Tkinter版本(推荐)

```bash
conda activate pymeshgen
python main_tk_simple.py # 推荐的精简Tkinter版本
```

或者运行其他版本:

```bash
conda activate pymeshgen
python main_tk.py # 完整Tkinter版本
```

### PyQt5版本

```bash
conda activate pymeshgen
python main_simple.py # 精简PyQt5版本
python main.py # 完整PyQt5版本
```

### 使用conda run

```bash
conda run -n pymeshgen python main_tk_simple.py
```

## 使用说明

1. **打开文件**:
- 点击菜单栏的「文件」→「打开」
- 或点击左侧面板的「浏览文件」按钮
- 选择.vtk文件进行打开

2. **查看模型**:
- 在主视图区使用鼠标进行旋转、缩放和平移操作
- 旋转:按住鼠标左键拖动
- 缩放:滚动鼠标滚轮
- 平移:按住鼠标右键拖动

3. **查看模型信息**:
- 左侧模型树显示模型的详细信息,包括:
- 数据类型
- 点数量
- 单元数量
- 网格类型
- 文件路径

4. **导入模型**:
- 在左侧面板的「文件导入」选项卡中,点击「浏览文件」选择文件
- 点击「导入模型」按钮导入模型

5. **切换显示模式**:
- 通过菜单栏「视图」→「显示模式」选择
- 或通过左侧面板的「设置」选项卡选择

6. **更改背景颜色**:
- 通过菜单栏「视图」→「背景颜色」选择
- 或通过左侧面板的「设置」选项卡选择预设颜色或自定义颜色

## 错误处理

- 如果文件不存在,会显示「文件不存在」错误
- 如果文件格式不支持,会显示「不支持的文件格式,仅支持.vtk文件」错误
- 如果VTK文件无效,会显示「无效的VTK文件,无法读取模型数据或数据为空」错误

## 质量标准

- 应用程序启动正常,无明显卡顿
- 功能按钮响应及时
- 错误提示信息清晰易懂
- VTK渲染性能流畅,模型显示准确
- 窗口大小调整时视图保持正常

## 文件结构

```
PyGUI/
├── main.py # 完整PyQt5版本主应用程序文件
├── main_simple.py # 精简PyQt5版本主应用程序文件
├── main_tk.py # 完整Tkinter版本主应用程序文件
├── main_tk_simple.py # 推荐的精简Tkinter版本主应用程序文件
├── README.md # 说明文档
├── viewer_settings.json # 用户设置保存文件
├── tmp_mesh_opt.vtk # 示例VTK文件
├── 30p30n.cgns # 示例CGNS文件(当前不支持)
└── 30p30n.vtk # 示例VTK文件
```

## 开发说明

- 代码结构清晰、模块化
- 实现了文件路径选择、文件格式验证和错误处理机制
- 界面布局合理、响应式,各组件间交互流畅
- 提供多个版本以适应不同GUI框架偏好
- 包含设置持久化功能,提升用户体验

## 许可证

MIT License