- 移除有问题的OCC.Core导入,避免模块依赖问题 - 重新实现基于trimesh的层级保留功能,使用连通组件分离 - 添加智能回退机制,如果分离失败自动使用标准转换 - 扩展CLI和API接口支持层级保留参数 - 更新文档说明新的实现方式 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
45 lines
1.0 KiB
Python
45 lines
1.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
核心数据模型定义
|
|
"""
|
|
|
|
from enum import Enum
|
|
from dataclasses import dataclass
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class TaskStatus(Enum):
|
|
"""任务状态枚举"""
|
|
PENDING = "pending"
|
|
PROCESSING = "processing"
|
|
COMPLETED = "completed"
|
|
FAILED = "failed"
|
|
|
|
|
|
@dataclass
|
|
class ConvertOptions:
|
|
"""转换选项"""
|
|
auto_scale: bool = True
|
|
auto_center: bool = True
|
|
preserve_hierarchy: bool = False
|
|
|
|
|
|
@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() |