NCF参数化建筑论坛

标题: Grasshpper新手晒心得之一:按面积等分曲面 [打印本页]

作者: shinsai    时间: 2011-3-15 21:36
标题: Grasshpper新手晒心得之一:按面积等分曲面
本帖最后由 shinsai 于 2011-3-16 14:46 编辑 本学期以来开始逐渐接触gh这个东东了,对于我这个数年做设计不讲道理、只求靠横冲直撞在su折腾出一个还看得过去的形式的人来说,要从头建立一种参数设计的思考方法不是件简单的事。个人感觉参数化设计的基本入门,就是要建立对各类数据结构的理解和处理数据的逻辑,这也是看完GenerativeAlgorithm后的一点点感想。慢慢地这方面积累了一些个人心得,虽然简单但网上也没见过其他人的类似做法,所以写出来与正在学习参数化设计的朋友们交流吧~~~~ 我们知道在gh里要分割一个曲面,一般使用divide surface或者divide domain 2之后再isotrim,但这样在处理起伏较大的曲面时会明显发现分割出的单位曲面是不一样大的,这是因为在这些电池背后都是以均分区间的方式分割曲面而不是按面积大小,看起来总是有些怪。

登录/注册后可看大图

登录/注册后可看大图
如何让割出的单位曲面面积一致?很容易想到的方法是先用divide curve等分曲面两个方向(u、v)的四条边缘曲线,得到一些均分的曲线段和点,在曲面上连接这些点做出曲面的uv线后再输入surface split,在各单位曲面之间四条边长度都相等的情况下面积当然也大致相同。然而我无论如何都无法做出理想的uv线。注意到isotrim运算器需要你输入的是一组二维区间,那么何不在第一步divide curve后自己作出这个二维区间呢? 首先就是将曲面炸开,用List item得到曲面的两条边缘曲线,并观察他们的区间:

登录/注册后可看大图

登录/注册后可看大图
两个区间对应此前分割曲面时看到的区间总范围,大小当然是一致的~便于区分我将他们命名为u和v,然后将divide curve(length)拖进来吧,观察曲线被分割后产生的各端点 的t值:

登录/注册后可看大图

登录/注册后可看大图
10等分曲线就分别得到了11个端点和11个t值,需要用这11个t值各自在u和v区间里生成10个区间。生成区间的方法就是用前一个t作首去连接下一个t作尾。于是作为区间尾数的一串数需要在首数列的基础上加进一个shift list并将offset指数设为1,再用domain连接两串数字。由于shift之后尾数列只有10个数了,记住在domain里将数据的match方式改为shortest list:

登录/注册后可看大图
10个u区间顺利生成,对v区间也作相同处理!马上就要成功了!用domain 2将两个一维区间组合成二维的uv区间。因为是以10*10等分曲面故会产生100个单位曲面,100个uv区间,因此要在domain 2的match方式里再改成cross reference,让我们 看看情况如何:

登录/注册后可看大图
很完美的uv区间,看起来这些数字的确还蛮漂亮的吧~~~最后只要将这些二维区间连到isotri m就大功告成了。

登录/注册后可看大图

登录/注册后可看大图
现在用这个分割过的曲面你去morph做表皮做什么都没问题,不会再出现每个单位曲面大小差异的情况了,否则做出来的表皮也是怪怪的~~~~ 最后罗嗦一句问问斑竹,要怎么样才能在gh主区发帖,对于论坛里的规矩实在是很难抽出时间慢慢看。。。
作者: ctp816    时间: 2011-3-16 08:27
好多图都挂了,是我这的问题?
作者: 南萧亭    时间: 2011-3-16 10:01
楼主你已经差不多了,混到150积分就可以在主区发帖了,我还要继续努力~~~我也在思考面细分的方法,尤其是如何既美观又能够保证每一段面积大体相似。
作者: 南萧亭    时间: 2011-3-16 10:33
图片无法显示。“抱歉,该图片仅限人人网用户交流使用。”
作者: shinsai    时间: 2011-3-16 14:47
图修复了,人人图不能外链。。。 2# ctp816
作者: shinsai    时间: 2011-3-16 14:48
重新传了一次图,能看到图了吗?我在主区看过你跟的帖子发的图,也挺不错的啊,加油~ 3# 南萧亭
作者: shinsai    时间: 2011-3-16 14:55
主要是论坛里很多东西都设了权限,权限不够读不了。。。如果是有些大大自己原创的东西设这个我还能理解,一些分享外面的东西也不让人看我就不明白了,如果斑竹看到我发言我也说句抱歉,新人在这里发表这些意见。。。 4# 南萧亭
作者: todstods    时间: 2011-3-16 18:04
NICE!,顶贴.
作者: ayan13    时间: 2011-3-16 19:14
这个一定要顶起!很好的研究,谢谢分享!
作者: 南萧亭    时间: 2011-3-23 13:48
试了一下并用面积运算器算了每一部分的面积,发现误差仍然很大,最大的面积有21多但最小的还不到14.
作者: 1940    时间: 2011-3-23 13:55
试了一下并用面积运算器算了每一部分的面积,发现误差仍然很大,最大的面积有21多但最小的还不到14. 南萧亭 发表于 2011-3-23 13:48
任意双曲面,不说是四点面,三点面都不可能实现的。 除了特殊型体
作者: 阿飞的小蝴蝶    时间: 2011-3-26 09:56
感谢楼主分享啊
作者: ytwjianzhu    时间: 2011-3-26 10:44
如果曲面的2组对边不一样还可行吗
作者: yutia31    时间: 2011-3-26 15:17
学习, 学习~~~~~
作者: xzkaokao    时间: 2011-7-6 07:37
这样很不错!!
作者: eggplant8008    时间: 2011-7-6 09:35
支持!!!!
作者: hyl2099    时间: 2011-7-6 09:40
学习了,谢楼主
作者: hyl2099    时间: 2011-7-6 11:23
还不会用grasshopper,看这些帖子都不懂啊。。
作者: yaoxuy    时间: 2011-12-1 20:23
这样的解决方法很好,只是对于封闭曲面是否适用呢?
作者: elaine小企鹅    时间: 2011-12-8 21:49
楼主威武!
作者: elaine小企鹅    时间: 2011-12-8 21:51
有问题 曲面的GRASSHOOPER文件没有吗
作者: 火星人    时间: 2011-12-21 10:21
支持学习中还是看图标的比较明白。英文的看不懂
作者: 大猩猩GGG    时间: 2011-12-26 11:28
顶顶顶 谢谢楼主分享
作者: 大猩猩GGG    时间: 2011-12-26 15:28
感谢楼主分享,我下回去研究研究
作者: shc0072008    时间: 2012-4-8 00:47
楼主威武!
作者: 前轱辘后轱辘    时间: 2012-4-8 15:06
谢谢楼主分享
作者: 活建鬼    时间: 2012-4-13 23:14
参观一下~~~~
作者: rotring135    时间: 2012-4-18 11:05
这个可以试试啊
作者: wzlcff    时间: 2012-5-24 21:15
图看的不是很清楚啊……
作者: saigui    时间: 2012-5-24 22:20
新手?比我厉害多了
作者: wzlcff    时间: 2012-6-5 15:44
好东西啊,学习一下……
作者: LGY    时间: 2012-9-18 13:16
定9999999999999999999999
作者: wzlcff    时间: 2012-10-10 19:32
好东西,学习一下……
作者: Thierry_Mac    时间: 2012-11-19 08:32
不对齐恐怕不能实现
作者: judgeliao    时间: 2012-11-19 21:00
楼主,我用你的方法试了,步步都照做,但是得到的结果是一个空集。。。。为什么
作者: judgeliao    时间: 2012-11-22 11:54
这是我的电池文件和模型文件  敬请指教
作者: 记住    时间: 2013-1-31 13:39
不错,很有启发
作者: andyzha1    时间: 2013-3-14 21:39
我还是有很多不懂耶。楼主可以把文件发出来么?
作者: MAJI    时间: 2013-4-27 00:01
请问楼主,,如果是封闭的曲面呢??我加多一个一个最大的值到0的domain想围合起来还是实现不了?




欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2