在CAD中一般通过先绘制道路中心线,之后对中心线的圆角化及偏移等操作达到道路绘制的效果(流程如图一)。但是当需要绘制大量道路特别是道路存在交叉等情况时这种方式显然很低效,对设计人员来讲可能成为一件令人头疼的事儿。

图一 CAD人工绘制道路

图二 CAD人工绘制道路效果图

鉴于道路的绘制存在一定的重复性因此考虑采用CAD二次开发的方式来解决处理重复操作的问题以提高工作效率。

市面上也存在一些插件可以做道路绘制,但多以自定义实体的方式实现,虽然相当方便,但当脱离的插件已绘制好的道路不便于修改。今天我们通过CAD实体的方式来实现道路的任意绘制。

饭一口一口吃,路一步一步走,我们先完成单条道路的绘制,之后进行道路的单交叉处理最终是多交叉处理及道路的任意绘制。

我们知道程序可以替我们高效的完成重复性工作,但对于道路属性等信息他不能代替我们决定,因此首先我们需要设置包括道路宽度,圆角半径等相关属性信息,之后才能托管给计算机来帮助我们完成偏移、圆角化,文字标注等作业。流程如下:

图三 程序绘制单条道路

图四 程序绘制单条道路效果图

以上我们解决了随意绘制单条独立道路的绘制,如果圆角半径需要修改可使用cad的fillet命令进行修改。但当绘制的道路和已存在的道路发生交叉时又将如何处理。这里我们就面临三个问题:

  1. 如何获取CAD图纸空间存在的既有道路;

  2. 获取当前道路和与其相交的既有道路(相交运算);

  3. 相交道路边界处理。

对于问题1我们可以再绘制道路的时候向道路实体添加扩展数据以便于我们后期在绘图空间中找到他们;

对于问题2我们直接采用CAD的线段相交来确定;

对于问题3我们首先要确定当前道路边界和既有道路边界的相交情况和交点位置,之后进行边界融合。

对于多交叉问题,可以吧多交叉转化为多个单交叉问题来处理。流程图及效果图如下:

图五 绘制道路

图六 程序绘制单交叉道路效果图

图七 程序绘制多交叉道路效果图

CAD二次开发之创建道路相关推荐

  1. c# CAD二次开发 类库 创建各种图形、直线、圆、多段线、正方形、点等

    c# CAD二次开发 类库 创建各种图形.直线.圆.多段线.正方形.点等 using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD ...

  2. CAD 二次开发之创建包含文字的线型

    1. 简介: 在CAD制图时,为了区分线条往往需要用到包含文字或特殊符号的线型,在这里就分享一个创建包含文字线型的插件. 线型的定义这里就不赘述了,大家可以看两个帖子: ObjectARX创建带文字的 ...

  3. CAD二次开发-c#创建Excel表格及其一系列简单应用

    创建Excel 创建Excel必要索引库:NetOffice 需版本对应 Excel.Application application = new Excel.Application();Excel.W ...

  4. CAD 二次开发 图层操作(1)创建图层

    CAD二次开发的资料比较少,除了李冠亿先生的<深居浅出AutoCAD二次开发>这本书之外,目前没有找到合适的参考资料.现将自己工作中用的的一些方法贴出来.方便各位网友快速入门. #regi ...

  5. CAD二次开发C#.Net编程-CAD创建右键菜单

    CAD二次开发&C#.Net编程-CAD创建右键菜单 private static ContextMenuExtension m_ContextMenu;//装载右键菜单public stat ...

  6. c# cad 二次开发 类库 netload 图层操作、创建图层、删除图层、设置当前图层等

    c# cad 二次开发 类库 netload 图层操作.创建图层.删除图层.设置当前图层等 using Autodesk.AutoCAD.ApplicationServices; using Auto ...

  7. cad 二次开发 插入图片_C#之CAD二次开发(2) 直线对象创建及添加

    0. 前言 从本文开始就正式登上开往CAD二次开发幼儿园的大巴车了!你准备好了吗?车门已经焊死! 还有,本系列笔记是默认大家都有C#的基础的了.这个系列笔记是我自己学习CAD二次开发的一些记录,可能存 ...

  8. cad二次开发 java_关于CAD二次开发,你究竟知道多少?

    原标题:关于CAD二次开发,你究竟知道多少? 一.CAD二次开发,应用广泛,机械工程类比较明显! 二.开发语言:Lisp: Autodesk Lisp ObjectARX: VC++ ActiveX: ...

  9. CAD 二次开发 图层操作(3)取得指定图层下的所有对象id

    对于CAD二次开发的人来说,可能需要对某一图层下的实体(点,线,面域,块,三维实体)进行不同的操作.下面的方法,即可实现获取指定图层名称下的所有实体ID. 输入参数为图层名称: 返回值为:对象主键集合 ...

最新文章

  1. 从谷歌AutoML到百度EasyDL,AI大生产时代,调参师不再是刚需
  2. 鸟哥的Linux私房菜(基础篇)-第三章、主机规划与磁盘分区(三.1. Linux与硬件的搭配)
  3. 检查企业的销售和分销结构
  4. 获得指定时间所在月份的天数
  5. 前端学习(1858)vue之电商管理系统电商系统之分析登录页面的布局结构
  6. EditPlus 技巧大全:[1]怎么配置PHP编译环境
  7. java中字符串(2)String
  8. Event Viewer 查看 Windows 系统日志
  9. SpringBoot框架中解决日期展示问题
  10. 如何在Windows CMD的一行中运行两个命令?
  11. fpga从入门到放弃(一)基于vivado2018环境开发板Artix 7系列BASYS3(更新中)
  12. pdf怎么提取图片?职场达人都在用的两个方法分享给你。
  13. 使用hexo+github搭建免费个人博客详细教程
  14. java cursor_cursor的基本使用方法
  15. p2p 企业信贷 UML 跨行清算
  16. 怎么看计算机配置好不好,怎么看电脑配置好坏,详细教您怎么看电脑配置好坏...
  17. Oracle的表简单介绍
  18. Pytorch+PyG实现GraphConv
  19. 一次调频二次调频matlab仿真,一种改进型VSG二次调频控制器及控制方法与流程
  20. JZ2440学习笔记

热门文章

  1. 浅析Promise用法
  2. 来一套自动化测试面试题(答案版)
  3. python 添加半透明水印_超简单Python安全批量加水印教程!
  4. PHP笔记-Workerman整合到Laravel中并创建websocket
  5. Windows 入门 AI 视觉处理 --- 搭建姿势识别应用 之 利用NVIDIA Maxine识别人体姿势
  6. [转]注册表基本知识
  7. 小型文件系统FatFS和LittleFS对比和区别
  8. established 太多_netstat监控大量ESTABLISHED连接数和TIME_WAIT连接数题解决
  9. win7无法识别u盘解决方法
  10. Linux Oracle 创建用户