尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

FreeCAD MCP 建模核心详解:create_object 与 edit_object 的全部参数一次讲透

FreeCAD MCP 建模核心详解:create_object 与 edit_object 的全部参数一次讲透 FreeCAD MCP 建模核心详解create_object 与 edit_object 的全部参数一次讲透【免费下载链接】freecad-mcpFreeCAD MCP(Model Context Protocol) server项目地址: https://gitcode.com/gh_mirrors/fr/freecad-mcpFreeCAD MCP 是一个 Model Context ProtocolMCP服务器让 AI 助手能够直接在 FreeCAD 中创建、编辑和检查 3D 模型。本文带你一次讲透它的两大核心建模工具create_object与edit_object的全部参数——从obj_type的类型选择、obj_properties的属性映射规则到截图参数与常见坑位新手也能照着直接上手。 一分钟理解两个工具的定位FreeCAD MCP 由三部分组成MCP 客户端AI 助手、Python 服务器、以及运行在 FreeCAD 内部的插件端 RPC 服务。当你让 AI「帮我建一个圆柱」时实际发生的是AI 调用 MCP 工具create_object服务器src/freecad_mcp/server.py把请求经 RPC 转发给 FreeCAD 插件插件端的对象工厂addon/FreeCADMCP/rpc_server/object_factory.py在文档中真正创建对象并回传结果截图。工具用途一句话记忆create_object在文档中新建一个对象「从无到有」需要指定obj_typeedit_object修改已有对象的属性「有则改之」只改属性、不建对象完整工具清单可查阅官方文档docs/tools.md。 create_object7 个参数一次看懂{ doc_name: MyCylinder, obj_name: Cylinder, obj_type: Part::Cylinder, obj_properties: { Height: 30, Radius: 10 }, include_screenshot: true, view_name: Isometric }参数必填默认值说明doc_name✅—目标文档名文档需已存在obj_type✅—对象类型如Part::Box、Part::Cut、PartDesign::Bodyobj_name✅—对象名注意下方「坑位 1」的名称清洗规则obj_properties❌空字典属性键值对见后文映射规则analysis_name❌无FEM 分析容器名仅Fem::*对象需要include_screenshot❌true是否返回模型截图省 token 可设falseview_name❌Isometric截图视角共 9 种可选obj_type 怎么选C 类型 vs 5 种 Python 工厂绝大多数Part::、PartDesign::类型都注册在 FreeCAD 的 C 类型系统中直接按名字创建即可。但有 5 种常用类型是 Python 实现的、不在类型注册表里FreeCAD MCP 为它们提供了专用工厂各需要一组固定属性类型必需属性Part::TubeInnerRadius、OuterRadius、HeightDraft::CircleRadiusDraft::RectangleLength、HeightDraft::PolygonFacesNumber、RadiusDraft::WirePoints点列表、可选Closed其余 Python 实现类型Draft::Point、Draft::Ellipse、Draft::BSpline等没有工厂可用需要改用execute_code工具构造。插件端遇到这类类型时会返回明确提示告诉你该用哪个Draft.make_*函数见 object_factory.py。analysis_nameFEM 有限元对象的专属入口做有限元分析FEM时对象要挂到一个Fem::AnalysisPython容器下此时用analysis_name指定容器名Fem::ConstraintFixed等约束obj_properties.References引用几何面Fem::MaterialCommon设置Material密度、弹性模量等Fem::FemMeshGmsh网格必须提供analysis_name且Shape旧版兼容Part属性指向要网格化的实体再配CharacteristicLengthMax/Min控制单元尺寸。obj_properties属性映射的 5 条规则obj_properties不是简单的键值直传插件端的属性映射器addon/FreeCADMCP/rpc_server/property_mapper.py做了 5 类智能转换Placement 姿态{Base: {x,y,z}, Rotation: {Axis, Angle}}→ FreeCAD 位移旋转向量属性{x, y, z}字典自动转成FreeCAD.Vector对象引用Base、Tool、Source、Profile的值写对象名字即可如布尔差集Part::Cut传Base: Box、Tool: CylinderReferences 引用列表[{object_name: MyObject, face: Face1}]形式自动解析为文档对象子元素外观属性ShapeColor传[r, g, b]或[r, g, b, a]四元组也可嵌套在ViewObject字典下。一个完整的「带姿态带颜色」圆柱示例obj_properties: { Height: 30, Radius: 10, Placement: { Base: {x: 10, y: 10, z: 0}, Rotation: {Axis: {x: 0, y: 0, z: 1}, Angle: 45} }, ViewObject: { ShapeColor: [0.5, 0.5, 0.5, 1.0] } }✏️ edit_object只改属性不建对象edit_object的参数比create_object少因为没有类型和容器概念{ doc_name: MyPart, obj_name: Box001, obj_properties: { Length: 50, ShapeColor: [0.2, 0.6, 0.9] }, include_screenshot: true, view_name: Front }参数必填默认值说明doc_name✅—目标文档名obj_name✅—已有对象的真实Nameobj_properties✅—要修改的属性映射规则与create_object完全相同include_screenshot❌true是否返回截图view_name❌Isometric截图视角执行逻辑见 edit_object_gui非常清晰找到对象 → 逐属性赋值 → 重算recompute→ 有效性校验。只要文档或对象不存在、或属性写不进去都会返回具体的错误文本而不是静默失败。它适合调整尺寸参数、修改Base/Tool引用、改颜色等一切「改属性」场景。 两个截图参数include_screenshot 与 view_namecreate_object和edit_object都默认返回一张操作后的模型截图方便 AI「看着改」include_screenshot: false—— 长流程中的中间步骤建议关掉可大幅节省 tokendocs/tools.md 的「Screenshot options」一节有说明view_name—— 从 9 种视角中挑最能展示本次变更的一个Isometric、Front、Top、Right、Back、Left、Bottom、Dimetric、Trimetric。比如改圆柱直径用Front比等轴测更直观。另外服务器启动参数--only-text-feedback可以全局关闭这些可选截图。 三个最容易踩的坑名称会被清洗FreeCAD 会对重名对象自动改名你请求Box可能返回Box001。后续所有get_object/edit_object调用必须使用返回值里的真实object_name。Draft 工厂自己命名Draft::Circle等工厂创建的对象名由 FreeCAD 决定你传的obj_name只会被设为显示标签Label。Python 工厂缺属性直接报错如Draft::Circle少了Radius会明确提示「requires a Radius property」。遇到「not a document object type」错误优先怀疑类型拼写或该用execute_code而不是盲目改字。 实战效果从一张 2D 图纸到 3D 模型下图左侧是输入给 AI 的 2D 工程图AI 会依次调用create_document、create_object建立基础几何再用edit_object微调尺寸与位置最终在 FreeCAD 中生成可参数化编辑的 3D 模型——整个过程对新手完全透明只需一句话指令 相关资料工具列表与截图选项docs/tools.md服务器配置含文本反馈开关docs/configuration.mdcreate_object工具定义与示例src/freecad_mcp/server.py服务端操作层src/freecad_mcp/operations/core.py插件端对象工厂类型分发逻辑addon/FreeCADMCP/rpc_server/object_factory.py属性映射规则addon/FreeCADMCP/rpc_server/property_mapper.py端到端 FEM 示例含网格与求解examples/cantilever_fem.py【免费下载链接】freecad-mcpFreeCAD MCP(Model Context Protocol) server项目地址: https://gitcode.com/gh_mirrors/fr/freecad-mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表