- 博客(425)
- 收藏
- 关注
原创 闲时处理技术---CAD C#二次开发
如果你的闲时处理代码会访问或修改CAD的对象模型,需要注意线程安全。因为 Idle 事件可能在不同的线程中触发,而CAD的对象模型通常不是线程安全的。在 Idle 事件的处理方法中,编写你需要在闲时执行的代码。如果你的闲时处理代码需要定期执行,而不是每次 Idle 事件触发都执行,可以使用一个计数器或定时器来控制执行的频率。CAD提供了一些事件,如 Idle 事件,当CAD应用程序处于空闲状态时会触发该事件。在你的C#代码中,找到CAD应用程序对象,并订阅其 Idle 事件。// 执行闲时处理代码。
2025-05-20 07:25:29
417
原创 Graphics——基于.NET 的 CAD 图形预览技术研究与实现——CAD c#二次开发
cad thumbnail .net、dwg rendering system.drawing
2025-05-18 22:23:26
553
2
原创 自定义类、元组、字典和结构体对比——AutoCAD C# 开发中建立不同对象之间的联系
本文对比了四种常见的数据结构:自定义类、元组、字典和结构体,分析了它们的优劣势及适用场景。自定义类适合封装复杂行为和共享状态,支持继承和多态;元组语法简洁,适合临时数据和多返回值;字典基于哈希表,适合快速查找和动态映射;结构体是值类型,适合轻量级数据和不可变对象。在AutoCAD开发中,合理选择数据结构可以提升代码的可读性、性能和可维护性。复杂关系建议使用类,临时数据用元组,索引关系用字典,轻量数据用结构体。
2025-05-17 10:06:16
835
原创 CAD 显示Express Tools
如果cad没安装Express Tools ,需要首先安装。然后找到CAD安装文件路径的express文件夹。
2025-05-15 10:29:07
200
原创 启动窗体自动输入上次内容——CAD c#二次开发
窗体项目最好不要把doc ed db等做成静态函数,因为用户可能换个dwg文件继续执行窗体,这时候代码中的doc还是老dwg,容易造成bug、致命错误、闪退等。
2025-05-14 19:55:31
311
原创 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
585
原创 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
486
原创 OLE(对象链接与嵌入)剪贴板内容插入到 CAD 图形中——CAD c# 二次开发
在AutoCAD的C#二次开发中,使用OLE(对象链接与嵌入)技术将剪贴板内容插入到CAD图形中是一种有效的方法。OLE技术允许不同应用程序之间的数据共享与交互,主要分为链接对象和嵌入对象两种应用场景。链接对象保持与源应用程序的关联,而嵌入对象则完全复制到CAD中,与源应用程序断开联系。实现这一功能的关键步骤包括引用必要的命名空间、检查剪贴板中的OLE对象、选择插入点、创建OLE2Frame对象、处理不同格式的数据以及事务管理。代码中还包括剪贴板检查、插入点选择、OLE对象创建、数据处理和事务管理等功能。需
2025-05-10 11:54:51
507
原创 获取多段线的点到点集合 ——GetStretchPoints
Point3dCollection acircletoplpt = new Point3dCollection(); acircletopl.GetStretchPoints(acircletoplpt);//获取多段线的点
2025-04-28 23:36:36
121
原创 Cad求多段线中心点(顶点平均值) C#
当输入的polyline为null时抛出顶点坐标平均值的Point3d对象(顶点数为0时返回原点(0,0,0))目标多段线对象
2025-04-27 10:35:01
387
原创 窗交选择(跳过自己本身)——c#
在 AutoCAD 的 .NET API 中, SelectCrossingPolygon 方法属于 Editor 类(位于 Autodesk.AutoCAD.EditorInput 命名空间),其选择逻辑 完全基于实体的几何坐标,与当前视图范围(显示区域)无关。- 交叉多边形的顶点坐标使用 当前空间的坐标系(模型空间为世界坐标系,图纸空间为图纸坐标系),需确保顶点坐标与实体坐标在同一空间中计算。- 定义一个交叉多边形,使其几何区域包含实体 B 的坐标(即使实体 B 不在当前屏幕显示范围内)。
2025-04-26 07:43:22
358
原创 CAD版本之——DwgVersion 与 AutoCAD 版本的对应关系
AC2700a 30 2024 AC2700a AutoCAD 2024(2023 年),最新功能更新和性能优化。AC1500 22 2010 AC1500 AutoCAD 2010(2009 年),引入参数化设计功能。功能优先:使用 Current 或 Newest(值 31),保存为当前 AutoCAD 支持的最新格式(如 2024 版)兼容性优先:使用 AC1009(2004 版)或 AC1015(2011 版),确保旧版 AutoCAD 可打开。
2025-04-25 13:02:07
336
原创 Cad c# 射线法判断点在多边形内外
闭合Polyline(顶点按顺序排列,需闭合,最后一点可与第一点重复)</param>/// <param name="includeBoundary">是否包含边界(点在边上时返回true)</param>/// 射线法判断点是否在闭合Polyline内部(处理直线段,忽略凸度/圆弧,如需处理圆弧需额外交点计算)/// <param name="point">目标点(Z=0)
2025-04-21 21:53:21
425
原创 lisp调用dll函数名运行程序——CAD二次开发
2、函数和类必须为 public static。4、CAD加载lsp文件。5、CAD命令行输入 myc 即可执行程序。3、CAD加载dll文件。
2025-04-20 01:15:41
256
原创 批量给dwg显示略缩图_c#插件实现(com)
AutoCAD2021版本以上,命令行输入"netload "加载此dll插件,然后输入 “lst”,选择文件夹,即可一键实现给dwg增加略缩图。
2025-04-13 15:14:39
343
原创 003集——《利用 C# 与 AutoCAD API 开发 WPF 随机圆生成插件》(侧栏菜单+WPF窗体和控件+MVVM)
【代码】003集——CAD侧栏菜单+WPF控件(无mvvm和采用mvvm两种方式)——wpf入门。
2025-04-06 16:45:45
415
原创 自定义填充 cad
在命令栏输入‘sup’,得到提示SUPERHATCH命令,如果有弹出窗口,选取select exist,完整选取刚刚画在一旁已经定义为块的图样(一定要选取块哦,否则选取无效)如上图所示这种图样虽然可以密铺,但是不能以矩形整列方式密铺,故不是一个符合要求的填充图样,填充出来会出现空袭或层叠,蜂窝结构的正确图样应当绘制如下图所示。选取后按下空格,这时候它需要你指定对角,选取块的一个对角,再次空格确认,最后将鼠标移至需要填充的图形内部,点击后空格,完成填充。这样以矩形阵列的方式可以重复得到完整的蜂窝图样。
2025-04-05 21:39:54
445
原创 MVVM(Model-View-ViewModel)详解(附实战案例)
在这个例子中, RectangleModel 类表示矩形的数据, RectangleViewModel 类作为视图模型,将矩形的数据暴露给视图,并处理属性变化通知。MainWindow 类作为视图,通过数据绑定将文本框的 Text 属性绑定到ViewModel的属性上,从而实现数据的显示和更新。它将业务逻辑从View中分离出来,使得View只关注用户界面的呈现,而ViewModel负责处理数据和用户交互。3. 创建View:在XAML中进行数据绑定,将View的控件属性绑定到ViewModel的属性上。
2025-04-04 16:35:46
457
原创 CAD插件实现:自动递增编号(前缀、后缀、位数等)——CADc#实现
本插件可指定数字位数、起始号码、加前缀、后缀、文字颜色等(字体样式和文字所在图层为cad当前图层和当前字体样式)。插件采用Jig方式,即插入文字过程中动态显示文字的大小站位情况,免去插入文字后调整位置等繁琐步骤。
2025-04-03 17:40:31
1218
原创 批量修改cad图名(图框属性块内图名修改为指定文字)——cad c#二次开发
如图,当一个dwg图内有大量图框,属性块中包含块名,块名改为图框下方的文字,采用此插件可一键完成。
2025-03-31 21:36:42
492
原创 鼠标悬停监视——待调试
sb.AppendLine($"位置:{br.Position.ToString()}");sb.AppendLine($"块名称:{br.GetBlockName(tr)}");_ed.WriteMessage("\n属性悬停监视已启用");_ed.WriteMessage("\n属性悬停监视已禁用");// 显示自定义工具提示。// 性能优化:仅当悬停新对象时处理。catch { /* 错误处理 */ }// BlockReference扩展方法。
2025-03-30 22:17:17
403
批量复制文件夹下所有文件到指定路径-山水办公助手轻松实现
2024-11-28
Cad vba 如何实现xdata扩展数据的录入与导出
2023-12-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人