完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

5cdd2dc095060.jpg

Dynamo如何将PolyCurve转换为NurbsCurve

发布于:2020-06-08 17:58:30
首页/技术分享/Dynamo
收藏
9389

朱光旺

更多

1、首先明确 PolyCurve 和 NurbsCurve 的概念。PolyCurve 一般是指多段线或者多重曲线,是由多条曲线拼接而成的。NurbsCurve 一般是指非均匀有理B样条,是一整段连续的。

2、本篇技术文章主要介绍如何处理从 Civil 3D 导入 Revit 后的多重曲线。

2.1 首先通过节点 Select Model Element 将导入 Revit 的后缀为 dwg 的图形拾取进Dynamo中。然后通过节点 Element.Geometry 获取图元的几何图形。

2.2 从获取的结果发现,这条 PolyCurve 一共由 637 条小曲线组成,如果直接使用这条曲线执行放样等操作将会生成大量图形。转换的思路很简单,就是先获取 PolyCurve 上的点,然后用这些点重新生成 NurbsCurve。

0201_拾取曲线.png

3、获取 PolyCurve 上的点。

3.1 通过 Civil 3D 生成的三维曲线有一个特点,这些三维曲线是由多段长度大致相同的小曲线组合而成。

3.2 因此通过节点 Curve.PointsAtEqualChordLength 获取曲线上均分之后的各个点,具体点的数量由输入端 int 控制,一共由 637 个分段,因此输入 637 - 1 = 636 个点。

0301_获取曲线上的均分点.png

4、第 4 步的分段点不包含起点和终点,因此需要通过节点 Curve.StartPoint 获取起点,通过节点 Curve.EndPoint 获取终点。

0401_获取起点和终点.png

5、重新生成 NurbsCurve。

5.1 将起点放进列表的第一项,将分段点放进列表的第二项,将终点放进列表的第三项。

5.2 通过节点 Flatten 将列表铺平,铺平之后就是一个列表存放着所有的定位点。

5.3 通过节点 NurbsCurve.ByPoints 生成经过这些定位点的样条曲线。

0501_生成样条曲线.png

本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。

未标题-1.jpg

上一篇:Dynamo的节点是如何进行分类的?

下一篇:Dynamo如何旋转放置的族文件