Rhino Compute Service
1. 前言
7月份参加了一个比赛,小组做了一个建筑生成类的产品,需要用到Rhino+Grasshopper平台进行开发。由于小组来自不同专业:土建类、通信、计算机等,短时间熟悉Rhino不切实际。但完全脱离它,图形的输入与输出又困难重重。
在拓展思路的技术预研阶段,了解到了Rhino Compute Service这种通过云端或者搭建本地Web服务器来从普通的开发环境中调用rhino的图形库,并且可以读取、输入、输出ghx(grasshopper支持utf-8的文件格式。)
考虑到中文互联网几乎没有对其介绍与应用,笔者当个搬运工,讲解如何搭建环境以及如何调用库函数等步骤。
2. 简介
2.1 官方定义
Rhino Compute针对研发人员的云端存取几何计算机,简单来说可以借助其在一般开发环境中调用Rhino的图形库函数,无需在Rhino里通过IronPython里编写(太多Python常用库无法import)。
官方网址: https://www.rhino3d.com/compute
Compute 是一个实验项目,允许通过 REST API 访问 McNeel 云计算服务中的 Rhino 几何图形库。Compute 是基于 Rhino Inside™ 技术的,运行于在线 Web 服务器当中。
Compute 可以看做是 Rhino3dm 项目的附加几何延伸。
Compute 潜在用途:
* 通过基于 REST API 的云端服务进行几何运算。
* 在 Rhino 外部调用 2400+ RhinoCommon API 。
* 访问无法在 OpenNurbs 库中调用的附加 RhinoCommon 函数,包括:
* 最近点计算
* 相交计算
* 曲面细分 (网格划分)
* 插值运算
* 布尔运算
* 面积与质量属性计算
* 其他各种各样的几何计算
* 客户端函数库可以使用独立的 C#(.NET)、Python、JavaScript 等语言。
* 运行在本地的 Compute 服务器可以用作私有计算实例或并行计算农场节点。
3. 安装Compute
Rhino Compute目前支持C#/ Python/ JavaScript,本文将以Python为例。
pip install rhino3dm
pip install compute-rhino3d
3.1 rhino3dm.py- 是Rhino3dm库的一部分。这是OpenNurbs的Python封装,其中包含读取和写入Rhino Geometry Objects的功能。
3.2 compute - rhino3d.py- 是一个封装包,用于添加RhinoCommon中可用的类,它无法通过rhino3dm.py获得。Compute-rhino3d通过调用McNeel Cloud Compute服务器以实现这些功能。它处理所有授权和JSON数据转换。
import rhino3dm
import compute_rhino3d
compute_rhino3d.Util.authToken = auth_token
auth_token =''
在不搭建本地服务器的情况下,需要需要申请秘钥请求访问Rhino Compute的服务器,在大陆特殊的网络情况下,通常会很慢。
申请网址:https://www.rhino3d.com/compute/login(可能需梯子)
3.3 一个简单的案例:
import rhino3dm
import random
compute_rhino3d.Util.authToken = "" #申请访问云服务器秘钥
model