×

工业设计互动平台

手机短信,快捷登录

微信登录,快人一步

QQ登录

只需一步,快速开始

copy trim断面另一种方法

发布于 2016-3-14 1 点赞 3 评论 6045 浏览

offset.png

看见大家对copy trim和offset讨论很多... 我也来提供一种解决办法
本帖需要稍微耐心看一下  其中的判断和推断是根据我对于rhino基础和grasshopper的了解 无法保证100%正确
附件里的Stream Gate 0,1,2分别对应三种情况(不熟悉这功能的同学: 换一下Value List里面值就可以更换解法)

结论党直接看最后一段+附件Stream Gate 1


copy trim的工作原理是基于uv remapping
如果出现断开的情况 还是因为uv出现了问题而出现uv问题 原因是offset这个功能的机制

图中0是原始rectangle
1是正值offset并且offset的corners选项=Sharp的结果
2是正值offset并且offset的corners选项=None的结果
3是基于1的输出取discontinuity的点重新连接成polyline的结果
另外还一个可能就是(无图) 就是offset选负值 也就是向内 再pts on 控制点依然维持4个 (这时copy trim不会出现问题)

offset的工作机制本身是不涉及线长的 平时我们看到的线长变化都是根据交点trim或延长线相交之后的结果
而polyline如果向外offset就会出现断开的情况(图2) 所以需要补足长度(corners不为none的情况,默认sharp)
然而最初的控制点都还在(在grasshopper里很难察觉)
可以理解为offset是原曲线的孩子 还带着原曲线的基因(控制点) 但是你无法看到
而copy trim恰巧根据这个工作... 这时如果就会出问题

我个人觉得解决方法写script最简单 但是如果你不会那三种语言之一...
boolean difference(无论是surface split或者region difference)实在是太慢 (好像是因为工作机制不基于uv remapping, 不确定 没仔细看过)

所以我想给不会写script 又不愿意等的同学另外一种方法...

其实很简单 就是想一下 把图中的1变成0需要什么方法?
也就是把基因洗掉 造一个新rectangle...
所以就重建一个rectangle就好了...
具体就是offset之后的crv 用discontinuity拆出4个点 连成闭合polyline
然后就没然后了

另 offset是一个很不稳定的功能 算法略差 除了这个控制点问题 曲线经常会自交
    而2d offset本身也不是很简单就可以解决的问题  
    如果必须要用的话 最好用其他插件里面的offset(结果比较可控) 或者自己写一个


offset.gh (18.93 KB, 下载次数: 35)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩回复

文明上网理性发言、请文明用语

乌龙 | 设计总监 | 发表于 2016-3-14 09:44:12
楼主要是能配图进行说明就更好了
0 回复

举报

frank_gt2 | 设计助理 | 发表于 2016-3-14 10:21:50
GH不懂 ~路過支持
0 回复

举报

无与伦比小乌龟 | 设计助理 | 发表于 2016-3-30 21:46:24
顶顶顶,好东西
0 回复

举报

推荐学习