Grasshopper
你说的对,但Grasshopper是一款由David Rutten自主研发的参数化设计可视化编程插件。插件运行在一个被称为Rhino的功能强大的3D建模软件,在这里,被建筑学选中的人将被赋予建模之力……后面忘了。
1.剪式伸缩机构1.剪式伸缩机构



Grasshopper文件:剪式伸缩机构
学校课程产物,效果与可自定义部分如图所示。上个月用Godot做了个简单的原型,代码习惯不得不稍加变好,加上机构原型泛用性较强,似乎属于适合分享的内容,遂粗浅做下记录。
最主要的逻辑是伸缩的控制,其余部件都只需要在此基础上添加。在位置上,杆件B一端完全固定,杆件AC一端水平固定,又共同交于中心点;在方向上,三个杆件都可看作在以固定或水平固定点为中心旋转。杆件长度为定值,半长也为定值,杆件可视作一个固定的圆与一个平移的圆交点与圆心之间的圆半径,杆件涉及的向量可以通过这两个点比较轻易地获取。其实我一开始想的是等腰三角形已知边长用三角函数求角度再构造向量,但这显然麻烦得多……
此外,某个角落涉及gh的精度问题。gh文件中共有2个C#脚本……那串名字特别长的就是为了解决这个问题(擦汗)。当double数据小数点后的值小于某个特定值时,gh似乎会在某些显示层面将其省略。但在值的相关运算中,小数点后的值依然是存在的,因此出现了0>0为true的情况……于是我在脚本里设置了一个足够小的容差,将比其还小的差值直接省略。不过这是一种比较局限的用法,这样做是因为此精度在此具体情况中的确可被省去。
这套代码建雪糕棒(?)时是用矩形与圆形组合得出的,但其实用fillet可以快速实现。如果还有什么要说的,grasshopper渲染有时会延迟,导致用户在某个一小时内抓耳挠腮寻找莫须有的bug无果……
2025.11.09