
Grasshopper进阶
文章平均质量分 84
Grasshopper电池开发的一些奇奇怪怪的技巧,没准哪个用得上呢?
几何螃蟹
Wonder is mother of all science.
展开
-
【Grasshopper进阶】反射?什么反射?用反射屏蔽掉C#Script电池的运行时长
写这次这一篇的原因是来自一个优快云网友找到我提出了一个拷问:知名网友:“我想把下面的代码放到 C# Script电池里,怎么加?”public override TimeSpan ProcessorTime { get { if (setUp) return TimeSpan.Zero; else return base.ProcessorTime; }}知名网友:“我的目的是想让这个脚本电池不显示运行时间,不知道怎么处理了。”我品了品,em原创 2022-01-14 13:09:12 · 1177 阅读 · 6 评论 -
【Grasshopper进阶】在Grasshopper画布上实现动画效果
最近笔者为了能够做到对用户友好,深入地学习了一些前端的知识,等回过神来,发现已经好久没有在优快云上更过东西了… 结合最近看到的某些前端框架的底层,突然想到为什么不在Grasshopper上玩动画呢?比如电池拖出来之后,缓缓变形,然后出现一些UI的元素。本来已经做好了手动写 Timer 或者写个线程循环来操作,结果人家Grasshopper自带这些个做动画必备的东西,那就简单了,抱着试试看的态度,完成了一个好玩的动画效果。就如同文章最开始的 gif 动画一般。下面就 “简单” 介绍一下如何在Grass.原创 2021-07-07 18:12:34 · 2613 阅读 · 24 评论 -
【Grasshopper进阶】Grasshopper外部调用
本文主旨是介绍“进程间通讯”在Grasshopper中的应用。常用场景:手头已经有一个程序,这个程序想控制Grasshopper画布中某些组件进行一些数据操作,这个程序是独立Rhino和Grasshopper之外运行的。从另一个程序来控制 Grasshopper 中的组件。进程之间通讯Windows平台下,进程间通讯称为“Interprocess Communications”,具体详见msdn文档,有多重实现模式,在此就不赘述了:https://docs.microsoft.com/en-us原创 2021-03-05 18:11:57 · 4732 阅读 · 15 评论 -
【C#杂谈】当Grasshopper中的C# Scriptable电池遇到LinQ,抛弃Python的理由又多了一条
LinQ的全称Language Integrated Query,是一种将数据库理念,比如常用的查找(Select)、排序(Order By)、条件过滤(Where)等延伸到一般编程中的技术路径。Grasshopper的日常使用其中也包含了大量数据传递/使用的过程,比如按一定规律生成一系列点、将一系列直线按某种条件过滤掉等。虽然Grasshopper自带的运算器可以实现这些功能,但是有时候需要拖入大量的电池来实现一个简单的过滤逻辑。比如要从一堆点里选出X坐标大于1且小于5的点,如果只使用Grasshopp原创 2021-02-25 14:03:44 · 1301 阅读 · 8 评论 -
【Grasshopper进阶】强制Grasshopper电池输入/输出参数数据结构扁平化 (i.e. Flatten/拍平/展开…)
我们都知道,Grasshopper中一个很重要的概念就是数据结构,把数据输入到电池某个端口时,根据数据的结构的不同(列表/数据树),电池对数据会做出不同的响应。这也是为什么在我们在Grasshopper中进行参数化建模时,经常会使用到电池两端输入/输出参数的几个改变数据结构的选项 —— Flatten 和 Graft。我们在任何一个Grasshopper电池的输入、输出端参数上,或者是某个数据存储电池上点击鼠标右键,都会看到一个菜单弹出,里面包含了几种改变数据结构的选项。这种数据结构的快速改变的确会方原创 2020-12-17 13:32:53 · 4988 阅读 · 1 评论 -
【Grasshopper进阶】TaskCapableComponent vs Parallel.For 该怎么选?Grasshopper多线程进阶
TaskCapableComponent vs Parallel.For 该怎么选?在Rhino6更新之后,Grasshopper加入了一个新的API —— TaskCapableComponent,使得电池对多线程有了更深度的支持。官方也早在2018年就做了文档和简单的例子,让大家能够更好的针对使用这个组件进行开发(官方例子链接)。以下Grasshopper简称GH不过官方的例子有点奇怪,为什么我算一个斐波那契数列还要多线程?这玩意儿多线程有啥意义?再进一步说,由于GH的整个画布的单线程架构,我在这原创 2020-12-09 18:48:51 · 1437 阅读 · 10 评论 -
【Grasshopper进阶】(未填坑)如何让Grasshopper Component创建后台进程,并对结果进行更新
如何让Grasshopper Component创建后台进程,并对结果进行更新David Rutten的原文解答If you really must use a thread to process data while you keep the Grasshopper GUI alive, then the approach would be something like the following:Your component is called upon to Solve itself for原创 2020-12-08 17:34:45 · 1209 阅读 · 1 评论