之前遇见一个客户问题,要将每一个图幅网格进行向外偏移一定距离,保证每张图幅都有一部分重叠度。

认真思考了一下就是向图面添加由多段线构成的正四边形、我的设计思路是这样的:
首先进行选择集过滤,因为在图形中不只有图框线,还有注记等其他实体,将其他实体过滤掉、只选择图框线;
第二、对选择的图形进行循环,获取每个图框的ObjectId,根据ObjectId获取实体的外包矩形,得到左下角点和右上角点,因为是正四边形,外包矩形和图幅网格图形一致,这样就拿到了图框的左下角点和右上角点的坐标;
第三、根据偏移的距离构造出新图框的左下角点和右上角点,并交会出新图框的另外两个角点的坐标;
第四、在内存中新建Polyline对象,将点按顺序依次连接并闭合;最后、向图面添加实体,提交数据。

程序编写流程

下图是目前原始图框各点和外扩后图框各点之间的对应关系图,黑色边框是目前原始图框边线,minPoint和maxPoint分别为图框的左下角点和右上角点。根据偏移距离构造出新的图框(红色框线)。

构建新图框示意图

代码如下:(文末有源代码下载链接)

在上面代码中ed.GetSelection()是提示用户从屏幕拾取对象,选择的结果保存在PromptSelectionResult中;

如果用户成功选择,则从PromptSelectionResul能获取被选中的实体集合,得到ObjectId数组,之后循环数组中每一个ObjectId,按照我们的设计流程进行逐个生成新图框。

Polyline是CAD中多段线,我们在内存中创建一个Polyline对象并调用它的AddVertexAt()方法向多段线中增加顶点;

AddVertexAt()方法有五个参数其中第一个为点的序号,第二个为点的坐标,第三个为凸度,第四个和第五个分别为起始宽度和结束宽度;

最后将Polyline的Closed属性设为true,将新图框闭合。

代码执行效果如下:

程序执行结果

进入本公众号后台
发送数字
5211
获取下载链接

C# | 批量将CAD图幅网格外扩生成新图框(附源代码下载)相关推荐

  1. arcgis使用GDAL根据x坐标和y坐标外扩生成缓冲区

    1.根据中心点 x坐标和y坐标外扩生成矢量数据 2.将西安84坐标转换成平面2000 if (!string.IsNullOrEmpty(XZB) && Convert.ToDoubl ...

  2. C# | CAD批量导出多段线节点坐标(附源代码下载)

    在日常工作内容中经常需要用到提取CAD图面坐标点,用于放样和其他软件做交换数据使用:比如导出测量点坐标.多段线节点,图块点等.导出点坐标可以用CAD的"DATAEXTRACTION" ...

  3. Blender图解教程:马里奥食人花三部曲(二)骨骼绑定和动画(网格丢失的问题已解决 附模型下载)

    书接上文<Blender图解教程:马里奥食人花三部曲(一)建模和贴图>,本文将完成食人花的骨骼绑定和动画工作. 文章目录 模型检查 绑定 搭建骨架 蒙皮 矫正权重 动画 Idle动画 Ho ...

  4. 如何建立异形板框的内缩和外扩

    如何建立异形板框的内缩和外扩 首先把需要内缩和外扩的外形图设置在信号层(比如TOP),把线宽改为0mil(方便计算). 然后选择外形图,执行命令TJ,就可以得到内缩和外扩图形. 然后把生成的图形修改到 ...

  5. uniapp 分享缩略图过大怎么办_女性胸外扩怎么办|3步带你完成改变

    无论是大胸还是小波,大多数女性都会有胸部外扩的现象,不同的年龄层次的女生中间也会出现这样的现象. 其实胸外扩现象的出现是由多种原因导致的,比如:睡眠姿势不正确.乳房发育异常,穿戴不适合的胸罩.哺乳等这 ...

  6. Istio如何使用相同的端口访问网格外服务

    1.1.背景 写这篇文章的目的是为了说明以下问题:如何使用TCP协议相同的端口访问网格外多个服务? 这是最近直播的时候有一个同学提出的,当时我没有完全明白,"访问多集群" 的意思. ...

  7. ZigBee On Windows Mobile—利用CF卡接口外扩

    目前,Windows Mobile设备的体积越来越小巧,带串口的设备工业用的比较多,而民用的较少.带CF卡接口的Windows Mobile设备还是有的,但是也在逐渐退出市场的舞台,取而代之的是更加小 ...

  8. java连接stk外部接口_SLWSTK无线开发工具上的外扩串口如何使用(虚拟串口/VCOM)...

    标题:   SLWSTK无线开发工具上的外扩串口如何使用(虚拟串口/VCOM) 关键词:ZigBee, 串口,VCOM,虚拟串口,外扩串口,EFR32, PCB4001,  EFR32MG13P732 ...

  9. 3.顶点外扩方法实现的描边shader

    描边shader的实现有很多种,顶点外扩是其中之一.顶点外扩的原理是用2个Pass 渲染物体2次 第一遍:描边,顶点沿法线方向外拓后用黑色渲染.外扩这一步的实现是在投影空间,也就是2D的,根绝法线的x ...

  10. 批量打印pdf并合并_批量打印CAD图(无删减版)

    前面两期小编出的PDF教程想必用了的人都觉得还不错吧? (此处应有掌声) 上一期提到的CAD批量打印今天放出来了,擦亮眼睛往下看 很多时候大批量的一堆图纸要输出,比如下面这个 当然这批图纸并不多,也只 ...

最新文章

  1. java servlet 参数乱码_JSPServlet处理参数中的中文乱码总结
  2. leetcode 203 Remove Linked List Elements
  3. 想要永久远程办公?抱歉,你可能「不配」
  4. UDP 编程 客服咨询回复
  5. Windows Phone中使用Local DataBase与ISolateStorage—在MVVM模式下(—)
  6. 准备翻译Windows 8 动手实验系列教程
  7. MySQL第10天:MySQL索引优化分析之索引介绍
  8. 这 8 篇文章告诉你:未来的软件研发是怎样的?
  9. 推荐:制作地图的网站和工具
  10. angular使用sass的scss语法
  11. PureMvc学习笔记
  12. leetcode 190. 颠倒二进制位
  13. java sql超过32k_db2 clob类型如何能存储大于32k的字符串
  14. bat批处理教程 24
  15. 算法提高 身份证号码升级
  16. 使用PXE+DHCP+Apache+Kickstart批量安装CentOS5.4 x86_64
  17. C#:将图片文件上传到数据库两种方法。
  18. context menu与submenu区别
  19. ubuntu下安装python的gevent模块遇到的一个问题
  20. 网站常用组件收集整理

热门文章

  1. javascript/js替换内容
  2. 机器学习项目失败最大的原因的有这7种,你认同吗?
  3. 【python】自动发送微信消息或文件
  4. 华为发布鸿蒙Beta版公测,华为推出鸿蒙OS 2.0手机开发者Beta版:P40、Mate 30系列可申请公测...
  5. java自己写一个消息队列_Java语言快速实现简单MQ消息队列服务
  6. 小票打印机安装配置全过程 58mm热敏票据打印机驱动安装
  7. 谷歌浏览器安装json-handle插件
  8. 计算机硬盘哒哒响,教你轻松解决硬盘异响(咔咔或者嗒嗒声)
  9. 神经网络算法的基本原理,神经网络算法都有哪些
  10. SpringCloudOAuth2之验证资源服务器的配置