最近遇到的问题:有一条路线,想提取里面每隔一定桩号处特定点代码在图形中的坐标值。尝试着用dynamo for civil 3d来实现。
路线、道路、基准线的信息如下
我们举例,要找到装配中点代码“路拱”的具体坐标。想在桩号上每隔10米提取一个。查看dyanmo for civil 3d 的节点库后,觉得PointsbyPointCodeAtNearestStation也许能满足要求。先来看看这个节点
code 的输入值用“路拱”
Baseline,可以道路当中按照名字提取,道路可以在document 当中按名字提取。
Station的输入相对麻烦一点。但是仔细找找,我们可以在Alignment里发现有个stations的节点。
在alignment.stations节点当中
alignment路线,可以从document里按名字拾取。
Interval 是指提取里程的间距,我们设定为10
最后完成后PointsbyPointCodeAtNearestStation的截图如下
可以看出,顺利的提取出了各个点所在的坐标值。同时也把里程桩号也提取出来了。
本来以为完成了任务。结果出现问了一个新的问题,假如有断链的话怎么办?我们先看看加了断链后的情况
我们重新运行一下dynamo脚本,发现问题来了,根本就没有考虑到断链的情况。最后提取出来的还是原始桩号
这里只能手动的调整了,调整的办法有很多,比如说导出到excel当中,然后通过excel的把断链的增加值给添加上。
我们这里还是尝试用dynamo的方法来把它们加上。
我设想的逻辑是:手动的比较原始桩号与断链起点的值,如果大于等于断链的起点,就把桩号的增加值手动的添加到最后输出的桩号值当中。
可以看到从第78个索引号开开始,断链开始生效了,如我们所设想的一样
因为我只是做个演示,因此,这里只考虑了一个断链的情况。道路的实际情况比较复杂,通常会有多个断链,因此,我们考虑考虑把断链的开始里程和增加值分别存储到list里去。
其实最后还是有点疑问:
PointsbyPointCodeAtNearestStation里的usedstation 的值为何和左边的输入的station有些细小的差距?
相关阅读
关于本文里的内容,欢迎交流。如果你使用Civil 3D遇到任何的问题,可以联系Autodesk技术支持,可以参考: 如何向Autodesk问技术问题?
/CAD2BIM1068/
评论0