037集——JoinEntities连接多段线polyline和圆弧arc(CAD—C#二次开发入门)

ops/2024/11/19 16:46:06/

如图:最终效果

polyline连接:

代码如下:

public void joinentities()
{Curve pLine = Z.db.SelectEntities<Curve>().First().Clone() as Curve;pLine.ChangeEntityColor(1);Curve pLine1 = Z.db.SelectEntities<Curve>().First().Clone() as Curve;Curve pLine2 = Z.db.SelectEntities<Curve>().First().Clone() as Curve;Entity[] otherEntities = new Entity[2];otherEntities[0] = pLine1;otherEntities[1] = pLine2;// join the other entitiestry{IntegerCollection joinedEntities = pLine.JoinEntities(otherEntities);//调用函数的主题必须polylineif (joinedEntities.Count > 0) Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("nSome or all entities joined!");Z.db.AddEntityToModeSpace(pLine);Z.Zoom();}catch (System.Exception){Z.ed.WriteMessage("连接失败!\n");} 
}

 polyline3d连接:

 public void joinentitiesPolyline3d(){Point3d[] p3d = new Point3d[2] { new Point3d(10, 10, 0), new Point3d(0, 0, 0) };Polyline3d p3 = new Polyline3d(Poly3dType.SimplePoly,new Point3dCollection(p3d),false);Curve firstPl = p3;//polyline3d可连接范围广,包括圆弧,椭圆弧,样条曲线,直线,多段线// Curve firstPl = Z.db.SelectEntities<Curve>().First().Clone() as Curve;//连接的线不能是数据库中已有的线if (firstPl is null) return;    firstPl.ChangeEntityColor(1);List<Curve> curveslist = Z.db.SelectEntities<Curve>();Curve[] curvesarray = new Curve[curveslist.Count];for (int i = 0; i < curveslist.Count; i++){curvesarray[i] = curveslist[i].Clone()as Curve;}try{IntegerCollection resultPl = firstPl.JoinEntities(curvesarray);//调用函数的主题必须polylineif (resultPl.Count > 0) Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("nSome or all entities joined!");Z.db.AddEntityToModeSpace(firstPl);Z.Zoom();}catch (System.Exception){Z.ed.WriteMessage("连接失败!\n");} }

 Polyline连接(可连接弧,不可连spline和ellipse)

 public void joinentitiesPolyline3d(){Point3d[] p3d = new Point3d[2] { new Point3d(10, 10, 0), new Point3d(0, 0, 0) };Polyline3d p3 = new Polyline3d(Poly3dType.SimplePoly,new Point3dCollection(p3d),false);Curve firstPl = p3;//polyline3d可连接范围广,包括圆弧,椭圆弧,样条曲线,直线,多段线// Curve firstPl = Z.db.SelectEntities<Curve>().First().Clone() as Curve;//连接的线不能是数据库中已有的线if (firstPl is null) return;    firstPl.ChangeEntityColor(1);List<Curve> curveslist = Z.db.SelectEntities<Curve>();Curve[] curvesarray = new Curve[curveslist.Count];for (int i = 0; i < curveslist.Count; i++){curvesarray[i] = curveslist[i].Clone()as Curve;}try{IntegerCollection resultPl = firstPl.JoinEntities(curvesarray);//调用函数的主题必须polylineif (resultPl.Count > 0) Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("nSome or all entities joined!");Z.db.AddEntityToModeSpace(firstPl);Z.Zoom();}catch (System.Exception){Z.ed.WriteMessage("连接失败!\n");} }

封装后结果:

 public void xx()
 {

     Polyline polyline = Z.PolyJoin();
 }

 public static Polyline PolyJoin(){//Point3d[] p3d = new Point3d[2] { new Point3d(10, 10, 0), new Point3d(0, 0, 0) };//Polyline3d p3 = new Polyline3d(Poly3dType.SimplePoly,new Point3dCollection(p3d),false);//Curve firstPl = p3;//polyline3d可连接范围广,包括圆弧,椭圆弧,样条曲线,直线,多段线//Curve firstPl = Z.db.SelectEntities<Curve>().First().Clone() as Curve;//连接的线不能是数据库中已有的线//if (firstPl is null) return;    Polyline firstPl = new Polyline();List<Curve> curveslist = Z.db.SelectEntities<Curve>();Curve[] curvesarray = new Curve[curveslist.Count];for (int i = 0; i < curveslist.Count; i++){curvesarray[i] = curveslist[i].Clone() as Curve;}try{firstPl = curvesarray.Where(x => x is Polyline).First() as Polyline;IntegerCollection resultPl = firstPl.JoinEntities(curvesarray);//调用函数的主题必须polylineif (resultPl.Count > 0) Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("nSome or all entities joined!");firstPl.ChangeEntityColor(1); Z.db.AddEntityToModeSpace(firstPl);//Z.Zoom();}catch (System.Exception){Z.ed.WriteMessage("连接失败!\n");}return firstPl;}


http://www.ppmy.cn/ops/135022.html

相关文章

html 图片转svg 并使用svg路径来裁剪html元素

1.png转svg 工具地址: Vectorizer – 免费图像矢量化 打开svg图片,复制其中的path中的d标签的路径 查看生成的svg路径是否正确 在线SVG路径预览工具 - UU在线工具 2.在html中使用svg路径 <svg xmlns"http://www.w3.org/2000/svg" width"318px" height…

FFmpeg源码:avio_read_partial函数分析

AVIOContext结构体和其相关的函数分析&#xff1a; FFmpeg源码&#xff1a;avio_r8、avio_rl16、avio_rl24、avio_rl32、avio_rl64函数分析 FFmpeg源码&#xff1a;read_packet_wrapper、fill_buffer函数分析 FFmpeg源码&#xff1a;avio_read函数分析 FFmpeg源码&#xff…

ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】

问题描述 JDK8使用ojdbc8驱动操作oracle11g数据库&#xff0c;使用JDBC复用 PreparedStatement 对象执行Insert操作时&#xff0c;报错java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。&#xff0c;经测试发现&#xff0c;是预编译对象某个占位符号被赋…

大型语言模型综述 A Survey of Large Language Models

文章源自 2303.18223 (arxiv.org) 如有侵权&#xff0c;请通知下线 这是一篇关于大语言模型&#xff08;LLMs&#xff09;的综述论文&#xff0c;主要介绍了 LLMs 的发展历程、技术架构、训练方法、应用领域以及面临的挑战等方面&#xff0c;具体内容如下&#xff1a; 摘要…

Android OpenGL ES详解——几何着色器

目录 一、概念 1、图元 2、几何着色器 1、输入类型 2、输出类型 3、输出顶点数量最大值限制 二、使用几何着色器 三、应用举例——造几个房子 四、应用举例——爆破物体 1、获取法向量 2、显示法线 五、应用举例——细分三角形 六、应用举例——广告牌技术 一、概…

8. 基于 Redis 实现限流

在高并发的分布式系统中&#xff0c;限流是保证服务稳定性的重要手段之一。通过限流机制&#xff0c;可以控制系统处理请求的频率&#xff0c;避免因瞬时流量过大导致系统崩溃。Redis 是一种高效的缓存数据库&#xff0c;具备丰富的数据结构和原子操作&#xff0c;适合用来实现…

最长连续序列

题目描述 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#…

CC工具箱使用指南:【CAD导出界址点Excel】

一、简介 群友定制工具。 面图层导出界址点Excel表之前已经做过好几个&#xff0c;这个工具则是将CAD导出Excel。 CAD数据如下&#xff1a; 工具将如上截图中的边界线导出界址点Excel&#xff0c;并记录下面内的文字。 二、工具参数介绍 点击【定制工具】组里的【CAD导出界…