有没可能实现?
下面尝试编制一个FreeCAD 插件,集成了 Kimi 的模型,生成 Python 脚本,用于生成3D模型。
FreeCAD是什么?FreeCAD 是一款开源、通用的参数化 3D CAD 建模软件,适用于机械工程、建筑信息模型(BIM)和有限元分析(FEM)。

它在 LGPLv2+ 许可证下发布,可在 Linux、macOS 和 Windows 操作系统上运行。
用户可以使用 Python 编程语言扩展其功能。
一直是处于测试阶段,目前最新版本0.21。
FreeCAD自带的3D模型
《三体》电视剧 第12集 FreeCAD
创建自定义宏1. 打开 FreeCAD首先确保已经打开了 FreeCAD,并创建了一个新的文档,或者使用现有的文档。
2. 创建新宏在 FreeCAD 中,您可以通过以下步骤创建一个新的宏:
菜单栏操作:选择 宏 -> 新建宏。快捷键:使用快捷键 Ctrl + M 打开新建宏对话框。3. 编辑宏脚本在宏编辑器中,您可以编写 Python 脚本来定义您的自定义操作。以下是一个示例的宏脚本 MyMacro:
# 宏名称: MyMacro# 描述: 创建一个立方体并将其移动到指定位置importFreeCADasAppimportPart# 创建一个立方体cube =Part.makeBox(10,10,10)# 将立方体移动到指定位置cube.Placement.Base=App.Vector(20,30,40)# 将立方体添加到当前文档中App.ActiveDocument.addObject("Part::Feature","MyCube").Shape= cube# 刷新视图以显示新添加的对象App.ActiveDocument.recompute()
4. 保存和运行宏在宏编辑器中,选择 宏 -> 保存并运行,然后为宏选择一个名称,例如 MyMacro。可以在运行宏后,在 FreeCAD 的 3D 视图中看到创建的立方体被移动到指定位置。
宏生成的3D模型
结合Kimi的LLM看看几个效果生成一个长方体,easy
生成一个开关柜,可以看到无法生成
生成三体
看个复杂点的提示词
生成一个楼梯的3D模型,包含以下特性和尺寸:-总高度:3000毫米-台阶数量:16级,每级高度:180毫米-台阶宽度:1000毫米-台阶深度:300毫米-平台尺寸:1000毫米 x 1000毫米-护栏高度:900毫米,扶手直径:50毫米,栏杆间距:100毫米-楼梯材质:木材-护栏材质:金属确保模型简洁且准确。
效果就很差了
核心代码def process_command(command, conversation_history):# 初始化消息列表,包含一个系统消息,指示模型作为一个 FreeCAD 脚本编写器,其任务是根据用户输入生成和执行 Python 代码。 messages =[{"role":"system","content":"You are a FreeCAD scripter. You will output and execute the Python code for the shape the user inputs"}]# 将对话历史中的所有消息添加到消息列表中,以提供上下文。 messages.extend(conversation_history)# 将用户输入的命令作为一条新消息添加到消息列表中。 messages.append({"role":"user","content": command})# 使用 generate_chat_completion 函数生成模型的响应,指定生成的响应最大令牌数为 4000。 response_text = generate_chat_completion(messages, max_tokens=4000)# 返回生成的响应文本。return response_text
存在的不足
以上还只是个原型,模型可能会失败、或其他随机的内容。
精度取决于Prompt和大模型,试了下ChatGPT的生成会好很多。