在CAD中一般通过先绘制道路中心线,之后对中心线的圆角化及偏移等操作达到道路绘制的效果(流程如图一)。但是当需要绘制大量道路特别是道路存在交叉等情况时这种方式显然很低效,对设计人员来讲可能成为一件令人头疼的事儿。
鉴于道路的绘制存在一定的重复性因此考虑采用CAD二次开发的方式来解决处理重复操作的问题以提高工作效率。
市面上也存在一些插件可以做道路绘制,但多以自定义实体的方式实现,虽然相当方便,但当脱离的插件已绘制好的道路不便于修改。今天我们通过CAD实体的方式来实现道路的任意绘制。
饭一口一口吃,路一步一步走,我们先完成单条道路的绘制,之后进行道路的单交叉处理最终是多交叉处理及道路的任意绘制。
我们知道程序可以替我们高效的完成重复性工作,但对于道路属性等信息他不能代替我们决定,因此首先我们需要设置包括道路宽度,圆角半径等相关属性信息,之后才能托管给计算机来帮助我们完成偏移、圆角化,文字标注等作业。流程如下:
以上我们解决了随意绘制单条独立道路的绘制,如果圆角半径需要修改可使用cad的fillet命令进行修改。但当绘制的道路和已存在的道路发生交叉时又将如何处理。这里我们就面临三个问题:
-
如何获取CAD图纸空间存在的既有道路;
-
获取当前道路和与其相交的既有道路(相交运算);
-
相交道路边界处理。
对于问题1我们可以再绘制道路的时候向道路实体添加扩展数据以便于我们后期在绘图空间中找到他们;
对于问题2我们直接采用CAD的线段相交来确定;
对于问题3我们首先要确定当前道路边界和既有道路边界的相交情况和交点位置,之后进行边界融合。
对于多交叉问题,可以吧多交叉转化为多个单交叉问题来处理。流程图及效果图如下: