分享

每日一技 | 1070 Dynamo输出指定区间内的三维曲线(文/腿腿教学网)

 技巧运用 2019-09-12

《每日一技,我的成长轨迹》 投稿送书活动

  “BIM每日一技”开放投稿送书活动:稿件一旦采用,作者即可加入《每日一技,我的成长轨迹》系列图书编委会成员;同一名作者每投稿5篇及以上并审核通过即可获取《每日一技》(希望版)纸质图书一套。Come on,加入投稿,下一个编委就是你!投稿QQ:540352394

获取《每日一技,我的成长轨迹》汇总

· 请访问柏慕联创官方网站:www.lcbim.com ·

每日一技 | 1070  Dynamo输出指定区间内的三维曲线


【文 / 腿腿教学网】

【审核 / 许述超】 

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

1. 获取样条曲线

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

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

1.3 将PolyCurve转换为NurbsCurve。

2. 获取投影的曲线

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

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

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

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

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

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

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

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

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

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

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

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

5. 导出三维曲线

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

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

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

6. 应用程序


Autodesk Dynamo从入门到精通(5天)

(个人 / 企业团队均可面授)

欢迎提前预定课程!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多