
CAD C#二次开发
山水CAD筑梦人
CAD二次开发,筑造梦想 QQ443440204
展开
-
在 CAD C# 二次开发中,Clipper2、CGAL 和 NTS(NetTopologySuite)对比
Clipper2:功能专注于多边形布尔运算和偏移,C# 适配性好,性能高,适合 CAD 图形处理、游戏开发和地图绘制等场景。CGAL:功能丰富,涵盖多种几何算法和数据结构,支持自定义几何内核,但 C# 适配性一般,性能卓越,适合计算机辅助设计、计算机图形学和机器人学等高精度几何计算场景。:专注于空间数据操作和关系判断,与 GIS 集成良好,C# 适配优秀,性能较好,适合地理信息系统、空间数据库和物流规划等空间数据处理场景。原创 2025-05-28 17:43:14 · 758 阅读 · 0 评论 -
计算逆时针夹角(有向角度)——CAD c# 实现两条线(向量)的逆时针夹角
【代码】计算逆时针夹角(有向角度)——CAD c# 实现两条线(向量)的逆时针夹角。原创 2025-05-28 11:01:59 · 358 阅读 · 0 评论 -
Teigha应用——解析CAD文件(DWG格式)Teigha在CAD C#二次开发中的基本应用
Teigha是一款专为开发者设计的工具,其核心技术在于强大的API和丰富的功能集,提供了一系列工具和方法,使开发者能够轻松地读取、解析和操作DWG文件。它支持多种操作系统,能在处理大型DWG文件时保持高效性能,还可用于构建数据转换工具,将DWG文件转换为其他格式,或进行反向转换。此外,Teigha能与BIM软件集成,支持DWG文件的导入和导出,提升BIM模型的数据兼容性。Teigha可以解析CAD的DWG文件。原创 2025-05-27 13:31:32 · 267 阅读 · 0 评论 -
CAD精简多段线顶点、优化、删除多余、重复顶点——CAD c#二次开发
精简CAD顶点坐标原创 2025-05-26 18:06:10 · 670 阅读 · 0 评论 -
寻找最小闭合环——CAD c#二次开发
效果如下:原创 2025-05-23 17:35:05 · 101 阅读 · 0 评论 -
闲时处理技术---CAD C#二次开发
如果你的闲时处理代码会访问或修改CAD的对象模型,需要注意线程安全。因为 Idle 事件可能在不同的线程中触发,而CAD的对象模型通常不是线程安全的。在 Idle 事件的处理方法中,编写你需要在闲时执行的代码。如果你的闲时处理代码需要定期执行,而不是每次 Idle 事件触发都执行,可以使用一个计数器或定时器来控制执行的频率。CAD提供了一些事件,如 Idle 事件,当CAD应用程序处于空闲状态时会触发该事件。在你的C#代码中,找到CAD应用程序对象,并订阅其 Idle 事件。// 执行闲时处理代码。原创 2025-05-20 07:25:29 · 504 阅读 · 0 评论 -
Graphics——基于.NET 的 CAD 图形预览技术研究与实现——CAD c#二次开发
cad thumbnail .net、dwg rendering system.drawing原创 2025-05-18 22:23:26 · 566 阅读 · 1 评论 -
自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
本文对比了四种常见的数据结构:自定义类、元组、字典和结构体,分析了它们的优劣势及适用场景。自定义类适合封装复杂行为和共享状态,支持继承和多态;元组语法简洁,适合临时数据和多返回值;字典基于哈希表,适合快速查找和动态映射;结构体是值类型,适合轻量级数据和不可变对象。在AutoCAD开发中,合理选择数据结构可以提升代码的可读性、性能和可维护性。复杂关系建议使用类,临时数据用元组,索引关系用字典,轻量数据用结构体。原创 2025-05-17 10:06:16 · 841 阅读 · 0 评论 -
(for 循环) VS (LINQ) 性能比拼 ——c#
for。原创 2025-05-17 00:07:55 · 842 阅读 · 0 评论 -
启动窗体自动输入上次内容——CAD c#二次开发
窗体项目最好不要把doc ed db等做成静态函数,因为用户可能换个dwg文件继续执行窗体,这时候代码中的doc还是老dwg,容易造成bug、致命错误、闪退等。原创 2025-05-14 19:55:31 · 319 阅读 · 0 评论 -
JPG与PDF格式转换器
该插件可实现JPG与PDF格式的互转。原创 2025-05-13 15:50:37 · 396 阅读 · 0 评论 -
linq中 List<T>.ForEach() 与 的 Select() 方法区别——CAD c#二次开发
List<T>.ForEach 和 Enumerable.Select 是 C# 中用于处理集合的两种不同方法,各有其适用场景。ForEach 用于对集合中的每个元素执行操作(如修改属性),无返回值且立即执行,适合直接修改原集合。Select 则用于将集合中的元素映射为新值,生成一个新的序列,返回 IEnumerable<TResult> 并延迟执行,适合生成新集合或与其他 LINQ 方法组合使用。ForEach 更简洁,适合简单副作用操作,而 Select 更适合需要生成新集合或进原创 2025-05-13 09:47:18 · 587 阅读 · 0 评论 -
CAD属性图框值与Excel联动(CAD块属性导出Excel、excel更新CAD块属性)——CAD c#二次开发
该CAD插件通过加载DLL文件,实现了块属性值与Excel表格的互动。用户可以通过命令行输入netload加载插件,运行特定命令即可将CAD中的块属性值导出到Excel,或根据Excel中的数据更新CAD中的块属性值。插件的核心代码通过事务管理确保数据更新的安全性,遍历CAD中的块参照并与Excel数据进行匹配,按需更新属性值。更新过程中,插件会以写模式重新打开块参照和属性对象,确保修改生效。最终,插件会记录并反馈成功更新的属性值数量,若更新失败则回滚事务并提示错误信息。该插件显著提升了CAD与Excel之原创 2025-05-10 20:26:50 · 497 阅读 · 0 评论 -
OLE(对象链接与嵌入)剪贴板内容插入到 CAD 图形中——CAD c# 二次开发
在AutoCAD的C#二次开发中,使用OLE(对象链接与嵌入)技术将剪贴板内容插入到CAD图形中是一种有效的方法。OLE技术允许不同应用程序之间的数据共享与交互,主要分为链接对象和嵌入对象两种应用场景。链接对象保持与源应用程序的关联,而嵌入对象则完全复制到CAD中,与源应用程序断开联系。实现这一功能的关键步骤包括引用必要的命名空间、检查剪贴板中的OLE对象、选择插入点、创建OLE2Frame对象、处理不同格式的数据以及事务管理。代码中还包括剪贴板检查、插入点选择、OLE对象创建、数据处理和事务管理等功能。需原创 2025-05-10 11:54:51 · 535 阅读 · 0 评论 -
获取多段线的点到点集合 ——GetStretchPoints
Point3dCollection acircletoplpt = new Point3dCollection(); acircletopl.GetStretchPoints(acircletoplpt);//获取多段线的点原创 2025-04-28 23:36:36 · 125 阅读 · 0 评论 -
封装写块 blocktool _c#
【代码】封装写块 blocktool _c#原创 2025-04-28 00:35:06 · 236 阅读 · 0 评论 -
Cad求多段线中心点(顶点平均值) C#
当输入的polyline为null时抛出顶点坐标平均值的Point3d对象(顶点数为0时返回原点(0,0,0))目标多段线对象原创 2025-04-27 10:35:01 · 391 阅读 · 0 评论 -
全选实体—实体与模型空间各种属性(ent.OwnerId)—c#
不需要遍历模型空间即可选择实体(包括所有图纸空间)原创 2025-04-26 11:08:38 · 292 阅读 · 0 评论 -
窗交选择(跳过自己本身)——c#
在 AutoCAD 的 .NET API 中, SelectCrossingPolygon 方法属于 Editor 类(位于 Autodesk.AutoCAD.EditorInput 命名空间),其选择逻辑 完全基于实体的几何坐标,与当前视图范围(显示区域)无关。- 交叉多边形的顶点坐标使用 当前空间的坐标系(模型空间为世界坐标系,图纸空间为图纸坐标系),需确保顶点坐标与实体坐标在同一空间中计算。- 定义一个交叉多边形,使其几何区域包含实体 B 的坐标(即使实体 B 不在当前屏幕显示范围内)。原创 2025-04-26 07:43:22 · 360 阅读 · 0 评论 -
零件分类——c#
【代码】零件分类——c#原创 2025-04-25 21:43:02 · 208 阅读 · 0 评论 -
Cad c# 射线法判断点在多边形内外
闭合Polyline(顶点按顺序排列,需闭合,最后一点可与第一点重复)</param>/// <param name="includeBoundary">是否包含边界(点在边上时返回true)</param>/// 射线法判断点是否在闭合Polyline内部(处理直线段,忽略凸度/圆弧,如需处理圆弧需额外交点计算)/// <param name="point">目标点(Z=0)原创 2025-04-21 21:53:21 · 431 阅读 · 0 评论 -
lisp调用dll函数名运行程序——CAD二次开发
2、函数和类必须为 public static。4、CAD加载lsp文件。5、CAD命令行输入 myc 即可执行程序。3、CAD加载dll文件。原创 2025-04-20 01:15:41 · 263 阅读 · 0 评论 -
略缩图 待调试
else。原创 2025-04-15 17:26:32 · 531 阅读 · 0 评论 -
CAD 像素点显示图片——CAD二次开发 OpenCV实现
【代码】CAD 像素点显示图片——CAD二次开发 OpenCV实现。原创 2025-04-13 22:32:22 · 322 阅读 · 0 评论 -
批量给dwg显示略缩图_c#插件实现(com)
AutoCAD2021版本以上,命令行输入"netload "加载此dll插件,然后输入 “lst”,选择文件夹,即可一键实现给dwg增加略缩图。原创 2025-04-13 15:14:39 · 348 阅读 · 0 评论 -
批量改CAD图层颜色——CAD c#二次开发
批量改cad图层名(大量文件一键修改)原创 2025-04-06 23:20:56 · 618 阅读 · 0 评论 -
CAD插件实现:所有文字显示到列表、缩放、编辑——CAD-c#二次开发
CAD插件实现:所有文字显示到列表、缩放、编辑原创 2025-04-05 18:56:45 · 662 阅读 · 0 评论 -
批量删除匿名块——CADc#二次开发
【代码】批量删除匿名块——CADc#二次开发。原创 2025-04-03 20:59:23 · 127 阅读 · 0 评论 -
CAD插件实现:自动递增编号(前缀、后缀、位数等)——CADc#实现
本插件可指定数字位数、起始号码、加前缀、后缀、文字颜色等(字体样式和文字所在图层为cad当前图层和当前字体样式)。插件采用Jig方式,即插入文字过程中动态显示文字的大小站位情况,免去插入文字后调整位置等繁琐步骤。原创 2025-04-03 17:40:31 · 1281 阅读 · 0 评论 -
批量修改cad图名(图框属性块内图名修改为指定文字)——cad c#二次开发
如图,当一个dwg图内有大量图框,属性块中包含块名,块名改为图框下方的文字,采用此插件可一键完成。原创 2025-03-31 21:36:42 · 508 阅读 · 0 评论 -
鼠标悬停监视——待调试
sb.AppendLine($"位置:{br.Position.ToString()}");sb.AppendLine($"块名称:{br.GetBlockName(tr)}");_ed.WriteMessage("\n属性悬停监视已启用");_ed.WriteMessage("\n属性悬停监视已禁用");// 显示自定义工具提示。// 性能优化:仅当悬停新对象时处理。catch { /* 错误处理 */ }// BlockReference扩展方法。原创 2025-03-30 22:17:17 · 404 阅读 · 0 评论 -
制作cass高程点块定义——cad c#二次开发
【代码】制作高程点块定义——cad c#二次开发。原创 2025-03-30 18:06:52 · 573 阅读 · 0 评论 -
导出cad实体所有信息到txt并打开(生成唯一文件名) ——c#cad二次开发
sw.WriteLine($"{prop.Name.PadRight(30)}: [无法获取 - {ex.Message}]");ed.WriteMessage($"\n已导出: {Path.GetFileName(filePath)}");ed.WriteMessage($"\n已导出: {Path.GetFileName(filePath)}");sw.WriteLine($"实体类型: {entity.GetType().Name}");sw.WriteLine("=== 所有属性 ===");原创 2025-03-28 23:33:51 · 988 阅读 · 0 评论 -
AutoCAD C#二次开发中WinForm与WPF的对比
**渲染引擎** | 基于GDI+,像素级渲染 | 基于DirectX,矢量图形渲染 || **技术年代** | 2002年推出,较老技术 | 2006年推出,较新技术 || **界面设计** | 拖拽控件,绝对定位 | XAML声明式设计,灵活布局 || **数据绑定** | 有限支持,需要手动编码 | 强大支持,支持双向绑定 || **性能表现** | 轻量级,启动快 | 较重,但渲染复杂界面更流畅 || **DPI缩放** | 高DPI支持差 | 完美支持高DPI和缩放 |原创 2025-03-26 22:52:55 · 671 阅读 · 0 评论 -
插件实现:分别通过winform和WPF界面输入操作CAD——CAD c#二次开发
【代码】在Visual Studio中创建包含窗体的AutoCAD C#项目原创 2025-03-26 22:33:23 · 800 阅读 · 0 评论 -
加载dll插件自动提示文字信息——cad c#二次开发
【代码】加载dll插件自动提示文字信息——cad c#二次开发。原创 2025-03-26 15:47:17 · 417 阅读 · 0 评论 -
Xyz坐标系任意两个面之间投影转换方法
Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis, Vector3d.ZAxis, // 原坐标系。// 输出 (1, 0, 1)origin, newX, newY, newZ // 新坐标系。-Vector3d.YAxis, // 新 Z 轴 = -原 Y 轴。Vector3d.XAxis, // 新 X 轴 = 原 X 轴。/// 在 AutoCAD 中实现 XY→XZ 平面坐标转换。// 结果将是 (1, 0, 1)// 结果: (1, 0, 1)原创 2025-03-25 23:19:59 · 986 阅读 · 0 评论 -
抽象类的应用实例(一套代码处理dxf和dwg文件)——CAD c#二次开发
同理,另存为cad文件的方法也不同。当需要同事处理dwg和dxf文件时,则需要编写两套代码,会有大量的重复代码,这是可用抽象类。原创 2025-03-25 21:36:39 · 472 阅读 · 0 评论 -
xy轴不等比缩放问题——AUTOCAD c#二次开发
选择图元,指定缩放基准点,scaleX = 0.5, scaleY = 3;// X轴缩放因子0.5倍,Y轴缩放因子3倍,数值也可人工指定。在 AutoCAD .net api里,部分实体,像文字、属性、插入块等,是不支持非等比缩放的。如需对AutoCAD中图形进行xyz方向不等比缩放,则需进行额外的函数封装。原创 2025-03-23 22:38:50 · 270 阅读 · 0 评论 -
JSON在AutoCAD二次开发中应用场景及具体案例
以上两个案例展示了JSON在AutoCAD二次开发中存储复杂数据和读取配置文件方面的应用,通过JSON的序列化和反序列化操作,可以方便地处理各种数据结构。MessageBox.Show($"默认图层名: {config.DefaultLayerName}\n" +MessageBox.Show($"存储扩展数据时出错: {ex.Message}");MessageBox.Show($"读取配置文件时出错: {ex.Message}");// 将JSON字符串存储为实体的扩展数据(XData)原创 2025-03-21 17:36:58 · 1130 阅读 · 0 评论