- 移除有问题的OCC.Core导入,避免模块依赖问题 - 重新实现基于trimesh的层级保留功能,使用连通组件分离 - 添加智能回退机制,如果分离失败自动使用标准转换 - 扩展CLI和API接口支持层级保留参数 - 更新文档说明新的实现方式 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
48 lines
2.0 KiB
Python
48 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
API数据模式定义
|
|
"""
|
|
|
|
from pydantic import BaseModel, Field
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
|
|
|
|
class ConvertOptionsSchema(BaseModel):
|
|
"""转换选项模式"""
|
|
auto_scale: bool = Field(default=True, description="是否自动缩放")
|
|
auto_center: bool = Field(default=True, description="是否自动居中")
|
|
preserve_hierarchy: bool = Field(default=False, description="是否保留装配体层级结构")
|
|
|
|
|
|
class ConvertRequestSchema(BaseModel):
|
|
"""转换请求模式"""
|
|
input_path: str = Field(..., description="输入STP文件路径")
|
|
output_path: str = Field(..., description="输出GLB文件路径")
|
|
options: ConvertOptionsSchema = Field(default_factory=ConvertOptionsSchema, description="转换选项")
|
|
|
|
|
|
class ConvertResponseSchema(BaseModel):
|
|
"""转换响应模式"""
|
|
task_id: str = Field(..., description="任务ID")
|
|
status: str = Field(..., description="任务状态")
|
|
message: str = Field(default="", description="状态消息")
|
|
|
|
|
|
class TaskStatusSchema(BaseModel):
|
|
"""任务状态模式"""
|
|
task_id: str = Field(..., description="任务ID")
|
|
status: str = Field(..., description="任务状态")
|
|
progress: int = Field(..., description="进度百分比(0-100)")
|
|
message: str = Field(default="", description="状态消息")
|
|
created_at: datetime = Field(..., description="创建时间")
|
|
started_at: Optional[datetime] = Field(default=None, description="开始时间")
|
|
completed_at: Optional[datetime] = Field(default=None, description="完成时间")
|
|
error_message: Optional[str] = Field(default=None, description="错误信息")
|
|
|
|
|
|
class HealthResponseSchema(BaseModel):
|
|
"""健康检查响应模式"""
|
|
status: str = Field(default="healthy", description="服务状态")
|
|
timestamp: datetime = Field(default_factory=datetime.now, description="检查时间")
|
|
version: str = Field(default="1.0.0", description="服务版本") |