news 2026/4/16 3:55:25

ai blender流水线制作mod第一步,画个立方体

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ai blender流水线制作mod第一步,画个立方体

不就是类似blender-mcp的东西吗

ai blender流水线制作mod第一步,画个立方体_哔哩哔哩_bilibili

blender 开放exec接口的插件 连接ide vscode-CSDN博客

ai流水线式调用命令-CSDN博客

{ "tools": [ { "name": "get_all_objects", "path": "blender_cline/blender_api_tool.py", "description": "获取Blender当前场景中的所有物体", "parameters": [], "examples": [ "[TOOL:get_all_objects]" ] }, { "name": "delete_all_objects", "path": "blender_cline/blender_api_tool.py", "description": "删除Blender当前场景中的所有物体", "parameters": [], "examples": [ "[TOOL:delete_all_objects]" ] }, { "name": "create_cube", "path": "blender_cline/blender_api_tool.py", "description": "在Blender场景中创建一个立方体", "parameters": [], "examples": [ "[TOOL:create_cube]" ] }, { "name": "activate_blender", "path": "blender_cline/blender_api_tool.py", "description": "激活Blender窗口,将Blender应用带到前台", "parameters": [], "examples": [ "[TOOL:activate_blender]" ] } ] }
import sys import os import requests import json import subprocess import platform def call_blender_api(endpoint, code): """ 调用Blender API执行代码 """ url = f"http://localhost:8080{endpoint}" payload = { "code": code } try: response = requests.post(url, json=payload) return response.json() except requests.exceptions.RequestException as e: print(f"请求错误: {e}") return None def activate_blender_window(): """ 激活Blender窗口(精确匹配窗口标题) """ try: import pygetwindow as gw except ImportError: print("pygetwindow未安装,请运行: pip install pygetwindow") return False try: # 获取所有窗口 all_windows = gw.getAllWindows() blender_window = None for window in all_windows: window_title = window.title.strip() # 多种可能的Blender标题格式 if (window_title == 'Blender' or # 基础标题 window_title.startswith('Blender') and not any(exclude in window_title.lower() for exclude in ['vscode', 'visual studio', 'code'])): # 额外检查确保不是VSCode或其他编辑器 if ' - ' not in window_title or 'blender.exe' in window_title.lower(): blender_window = window break if blender_window: print(f"激活窗口: {blender_window.title}") try: import win32gui import win32con hwnd = blender_window._hWnd win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) win32gui.SetForegroundWindow(hwnd) print(f"窗口已放到最前端: {blender_window.title}") return True except ImportError: print("pywin32未安装,请运行: pip install pywin32") if blender_window.isMinimized: blender_window.restore() blender_window.activate() print("Blender窗口已激活(使用pygetwindow方法)") return True else: print("未找到Blender窗口") # 显示所有窗口标题用于调试 all_titles = gw.getAllTitles() print("所有窗口标题(前10个):") for i, title in enumerate(all_titles[:10]): if title.strip(): print(f" {i+1}. {title}") return False except Exception as e: print(f"激活Blender窗口时出错: {e}") return False def main(): if len(sys.argv) < 2: print("错误: 缺少工具名称参数") return tool_name = sys.argv[1] if tool_name == "get_all_objects": code = ''' import bpy # 获取当前场景中的所有物体 all_objects = bpy.context.scene.objects # 打印每个物体的名称 result = [] for obj in all_objects: obj_info = f"obj: {obj.name}" result.append(obj_info) print(obj_info) result ''' response = call_blender_api('/api/exec', code) elif tool_name == "delete_all_objects": code = ''' import bpy # 选择所有对象 bpy.ops.object.select_all(action='SELECT') # 删除选中的对象 bpy.ops.object.delete() "所有物体已删除" ''' response = call_blender_api('/api/exec', code) elif tool_name == "create_cube": code = ''' import bpy # 添加一个立方体 bpy.ops.mesh.primitive_cube_add( location=(0, 0, 0) # 设置立方体的位置 ) # 获取新创建的立方体对象 cube = bpy.context.active_object cube.name = "MyCube" # 重命名立方体 f"立方体已创建,名称: {cube.name}" ''' response = call_blender_api('/api/exec', code) elif tool_name == "activate_blender": activate_blender_window() return else: print(f"错误: 未知的Blender工具 '{tool_name}'") return if response: if response['status'] == 'success': print(f"{tool_name} 执行成功!") print(f"返回结果: {response['result']}") else: print(f"{tool_name} 执行失败: {response['message']}") else: print("无法连接到Blender服务器") if __name__ == "__main__": main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 7:47:28

职业培训系统:操作手册OCR识别生成考核题目题库

职业培训系统&#xff1a;操作手册OCR识别生成考核题目题库 在职业培训机构中&#xff0c;设备操作手册、安全规程和工艺流程图等纸质文档往往堆积如山。每年新员工入职培训时&#xff0c;教务人员最头疼的不是讲课&#xff0c;而是如何从这些厚重的手册里“抠”出合适的考题—…

作者头像 李华
网站建设 2026/4/6 17:23:07

HuggingFace镜像网站汇总:获取HunyuanOCR及其他大模型更便捷

HuggingFace镜像网站汇总&#xff1a;获取HunyuanOCR及其他大模型更便捷 在AI技术飞速发展的今天&#xff0c;企业与开发者对高性能、易部署的多模态模型需求日益增长。尤其是在文档处理、跨境业务和智能交互等场景中&#xff0c;光学字符识别&#xff08;OCR&#xff09;已不…

作者头像 李华
网站建设 2026/4/14 1:14:31

建筑图纸信息提取:HunyuanOCR识别CAD截图中的标注文字

建筑图纸信息提取&#xff1a;HunyuanOCR识别CAD截图中的标注文字 在建筑设计院的某个项目组里&#xff0c;工程师正面对着上百张老旧的CAD图纸——这些图纸承载着整栋商业综合体的关键数据&#xff0c;却以图像形式沉睡在硬盘中。每一条尺寸线、每一个材料标注都需要被手动录入…

作者头像 李华
网站建设 2026/4/12 1:05:12

提升OCR效率的关键:HunyuanOCR单指令端到端推理实践

提升OCR效率的关键&#xff1a;HunyuanOCR单指令端到端推理实践 在金融柜台上传一张身份证&#xff0c;不到一秒就完成信息录入&#xff1b;跨境电商后台自动识别多语种发票并提取金额与税号&#xff1b;视频平台批量解析字幕帧实现跨语言检索——这些曾经依赖复杂流水线的任务…

作者头像 李华
网站建设 2026/4/10 7:10:02

Three.js与HunyuanOCR结合探索:3D场景中的文字识别可能

Three.js与HunyuanOCR结合探索&#xff1a;3D场景中的文字识别可能 在数字孪生、虚拟展厅和智能工业系统日益普及的今天&#xff0c;一个现实问题逐渐浮现&#xff1a;我们能在三维环境中“读懂”看到的文字吗&#xff1f;比如&#xff0c;当你用鼠标拖动视角查看一台设备的3D模…

作者头像 李华
网站建设 2026/4/15 4:01:17

石油管道巡检:HunyuanOCR读取压力表数值生成巡检报告

石油管道巡检&#xff1a;HunyuanOCR读取压力表数值生成巡检报告 在油气田、炼化厂和长输管线的日常运维中&#xff0c;一个看似简单的任务——抄录压力表读数&#xff0c;却可能牵动整个系统的安全命脉。传统巡检依赖人工现场查看并手写记录&#xff0c;效率低、易出错&#x…

作者头像 李华