本帖最后由 月之眼 于 2018-1-8 13:53 编辑
【版权声明】 作者:月之眼 本文由月之眼原创,首发于大水牛平台 如需转载请联系作者 如果觉得教程不错,欢迎分享 关注“大水牛参数化设计”微信平台,获取更多资源。 【正文】 这是回答Rhino原厂一位网友的问题,有兴趣的可以点击查看原文,源文件也在Rhino原厂论坛上。
这个功能在rhino中并没有直接的命令可以做,但是我们可以借助RhinoPython来写一个简单的脚本,先来看看效果。 来简单翻译一下代码的意思。 - 1-2:第一句是使rhinopython能输入中文的语句,写法有好几种,我比较习惯现在这种写法,有兴趣的可以百度下
- 3:导入写脚本需要的模块,这里我们引用rhino提供的rhinoscriptsyntax模块
- 5:使用rhinoscriptsyntax模块下的GetObject()函数选取需要选取控制点的曲线
- 6-8:第6句做一个判断,确保选取物件成功再进入下面的代码,第7句是不显示代码执行的过程,第8句打开曲线的控制点。
- 9:获取曲线控制点的个数
- 10:让用户输入一个数字,作为间隔选择的间隔数,默认值是2
- 11-12:第11句是以间隔循环控制点个数,第12句是根据循环出来的i,选择控制点。
运行上面的代码就可以实现这个效果了。 然后我们可以用操作轴对控制点进行缩放复制。 然后我们可以对最下面的线,间隔2和3选择控制点,并缩放一下做2个断面线,再loft就可以做出这个效果了。 原代码: - #coding=utf-8
- #作者:月之眼
- import rhinoscriptsyntax as rs
-
- obj = rs.GetObject("需要间隔选取控制点的曲线", rs.filter.curve)
- if obj:
- rs.EnableObjectGrips(obj)
- grips_count = rs.ObjectGripCount(obj)
- count = rs.GetInteger("间隔数",2,1,grips_count-1)
- for i in xrange(0,grips_count,count):
- rs.SelectObjectGrip(obj,i)
复制代码
更多内容欢迎关注大水牛的微信公共号: |