企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
--- ## 1.1 宏 Rhinoceros基于命令行界面。这意味着仅使用键盘就可以控制它。键入命令,程序会执行。自鼠标问世以来,理所当然有人认为完全基于命令行的用户界面很原始。在命令行界面需要输入: ``` Line 0,0,0 10,0,0 ``` 而在图形界面你可以点击Line按钮,然后在视窗中定义直线的起点和终点。因为图形界面太方便了,很多人完全没有使用命令行界面。这个问题很容易引起争议;有些人是命令行狂热爱好者,有些人只使用工具条和菜单。程序员在这个方面没有争议,他们都执着于命令行。编程让鼠标达到某一坐标,然后模拟点击,并没有什么用,只是看起来很傻而已。程序员的交互方式是向Rhino输入文本,期望程序返回文本。 Rhino编程的最低形式是使用宏。我并无意冒犯那些靠写宏为生的朋友,但是这并不阻碍宏是一种很原始的自动处理方法这个事实。在宏这个主题上我会稍停一下,一部分原因是我们要做到知己知彼,另一部分原因是在后面需要使用Python模拟宏的运行。 宏是给Rhino去执行的有序命令的集合。本页前面的命令*_Line*是一个很简单的宏。假设你的工作是打开几个Rhino文件,每个文件从点0,0,0到10,0,0添加一条线,然后保存文件,每分钟输入6次命令'_Line w0,0,0 w10,0,0'可能很快就会让你累趴。宏可以取代那些你用手输入的任务,而不是用脑的那些。宏不是太智能,也不能对它自己造出来的东西做出反应。在这个方面上宏更像一个交通协管员的角色。下面是一个更复杂的宏的例子: ``` _SelNone _Polygon _NumSides=6 w0,0,0 w10,0,0 _SelLast -_Properties _Object _Name RailPolygon _Enter _Enter _SelNone _Polygon _NumSides=6 w10,0,0 w12,0,0 _SelLast _Rotate3D w0,0,0 w10,0,0 90 -_Properties _Object _Name ProfilePolygon _Enter _Enter _SelNone -_Sweep1 -_SelName RailPolygon -_SelName ProfilePolygon _Enter _Enter _Closed=Yes Enter ``` <div style="float: left; width: 500px; text-align:left;padding: 5px;"> <p>上面的例子会创建一个六角环。它有用,但就是不那么灵活。你可以手动一条一条输入以上命令至命令行,或者把命令赋予到按钮上。甚至可以直接复制粘贴以上代码至Rhino。<br><br> 在这里提一下,在每个命令前放下划线的原因是Rhino本地化。使用下划线会强制Rhino识别下划线后的命令为英文,而不是意大利或日本或者设置里的自定义地点。建议总是使用下划线强制使用英文命令,这样才能保证你的代码在所有的Rhino程序里正确运行。 </p></div> <div style="float: right;width: 300px;padding: 5px;"> <img src="https://gitee.com/al666ex/RhinoPython101/raw/master/images/hexagonaltorus.svg" width="400" ></div> <div style="color:white;clear:both;text-align:center;padding:1px;"></div> 在命令 *_Properties* 和 *_Sweep1* 前面的连字符'-'用来跳过对话框。如果取消连字符会导致代码在命令行运行的方式改变。 对于宏的复杂度并没有限制,在宏里可以无限制的添加命令,但是有些宏本身特性导致的限制是永远无法克服的。 ## 1.2 脚本 基于宏的限制导致了脚本的开发。脚本是介于宏和真(编译)程序和插件之间的一种语言。与宏不同,脚本可以进行数学运算、判断变量条件、对环境进行反应和与用户进行交互。与真正的程序相比,脚本在运行前又不需要提前编译。Rhino内置了标准的微软VB脚本语言和Python语言。本入门介绍Python,以及如何在Rhino内使用其功能。 脚本语言是纯文本文件,每次执行一行命令。但是有趣的地方来了:与宏不同,脚本能控制接下来执行哪一行命令。这个流程控制使脚本能跳过某些命令,或者重复执行命令。流程控制是通过“条件判断”实现的,在享受流程控制的好处之前,我们必须熟悉Python的语言规则。 语言规则通常叫语法,语法指示什么是非法和什么是合法: 1. "这里没有苹果派。" » 合法 2. "没有这里苹果派。" » 非法 3. "这里,没有苹果派" » 合法 4. "这里没有リンゴ派。" » 非法 以上是中文语法检查的一个例子。第1和3行是正常的中文,其他2个是非法的。然而,错误也分三六九等。没有人会误解第2行,因为仅仅有个词序错了。但是第4行就有点难了,因为插入了一个外来语言。 聪明的人类可能能理解所有4行,但是智障电脑不行。 对高级程序员或初学者来说,Python都是一个不错的语言。它语法系统简单粗暴,功能不失强大,面向对象加持,而且还有庞大基数的用户自建库。同时,因为Rhino Python同时提供Windows和Mac版,同样的程序在两个平台都可以运行!暂时不要太兴奋-后面会一一解释。 ## 1.3 运行脚本 在Rhino里运行脚本有很多方式,每种方式各有优劣。可以保存脚本为文件,当你想要运行时让Rhino载入。也可以使用内置的脚本编辑器,直接从编辑器运行。最后一个可选的运行方式是把脚本链接到工具行按钮,这种方式编辑困难,但是分发方便。 本书使用内置编辑器。运行简单脚本最好的方式。为了能使用内置编辑器,在命令行键入 *_EditPythonScript*,输入你的脚本,按运行按钮: <div align=center><img src="https://gitee.com/al666ex/RhinoPython101/raw/master/images/primer-editscriptdialog-python.png" width="75%"></div> 本入门所有代码可直接复制粘贴至 *_EditPythonScript* 对话框。 --- ## 下一步 现在你基本了解了什么是脚本语言,查看章节[Python Essentials](https://gitee.com/al666ex/developer-rhino3d-com/blob/master/_guide_topics/rhinopython/primer-101/2-python-essentials.md) 深入学习Python语言。