想在GH里使用Rhino文字里的fx功能


#1

请版主解惑,我发现Rhino文字下的fx功能是按照一种固定格式来写的。例如图中这个方框的面积自动计算。

请问为什么在GH里按照这个格式去写文字,已经都显示我想要的值了,bake出来却又变成 公式/代码 的文字而不是应该出现的值了呢?

一模一样的文字,如果用rhino的text功能写一下,就是正确的结果。好困惑,请问有办法解决吗?


#2

@Jorin,請看一下這個問題,謝謝。


#3

一定要通过 Text 中的 fx 功能去计算的话,没有任何办法,也没有必要,原因如下:

Rhino 中的 Text 在新建和修改内容之后而在显示出来之前,底层会读取和计算一次 fx 数据,该计算过程是由 Rhino.Display.Text3d 函数的内部计算来完成的,也就是说计算结果只是这个函数的显示效果,而不是真正的字符串,真正的字符串还是用户所输入的字符串,而从 GH 中 bake 出字符串将会跳过该函数直接显示出来,除非用户手动对字符串进行一次修改,否则它不会经过 Rhino.Display.Text3d 函数的处理。

没有任何必要这样做的原因是,Rhino.Display.Text3d 中也无非就是把数值计算然后显示出来,通过 GH 的计算组件是很容易能够得到想要的计算结果的。


#4

谢谢jorin.
我们的问题是,我们的设计师在设计楼层平面图的时候,会一直改动每个房间方框的大小,这些当然是手动的.
比如业主要求是20平方,一般要求的平方数都是整数. 我们可能最终排出来是18.88平方.在调整的过程中,我们一直在改变这个方框大小,同时当然也希望看到平方数产生了哪些变化,最后还要导出一个Excel表格,实际的平方和要求的平方数到底符合不符合.

这些手动排平面的工作在GH是很难完成的,因为太个性化. 但是GH可以一次性把业主要求的上千个房间的框线和每个房间对应的文字都在房间的边框里生成出来.
我们现在就差如何让方框和这个文字能有联系性. 而Rhino的fx功能又恰好是我们需要的.

请问有办法吗?万分感激.


#5

可以将多个物件的 GUID 同时带进 GH 求得对应几何体的面积并输出结果,这是没有问题的。

但如果一定要在 GH 中调用 Rhino 文字的 fx 功能,即使写脚本也无法调用,因为这一切都是在 Rhino.Display.Text3d 内部完成,内部的计算过程并未暴露给用户和开发者。


#6

明白了,那我们只能另辟蹊径. 非常感谢你的回复.


#7

我不知道是否是我理解有误?完全可以在 Rhino 里排,然后把上千个方框的 GUID 读取到 GH 并计算出对应的数值并在方框中生成,没问题的,为什么要另辟蹊径呢?


#8

在 Rhino 里手工调整任何一个方框,GH 里计算得到的数值也跟着变也没有问题呀,所以我在想我是不是哪里有误解?


#9

是的,GH的预览效果确实是已经把函数值显示出来了.改动方框也确实会跟着改变.
这也是我准备展示给他们的.

但是公司里的人大多都没接触过Rhino,如果我一开始让他们开着GH做设计估计他们会郁闷,有个预热的过程.慢慢来吧.
也许做过两次他们就习惯了.


#10

应该是我写的不对,不是另辟蹊径,而是在多个软件中找到最适合我们公司的.目前公司用的autocad, 我是想推rhino和revit,就必须给大家展示新软件的优势,或者最起码,autocad可以做的,其他的也能做到.

推动一个新软件在公司里是件费力的事情,没有完美的软件. 过两天我展示GH这个自动预览效果,估计下面又是一帮反对的人: 哎呀,太麻烦了啊,我用CAD一样可以做等等等等…我想你懂我的…


#11

你的需求用 Rhino + GH 实现起来并不难,要是再配合脚本的话,输出 excel 文件也是不在话下的,这些都是不用去调用 Rhino 文字的 fx 就能够实现的。


#12

是的,这些功能用RH+GH都能实现. 但是为了让其他老员工接受Rhino,我必须尽可能的把里面的功能简化,让他们一开始只用Rhino就能满足大部分的需求.