commit 33c82edd77c725edf72194de0bd1f21663ca3027 Author: mozzie Date: Tue Oct 31 21:06:05 2023 +0800 first commit diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ab81fb3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM zocker160/blender-bpy:latest +WORKDIR /app +COPY ./src/app.py /app/app.py +CMD ["python3", "/app/app.py"] + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b6b09a8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' +services: + blender-bpy: + build: + context: . + dockerfile: Dockerfile + image: blender-bpy-service + container_name: blender-bpy-api + ports: + - "5000:5000" + volumes: + - ./src:/app diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..ee3ed90 --- /dev/null +++ b/readme.md @@ -0,0 +1,5 @@ +# 生产镜像 +docker build -t blender-bpy:1.0 . + +# 宿主机执行这条命令 +docker run --rm -it -v $(pwd)/src:/app blender-bpy:1.0 diff --git a/src/1.stl b/src/1.stl new file mode 100644 index 0000000..7edb2ca Binary files /dev/null and b/src/1.stl differ diff --git a/src/2.stl b/src/2.stl new file mode 100644 index 0000000..faf21f1 Binary files /dev/null and b/src/2.stl differ diff --git a/src/app.py b/src/app.py new file mode 100644 index 0000000..1ff2941 --- /dev/null +++ b/src/app.py @@ -0,0 +1,33 @@ +import bpy + +def import_and_thicken_stl(input_filepath, output_filepath, thickness): + # 删除场景中所有对象(可选) + bpy.ops.object.select_all(action='SELECT') + bpy.ops.object.delete() + + # 导入STL模型 + bpy.ops.import_mesh.stl(filepath=input_filepath) + + # 选择导入的模型 + bpy.context.view_layer.objects.active = bpy.context.selected_objects[0] + bpy.ops.object.mode_set(mode='EDIT') + + # 选择所有面 + bpy.ops.mesh.select_all(action='SELECT') + + # 添加厚度修饰器 + bpy.ops.object.modifier_add(type='SOLIDIFY') + bpy.context.object.modifiers["Solidify"].thickness = thickness + + # 返回对象模式 + bpy.ops.object.mode_set(mode='OBJECT') + + # 导出修改后的STL模型 + bpy.ops.export_mesh.stl(filepath=output_filepath) + + +input_filepath = "1.stl" +output_filepath = "2.stl" +thickness = -0.3 # 挤压厚度 + +import_and_thicken_stl(input_filepath, output_filepath, thickness) \ No newline at end of file