X
返回顶部
当前位置: 首页> BIM资讯> BIM技术

Dynamo处理三维曲线怎么做?Dynamo输出指定区间内的三维曲线

发布:中文网小编3号 浏览:4200人 分享
发布于:2020-06-02 11:00

    在“BIM每日一技”(ID:bimDaily)第1066期中的方法只能够输出全部的三维曲线,但是有时我们需要输出指定里程区间内的三维曲线。

    1. 获取样条曲线

    1.1节点ModelElement拾取Revit中导入的图纸。

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

    1.3将PolyCurve转换为NurbsCurve。

image.png

    2. 获取投影的曲线

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

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

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

image.png

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

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

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

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

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

image.png

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

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

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

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

image.png

    5. 导出三维曲线

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

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

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

    6. 应用程序

image.png

102.gif

BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!