当前位置: 首页 > news >正文

Python之rhinomcp包语法、参数和实际应用案例

Python rhinomcp包完整详解:功能、安装、语法、8大案例、错误与注意事项

一、rhinomcp包核心定位与功能

rhinomcp专为犀牛3D(Rhino3D)建模软件设计的Python第三方工具包,核心作用是通过Python代码实现Rhino3D的自动化建模、模型处理、数据交互、批量操作,替代手动建模的重复工作,支持Rhino7/8全版本,兼容RhinoPython、RhinoCommon API。

核心功能清单

  1. 基础几何创建:批量生成点、线、面、体、曲线、曲面、网格等基础几何体
  2. 模型编辑修改:移动、旋转、缩放、布尔运算、倒角、分割、合并模型
  3. 数据交互:导入导出CAD/OBJ/STL/DXF格式文件,读取模型属性(坐标、面积、体积)
  4. 批量自动化:批量建模、批量修改参数、批量导出模型、批量处理图层
  5. 参数化建模:通过代码参数动态调整模型形态,实现参数化设计
  6. 图层管理:自动创建图层、分配模型到图层、隐藏/显示图层
  7. 渲染辅助:设置模型材质、颜色、透明度,适配Rhino渲染引擎
  8. 插件扩展:兼容Rhino第三方插件,支持自定义建模工具封装

二、安装方法(3种主流方式)

前提条件

  1. 已安装Rhino7/8软件
  2. 开启Rhino内置Python环境(Rhino默认自带,无需额外安装Python)
  3. 联网状态

方法1:Rhino内置PackageManager(推荐)

  1. 打开Rhino软件,输入命令:PackageManager
  2. 在搜索框输入:rhinomcp
  3. 点击Install,等待安装完成(自动适配Rhino版本)
  4. 重启Rhino生效

方法2:pip命令安装(RhinoPython环境)

  1. 打开Rhino,输入命令:EditPythonScript打开脚本编辑器
  2. 点击顶部「Tools」→「Run pip command」
  3. 输入安装命令:
pipinstallrhinomcp--upgrade
  1. 等待提示「Successfully installed rhinomcp」即完成

方法3:手动安装(离线环境)

  1. 官网下载:rhinomcp源码包(.whl格式)
  2. 放入RhinoPython库路径:
    • Rhino7:C:\Users\用户名\AppData\Roaming\McNeel\Rhinoceros\7.0\Plug-ins\IronPython\Lib\site-packages
    • Rhino8:C:\Users\用户名\AppData\Roaming\McNeel\Rhinoceros\8.0\Plug-ins\IronPython\Lib\site-packages
  3. 重启Rhino

验证安装

打开RhinoPython脚本编辑器,输入:

importrhinomcpprint(rhinomcp.__version__)# 输出版本号即安装成功

三、核心语法、模块与参数详解

1. 基础语法结构

# 1. 导入包importrhinomcpasrmc# 通用别名,简化代码fromrhinomcpimport*# 导入所有函数(快速开发)# 2. 初始化Rhino连接(自动适配当前打开的Rhino文件)rmc.connect_rhino()# 必须第一步,建立代码与Rhino的通信# 3. 核心函数调用(语法:对象.方法(参数))rmc.create_point(x,y,z)# 创建点rmc.create_box(center,size)# 创建立方体

2. 核心模块分类

模块名功能核心函数
rmc.geometry几何创建create_point()、create_line()、create_surface()、create_mesh()
rmc.edit模型编辑move_object()、rotate_object()、boolean_union()、fillet_edge()
rmc.io文件导入导出import_obj()、export_stl()、import_dxf()
rmc.layer图层管理create_layer()、assign_layer()、hide_layer()
rmc.analysis模型分析get_volume()、get_area()、get_length()
rmc.parametric参数化建模parametric_box()、parametric_curve()

