刚刚讲完的Dynamo快速在线课程中,我详细的讲解了添加路灯过程。 再把课上的知识总结一下,分享给有需要的朋友。
初始情况,如下图所示
我们这个dynamo脚本的目的: 在道路的铺装路肩边缘,每隔200米安装一个路灯。图纸已经定义好一个路灯块。包含一条“CAD2BIM”道路,里面有个“Dynamo”基线。有代码为“铺装路肩边缘”要素线
我们先看看整体的流程
如下图所示:我把它主要分为三大块。
拾取要素线
获取路灯安装位置
插入路灯块
还有一个Document.Current的节点被我单独放置。 它是很基础的工作,作用是拾取当前的图纸
拾取要素线
目的是为了获取“铺装路肩边缘”要素线信息
可以看出 civil 3D里的对象是这样的关系。
要素线是baseline的一个属性,baseline则是corridor的一个属性。corridor可以直接从document里提取。
提取要素线后,会发现,我们提取了4条要素线。 CB03的作用就是把4条要素线当成一个列表,我们先只操作第一条要素线。
获取路灯安装位置
要素线有StartStation 与Endstation . 我们先获取这两个值
然后再这个里程区间里每200米,获取一个坐标系。为了更接近实际情况,我在起点里程+2处才开始安装路灯
坐标系生成后,它的原点就是我们要拾取的坐标点,将会作为路灯块的插入点
插入路灯块
关于块
Block 是块的定义。
BlockReference是块的实例。
ModelSpace,Paperspace是特殊的块。
BlockReference.Create 相对比较复杂,我对各个参数简单的解释一下
Sourceblock 需要插入的块
position块插入的位置
Normal 法向 。默认z方向
Rotation Degrees 旋转的角度,单位就是°。默认是0
Scale factors x,y,z方向的缩放比例。默认1,1,1
Layer,这个没有默认值,所以一定要输入一个值。 如果你不知道输什么好。AutoCAD默认有个0图层。可以保证你这里不会是错误的输入。
block可以认为是Block的容器,对于document而言,最大的两个块就是图纸空间(Paper Space)与模型空间(ModelSpace)了。
继续完善
上面的这个例子里,只对1条要素线放置了路灯。实际上则是有4列路灯。我们可以把插入路灯块再重复三次,把相应的参数调整一下就行了。
最终完善后的效果图
获取样例文件:
关注公众号后留言索取本文所用的dyn和dwg文件。欢迎“好看”支持。
/CAD2BIM 1035/
相关阅读:
相关阅读:
评论0