在技术文章Dynamo将三维曲线转换为公制体量 http://photo.tuituisoft.com/blog/2747.html 中的方法只能够输出全部的三维曲线,但是有时我们需要输出指定里程区间内的三维曲线。
1、获取样条曲线
1.1 节点Select Model Element拾取Revit中导入的图纸。
1.2 节点Element.Geometry将获取的图元转换为Dynamo中的几何图形。
1.3 将PolyCurve转换为NurbsCurve http://photo.tuituisoft.com/blog/2101.html 。
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、应用程序
最新文章
政策新闻 | 新嘉园房地产开发(牟定)有限公司房地产开发企业资质审批公示 政策新闻 | 桂林市建设工程综合监督站开展桂林市区漓江支流“消劣返清”专项服务行动 政策新闻 | 呼和浩特关于2025年高校毕业生租购房补贴第五批审核通过人员名单的公示 政策新闻 | 2025年5月宜昌城区房地产市场运行情况 政策新闻 | 恩施州自然资源和城乡建设局关于新建宜涪高铁湖北段YFHBZQ-12标项目(恩施市段)第五批次3.8706公顷临时用地的批复 政策新闻 | 关于公开征集襄阳市市本级政府投资项目工程变更评审专家的通知 政策新闻 | 最高奖1000元!惠州再奖多名燃气安全“吹哨人” 政策新闻 | 呼和浩特市市政建设服务中心对鼓楼立交桥桥面进行集中修补工作 政策新闻 | 遂宁市住建局关于燃气企业类行政许可事项审批决定的通告2025年第7号 政策新闻 | 关于公示惠东县房票房源(第三批)的通知