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

下载app免费领取会员

NULL

5cdd2dc095060.jpg

Dynamo输出指定区间内的三维曲线

发布于:2019-06-04 10:57:36
首页/技术分享/Dynamo
收藏
7980

朱光旺

更多

在技术文章Dynamo将三维曲线转换为公制体量 http://www.tuituisoft.com/blog/2747.html 中的方法只能够输出全部的三维曲线,但是有时我们需要输出指定里程区间内的三维曲线。

1、获取样条曲线

1.1 节点Select Model Element拾取Revit中导入的图纸。

1.2 节点Element.Geometry将获取的图元转换为Dynamo中的几何图形。

1.3 将PolyCurve转换为NurbsCurve http://www.tuituisoft.com/blog/2101.html 。

01 获取三维曲线.png

2、获取投影的曲线

2.1 由于里程的计算是根据平曲线的弧长,因此需要将三维曲线转换为平曲线

2.2 通过节点Curve.Project将样条曲线投影至平面XY,投影的方向是向量(0,0,-1)

2.3 投影的结果存放在列表中,因此将其用x[0][0]提取出来。

02 将曲线投影.png

3、输出指定里程区间的起点与终点

3.1 节点CodeBlock中需要三个参数,cur表示投影后的平曲线,len1表示里程区间的起点,len2表示里程区间的终点。

3.2 节点Curve.PlaneAtSegmentLength可以获取指定弧长位置的平面,得到两个平面以后将它们存放在列表中。

3.3 节点Geometry.IntersectAll可以求几何图形的交集,我们求的交集是三维曲线与两个平面的交集。

3.4 线与平面的交集是点,因此我们就得到了指定里程区间中三维曲线对应的起点与终点

03 获取交点.png

4、获取里程区间内的曲线

4.1 节点Curve.ParameterAtPoint可以获取里程的起点与终点在三维曲线上的参数值。

4.2 通过x[0][0]x[1][0]获取这两个参数值。

4.3 节点Curve.TrimByParameter可以保留指定参数区间的曲线,保留的结果就是指定里程区间的三维曲线

04 获取曲线.png

5、导出三维曲线

5.1 通过节点Curve.PointAtParameter获取里程区间内三维曲线的点,点的数量与CodeBlock有关,图中是101个点。

5.2 通过节点ReferencePoint.ByPoint将点转换为公制体量中的参照点。

5.3 通过节点CurveByPoints.ByReferencePoints连接参照点生成模型线,输入端isReferenceLine控制是否为参照线。

05 导出曲线.png6、应用程序

06 运行程序.gif

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

未标题-1.jpg

上一篇:在Revit的三维视图中如何快速淡显土建构件

下一篇:Revit 如何在墙体上直接剪切矩形洞口?