385 lines
19 KiB
HTML
385 lines
19 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>CAE网格生成助手 - AI Agent</title>
|
|
|
|
<!-- Favicon -->
|
|
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
|
|
|
<!-- Bootstrap CSS -->
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<!-- Font Awesome -->
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
|
|
<!-- Custom CSS -->
|
|
<link href="/static/css/main.css" rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<!-- Navigation -->
|
|
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
|
|
<div class="container">
|
|
<a class="navbar-brand" href="#">
|
|
<i class="fas fa-cube me-2"></i>
|
|
CAE网格生成助手
|
|
</a>
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav ms-auto">
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="#upload">上传文件</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="#process">网格生成</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="#results">结果展示</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" href="#help">帮助</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Main Content -->
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<!-- Sidebar -->
|
|
<div class="col-lg-3 col-md-4 sidebar">
|
|
<div class="sidebar-content">
|
|
<h5 class="sidebar-title">
|
|
<i class="fas fa-tasks me-2"></i>
|
|
处理流程
|
|
</h5>
|
|
|
|
<!-- Process Steps -->
|
|
<div class="process-steps">
|
|
<div class="step-item" id="step-upload">
|
|
<div class="step-icon">
|
|
<i class="fas fa-upload"></i>
|
|
</div>
|
|
<div class="step-content">
|
|
<h6>1. 上传STEP文件</h6>
|
|
<p class="text-muted">选择涡扇叶片STEP文件</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="step-item" id="step-validate">
|
|
<div class="step-icon">
|
|
<i class="fas fa-check-circle"></i>
|
|
</div>
|
|
<div class="step-content">
|
|
<h6>2. 文件验证</h6>
|
|
<p class="text-muted">验证文件格式和完整性</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="step-item" id="step-process">
|
|
<div class="step-icon">
|
|
<i class="fas fa-cogs"></i>
|
|
</div>
|
|
<div class="step-content">
|
|
<h6>3. 网格生成</h6>
|
|
<p class="text-muted">自动生成高质量网格</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="step-item" id="step-quality">
|
|
<div class="step-icon">
|
|
<i class="fas fa-chart-line"></i>
|
|
</div>
|
|
<div class="step-content">
|
|
<h6>4. 质量检查</h6>
|
|
<p class="text-muted">评估网格质量</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="step-item" id="step-results">
|
|
<div class="step-icon">
|
|
<i class="fas fa-download"></i>
|
|
</div>
|
|
<div class="step-content">
|
|
<h6>5. 结果导出</h6>
|
|
<p class="text-muted">下载网格文件和报告</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- System Status -->
|
|
<div class="system-status mt-4">
|
|
<h6>
|
|
<i class="fas fa-info-circle me-2"></i>
|
|
系统状态
|
|
</h6>
|
|
<div class="status-item">
|
|
<span class="status-label">ANSYS连接:</span>
|
|
<span class="status-value" id="ansys-status">
|
|
<i class="fas fa-circle text-success"></i> 正常
|
|
</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="status-label">处理队列:</span>
|
|
<span class="status-value" id="queue-status">0 个任务</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Main Content Area -->
|
|
<div class="col-lg-9 col-md-8 main-content">
|
|
<!-- Header -->
|
|
<div class="content-header">
|
|
<h2>
|
|
<i class="fas fa-cube me-2"></i>
|
|
涡扇叶片网格生成
|
|
</h2>
|
|
<p class="text-muted">基于AI的自动化CAE网格生成系统</p>
|
|
</div>
|
|
|
|
<!-- Alert Container -->
|
|
<div id="alert-container"></div>
|
|
|
|
<!-- File Upload Section -->
|
|
<section id="upload-section" class="content-section">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-upload me-2"></i>
|
|
文件上传
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="upload-area" id="upload-area">
|
|
<div class="upload-content">
|
|
<i class="fas fa-cloud-upload-alt upload-icon"></i>
|
|
<h6>拖拽STEP文件到此处或点击选择</h6>
|
|
<p class="text-muted">支持 .step, .stp 格式,最大文件大小 100MB</p>
|
|
<input type="file" id="file-input" accept=".step,.stp" hidden>
|
|
<button class="btn btn-primary" onclick="document.getElementById('file-input').click()">
|
|
<i class="fas fa-folder-open me-2"></i>
|
|
选择文件
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- File Info -->
|
|
<div id="file-info" class="file-info mt-3" style="display: none;">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<strong>文件名:</strong> <span id="file-name"></span>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<strong>大小:</strong> <span id="file-size"></span>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<strong>状态:</strong> <span id="file-status"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Processing Section -->
|
|
<section id="processing-section" class="content-section" style="display: none;">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-cogs me-2"></i>
|
|
网格生成进度
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<!-- Progress Bar -->
|
|
<div class="progress-container">
|
|
<div class="progress mb-3">
|
|
<div class="progress-bar progress-bar-striped progress-bar-animated"
|
|
id="progress-bar" role="progressbar" style="width: 0%">
|
|
<span id="progress-text">0%</span>
|
|
</div>
|
|
</div>
|
|
<div class="progress-info">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<strong>当前步骤:</strong> <span id="current-step">等待开始</span>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<strong>预计剩余时间:</strong> <span id="estimated-time">--</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Processing Log -->
|
|
<div class="processing-log">
|
|
<h6>处理日志</h6>
|
|
<div id="log-container" class="log-container">
|
|
<!-- Log entries will be added here -->
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Control Buttons -->
|
|
<div class="processing-controls mt-3">
|
|
<button id="start-processing" class="btn btn-success" disabled>
|
|
<i class="fas fa-play me-2"></i>
|
|
开始生成
|
|
</button>
|
|
<button id="pause-processing" class="btn btn-warning" disabled>
|
|
<i class="fas fa-pause me-2"></i>
|
|
暂停
|
|
</button>
|
|
<button id="stop-processing" class="btn btn-danger" disabled>
|
|
<i class="fas fa-stop me-2"></i>
|
|
停止
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Results Section -->
|
|
<section id="results-section" class="content-section" style="display: none;">
|
|
<div class="row">
|
|
<!-- Mesh Statistics -->
|
|
<div class="col-lg-6">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-chart-bar me-2"></i>
|
|
网格统计
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="stats-grid">
|
|
<div class="stat-item">
|
|
<div class="stat-value" id="element-count">--</div>
|
|
<div class="stat-label">单元数量</div>
|
|
</div>
|
|
<div class="stat-item">
|
|
<div class="stat-value" id="node-count">--</div>
|
|
<div class="stat-label">节点数量</div>
|
|
</div>
|
|
<div class="stat-item">
|
|
<div class="stat-value" id="quality-score">--</div>
|
|
<div class="stat-label">质量评分</div>
|
|
</div>
|
|
<div class="stat-item">
|
|
<div class="stat-value" id="generation-time">--</div>
|
|
<div class="stat-label">生成时间(秒)</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Quality Assessment -->
|
|
<div class="col-lg-6">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-check-circle me-2"></i>
|
|
质量评估
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="quality-status" id="quality-status">
|
|
<div class="quality-badge">
|
|
<span class="badge bg-secondary">等待结果</span>
|
|
</div>
|
|
</div>
|
|
<div class="quality-details mt-3" id="quality-details">
|
|
<!-- Quality details will be populated here -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Mesh Visualization -->
|
|
<div class="row mt-4">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-eye me-2"></i>
|
|
网格可视化
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div id="mesh-visualization" class="mesh-visualization">
|
|
<div class="visualization-placeholder">
|
|
<i class="fas fa-cube visualization-placeholder-icon"></i>
|
|
<p>网格可视化将在生成完成后显示</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Export Options -->
|
|
<div class="row mt-4">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">
|
|
<i class="fas fa-download me-2"></i>
|
|
导出选项
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="export-options">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<button id="download-mesh" class="btn btn-outline-primary w-100" disabled>
|
|
<i class="fas fa-file-archive me-2"></i>
|
|
下载网格文件
|
|
</button>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<button id="download-report" class="btn btn-outline-primary w-100" disabled>
|
|
<i class="fas fa-file-pdf me-2"></i>
|
|
下载报告
|
|
</button>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<button id="download-image" class="btn btn-outline-primary w-100" disabled>
|
|
<i class="fas fa-image me-2"></i>
|
|
下载图像
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Footer -->
|
|
<footer class="footer mt-5">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<p>© 2025 CAE网格生成助手. All rights reserved.</p>
|
|
</div>
|
|
<div class="col-md-6 text-end">
|
|
<p>Powered by ANSYS Mechanical & PyMechanical</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
<!-- Bootstrap JS -->
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
<!-- Custom JS -->
|
|
<script src="/static/js/main.js"></script>
|
|
</body>
|
|
</html> |