## 主要变更 - 创建新的STP文件文本解析器,直接读取文件内容提取组件名称 - 简化CLI和API接口,移除层级和名称保留参数 - 所有转换默认使用层级模式并保留原始组件名称 - 重构转换器类,清理冗余代码 ## 技术改进 - 新增 core/stp_parser.py:直接解析PRODUCT和PRODUCT_DEFINITION实体 - 优化 converter.py:统一转换流程,默认层级转换 - 更新 main.py:简化命令行参数,移除 --hierarchy 和 --preserve-names - 修复 API 错误处理:全局异常处理器返回正确的JSON响应 - 完善 API 精度参数传递:支持自定义精度选项 ## 接口变更 - CLI:`python main.py input.stp output.glb` 即可获得层级转换结果 - API:移除 preserve_hierarchy 和 preserve_original_names 参数 - 保持向后兼容:原有的基本用法不变 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
53 lines
1.2 KiB
Python
53 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
核心数据模型定义
|
|
"""
|
|
|
|
from enum import Enum
|
|
from dataclasses import dataclass, field
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class TaskStatus(Enum):
|
|
"""任务状态枚举"""
|
|
PENDING = "pending"
|
|
PROCESSING = "processing"
|
|
COMPLETED = "completed"
|
|
FAILED = "failed"
|
|
|
|
|
|
@dataclass
|
|
class PrecisionOptions:
|
|
"""精度选项"""
|
|
linear_deflection: float = 0.01
|
|
angular_deflection: float = 0.1
|
|
mesh_quality: str = "medium" # low/medium/high/custom
|
|
|
|
|
|
@dataclass
|
|
class ConvertOptions:
|
|
"""转换选项"""
|
|
auto_scale: bool = True
|
|
auto_center: bool = True
|
|
precision: PrecisionOptions = field(default_factory=PrecisionOptions)
|
|
|
|
|
|
@dataclass
|
|
class ConvertTask:
|
|
"""转换任务"""
|
|
task_id: str
|
|
input_path: str
|
|
output_path: str
|
|
options: ConvertOptions
|
|
status: TaskStatus = TaskStatus.PENDING
|
|
progress: int = 0
|
|
message: str = ""
|
|
created_at: datetime = None
|
|
started_at: Optional[datetime] = None
|
|
completed_at: Optional[datetime] = None
|
|
error_message: Optional[str] = None
|
|
|
|
def __post_init__(self):
|
|
if self.created_at is None:
|
|
self.created_at = datetime.now() |