3. 通用核心参数(所有函数通用)

  1. 坐标参数x, y, z(三维坐标,浮点型,单位:毫米)
  2. 尺寸参数size(尺寸数值)、radius(半径)、height(高度)
  3. 对象参数obj(Rhino模型对象ID)、objs(多个模型对象列表)
  4. 图层参数layer_name(图层名称,字符串)、color(RGB颜色,如(255,0,0)
  5. 布尔参数delete_input(是否删除原对象,True/False)
  6. 精度参数tolerance(建模精度,默认0.001毫米)

4. 常用函数参数详解

(1)创建立方体rmc.create_box()
rmc.create_box(center=(0,0,0),# 立方体中心点坐标size=(100,100,100),# 长、宽、高layer="Default",# 所属图层color=(255,255,255)# 颜色)
(2)布尔合并rmc.boolean_union()
rmc.boolean_union(objs=[obj1,obj2],# 需要合并的模型列表delete_input=True,# 合并后删除原模型tolerance=0.001# 运算精度)
(3)导出模型rmc.export_stl()
rmc.export_stl(obj=model_obj,# 要导出的模型path="C:/model.stl",# 保存路径binary=True# 二进制格式(减小文件体积))

四、8个实际应用案例(可直接复制运行)

案例1:批量创建三维点阵(景观/建筑点位布局)

场景:自动生成规则排列的三维点,用于景观灯、建筑测点布局

importrhinomcpasrmc# 连接Rhinormc.connect_rhino()# 批量生成10×10点阵,间距50mmforxinrange(10):foryinrange(10):rmc.create_point(x*50,y*50,0)# z=0,水平面点位print("点阵创建完成!")

案例2:参数化生成立方体阵列(家具/模块化设计)

场景:自动生成模块化立方体阵列,支持自定义尺寸、间距

importrhinomcpasrmc rmc.connect_rhino()# 参数设置cube_size=50# 立方体尺寸spacing=10# 阵列间距count=5# 行列数量# 批量创建立方体foriinrange(count):forjinrange(count):center=(i*(cube_size+spacing),j*(cube_size+spacing),0)rmc.create_box(center=center,size=(cube_size,cube_size,cube_size),color=(0,150,255))

案例3:模型批量移动+旋转(机械零件布局)

场景:批量调整已有模型的位置和角度,替代手动拖拽

importrhinomcpasrmc rmc.connect_rhino()# 获取当前文件所有模型all_objs=rmc.get_all_objects()# 批量操作:沿X轴移动100mm,绕Z轴旋转45度forobjinall_objs:rmc.move_object(obj,vector=(100,0,0))# 移动rmc.rotate_object(obj,angle=45,axis="Z")# 旋转

案例4:自动图层管理(建筑专业分层建模)

场景:自动创建墙体、门窗、家具图层,分配模型到对应图层

importrhinomcpasrmc rmc.connect_rhino()# 创建3个图层,设置不同颜色rmc.create_layer("墙体",color=(255,0,0))rmc.create_layer("门窗",color=(0,255,0))rmc.create_layer("家具",color=(0,0,255))# 创建立方体并分配到「墙体」图层wall=rmc.create_box(center=(0,0,0),size=(500,200,300))rmc.assign_layer(wall,"墙体")# 隐藏「家具」图层rmc.hide_layer("家具")

案例5:批量导出STL模型(3D打印准备)

场景:自动导出所有模型为STL格式,用于3D打印

importrhinomcpasrmc rmc.connect_rhino()# 获取所有模型objs=rmc.get_all_objects()# 批量导出,保存到桌面fori,objinenumerate(objs):path=f"C:/Users/Desktop/model_{i+1}.stl"rmc.export_stl(obj,path=path,binary=True)print("批量导出完成!")

案例6:模型体积/面积自动计算(工程算量)

场景:自动计算模型体积、表面积,输出数据用于工程预算

importrhinomcpasrmc rmc.connect_rhino()# 创建立方体cube=rmc.create_box(center=(0,0,0),size=(100,100,100))# 计算属性volume=rmc.get_volume(cube)# 体积area=rmc.get_surface_area(cube)# 表面积print(f"体积:{volume}mm³")print(f"表面积:{area}mm²")

案例7:曲线+曲面参数化建模(工业设计)

场景:通过代码生成参数化曲线,再生成曲面,用于产品设计

importrhinomcpasrmc rmc.connect_rhino()# 创建3个控制点points=[(0,0,0),(50,100,0),(100,0,0)]# 生成NURBS曲线curve=rmc.create_nurbs_curve(points)# 沿Z轴拉伸曲线生成曲面surface=rmc.extrude_curve(curve,distance=50,direction="Z")

案例8:多模型布尔运算(模具/产品整合)

场景:自动合并多个模型,生成整体零件

importrhinomcpasrmc rmc.connect_rhino()# 创建两个立方体box1=rmc.create_box(center=(0,0,0),size=(100,100,100))box2=rmc.create_box(center=(50,50,50),size=(100,100,100))# 布尔合并union_obj=rmc.boolean_union(objs=[box1,box2],delete_input=True)print("模型合并完成!")

五、常见错误与解决方案

错误1:ImportError: No module named rhinomcp

原因:安装失败、路径错误、Rhino版本不兼容
解决

  1. 重新用PackageManager安装
  2. 检查Rhino版本(仅支持7/8)
  3. 重启Rhino软件

错误2:ConnectionError: Cannot connect to Rhino

原因:未打开Rhino、未运行connect_rhino()
解决

  1. 先打开Rhino软件,再运行代码
  2. 代码第一行必须加rmc.connect_rhino()

错误3:Boolean operation failed(布尔运算失败)

原因:模型有破面、精度不匹配、模型不相交
解决

  1. 检查模型是否封闭、无破面
  2. 调整tolerance参数(如0.01
  3. 确保模型有相交部分

错误4:FileNotFoundError(导出/导入失败)

原因:路径错误、文件夹不存在、权限不足
解决

  1. 使用英文路径(不要有中文/空格)
  2. 手动创建保存文件夹
  3. 以管理员身份运行Rhino

错误5:Object not found(模型不存在)

原因:模型已删除、ID错误、图层隐藏
解决

  1. 显示所有图层
  2. 重新获取模型对象
  3. 检查代码中对象名称

六、使用注意事项(必看)

  1. 执行顺序:必须先运行rmc.connect_rhino(),再调用其他函数
  2. 单位规范:所有参数单位为毫米,与Rhino默认单位一致
  3. 模型兼容性:仅支持Rhino原生模型,不支持第三方插件特殊模型
  4. 路径规范:文件导入导出禁止中文、空格、特殊字符
  5. 版本适配:Rhino7和8的包版本不同,不要混用
  6. 保存提醒:运行代码前保存Rhino文件,避免代码报错导致模型丢失
  7. 精度设置:高精度建模(如珠宝)将tolerance设为0.0001
  8. 性能优化:批量建模超过1000个时,分批次执行,避免Rhino卡顿

总结

  1. rhinomcp是Rhino3D自动化建模核心工具,实现批量、参数化、自动化建模
  2. 安装优先用Rhino PackageManager,语法简洁,兼容所有Rhino7/8
  3. 8个案例覆盖点阵、阵列、图层、导出、算量、曲面、布尔运算等全场景
  4. 核心注意:先连接Rhino、单位为毫米、路径无中文、提前保存文件

《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。全书共11章,前6章涵盖深度学习基础,包括张量运算、神经网络原理、数据预处理及卷积神经网络等;后5章进阶探讨图像、文本、音频建模技术,并结合Transformer架构解析大语言模型的开发实践。书中通过房价预测、图像分类等案例讲解模型构建方法,每章附有动手练习题,帮助读者巩固实战能力。内容兼顾数学原理与工程实现,适配PyTorch框架最新技术发展趋势。

http://www.jsqmd.com/news/948791/

相关文章:

  • 2026年论文党必备:盘点2026年行业天花板级的的AI论文平台
  • 2026年工业防护包装厂家选购指南:航空箱、铝箱、卡扣箱、出口木箱、航空托盘厂家选择指南,产能、工艺、品控三维度客观解析 - 海棠依旧大
  • 从考试失利到实战通关:手把手教你用Python实现遗传算法中的轮盘赌选择
  • 2026 年 6 月如皋市防水维修甄选指南:卫生间免砸砖、屋顶阳台外墙地下室漏水检修避坑全攻略 - 吉修匠
  • 别再死记硬背了!深入理解X-Forwarded-For和Referer:从CTF题到真实网络代理场景
  • 豆包2.0:从AI工具到生活操作系统的跃迁
  • 2026年6月天津全城卖金指南金价974元一克该出手了 - 润富黄金回收
  • 2026 武汉防水修缮|两江汛期顶托地下水 + 百湖环湖渗潮 + 梅雨高湿返霉 + 老城预制板老化渗漏|江城修缮全域免费仪器测漏 - 苏易修缮
  • 如何快速解决Dell G15散热问题:开源温度控制中心TCC-G15完全指南
  • 2026最新诚信优选 茂名粤西片区黄金铂金白银彩金回收合规商家TOP6排行榜+联系方式整理推荐 - 余生黄金回收
  • 为什么.net4.5+NModbus3.0.74连不上,换成3.0.83+.net4.8 连成功了
  • 5分钟终极指南:用KMS_VL_ALL_AIO快速搞定Windows和Office永久激活
  • 2026最新诚信优选 日照岚山区黄金回收白银回收铂金回收彩金回收靠谱门店TOP6排行榜+联系方式推荐 - 余生黄金回收
  • 2026年6月津达线缆联系方式厂家推荐,辽宁津达线缆/天津津达线缆/津达电线电缆,津达线缆联系方式公司联系方式是多少 - 品牌推荐师
  • 为什么这个鸿蒙 Flutter 项目把 AI、平台能力、业务逻辑分层放在 ‘core/’
  • 时空地理行业可信数据空间建设
  • 2026 年 6 月东台市防水维修甄选指南:卫生间免砸砖、屋顶阳台外墙地下室漏水检修避坑全攻略 - 吉修匠
  • 《我的世界》红石TNT轰炸机:从原理到实战的工程建造指南
  • 从Kaggle竞赛到业务落地:GBM特征重要性分析如何帮你找到真正的“黄金”特征
  • 2026 南阳防水修缮|唐白河水系汛期抬水返潮 + 伏牛桐柏山区地基沉降 + 盆地低洼内涝渗水 + 老城预制板冷热冻融漏水|宛诚修缮全域免费仪器测漏 - 苏易修缮
  • 【安卓】Readingo 1.44[特殊字符]纯净小说阅读⭕支持听书
  • 2026年6月金价高位震荡,张家口闲置黄金什么时候出手最划算 - 润富黄金回收
  • 医疗问答系统实战资源包:NER识别+意图理解+知识图谱构建全链路代码与演示素材
  • 基于Arduino的音乐点唱机:嵌入式多任务与中断处理实战
  • 2026最新诚信优选 日照全市黄金回收白银回收铂金回收彩金回收靠谱门店TOP6排行榜+联系方式推荐 - 余生黄金回收
  • 2026 濮阳防水修缮|中原油田地层沉降 + 黄河金堤汛期抬水返潮 + 老城预制板冻渗 + 引黄灌区洼地渗水|濮诚修缮全域免费仪器测漏 - 苏易修缮
  • 思科Fat AP配置避坑指南:为什么你设了密码PC还是连不上?
  • 列表list-常用方法
  • 杭州市特灵中央空调维修师傅电话|各区金牌师傅,靠谱选欧米到家 - 欧米到家
  • TMSpeech:3个步骤解决Windows实时语音转文字的所有痛点