- 博客(387)
- 收藏
- 关注
原创 批量修改cad图名(图框属性块内图名修改为指定文字)——cad c#二次开发
如图,当一个dwg图内有大量图框,属性块中包含块名,块名改为图框下方的文字,采用此插件可一键完成。
2025-03-31 21:36:42
221
原创 鼠标悬停监视——待调试
sb.AppendLine($"位置:{br.Position.ToString()}");sb.AppendLine($"块名称:{br.GetBlockName(tr)}");_ed.WriteMessage("\n属性悬停监视已启用");_ed.WriteMessage("\n属性悬停监视已禁用");// 显示自定义工具提示。// 性能优化:仅当悬停新对象时处理。catch { /* 错误处理 */ }// BlockReference扩展方法。
2025-03-30 22:17:17
348
原创 导出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
917
原创 AutoCAD C#二次开发中WinForm与WPF的对比
**渲染引擎** | 基于GDI+,像素级渲染 | 基于DirectX,矢量图形渲染 || **技术年代** | 2002年推出,较老技术 | 2006年推出,较新技术 || **界面设计** | 拖拽控件,绝对定位 | XAML声明式设计,灵活布局 || **数据绑定** | 有限支持,需要手动编码 | 强大支持,支持双向绑定 || **性能表现** | 轻量级,启动快 | 较重,但渲染复杂界面更流畅 || **DPI缩放** | 高DPI支持差 | 完美支持高DPI和缩放 |
2025-03-26 22:52:55
561
原创 插件实现:分别通过winform和WPF界面输入操作CAD——CAD c#二次开发
【代码】在Visual Studio中创建包含窗体的AutoCAD C#项目
2025-03-26 22:33:23
634
原创 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
951
原创 抽象类的应用实例(一套代码处理dxf和dwg文件)——CAD c#二次开发
同理,另存为cad文件的方法也不同。当需要同事处理dwg和dxf文件时,则需要编写两套代码,会有大量的重复代码,这是可用抽象类。
2025-03-25 21:36:39
441
原创 xy轴不等比缩放问题——AUTOCAD c#二次开发
选择图元,指定缩放基准点,scaleX = 0.5, scaleY = 3;// X轴缩放因子0.5倍,Y轴缩放因子3倍,数值也可人工指定。在 AutoCAD .net api里,部分实体,像文字、属性、插入块等,是不支持非等比缩放的。如需对AutoCAD中图形进行xyz方向不等比缩放,则需进行额外的函数封装。
2025-03-23 22:38:50
250
原创 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
1070
原创 Json在扩展属性xdata中的应用实例——cad 二次开发c#
以下是一个使用AutoCAD C#.NET API实现你需求的示例代码,代码实现了提示用户选择一个实体,将一些字符串变量及其对应的值组成JSON格式数据存储到实体的扩展数据(XData)中,并在弹出窗口中显示该实体的所有扩展数据信息。// 解析从CAD对象中获取的JSON字符串为ExtendedData对象。// 将JSON字符串存储为扩展数据(XData)// 假设这里有一个方法从CAD对象中获取扩展数据的字符串表示。// 假设从CAD对象中获取了扩展数据的字符串表示。// 读取并显示实体的扩展数据。
2025-03-21 17:24:24
913
原创 块与块参照的一些知识——CAD c#二次开发
块(Block Definition):它是一个或多个图形对象的集合,这些对象被组合在一起并赋予一个唯一的名称,存储在图形的块表(Block Table)中。块定义是一个抽象的概念,它定义了一组图形元素的结构和属性,但本身并不直接显示在图形中。可以将其看作是一个模板或者蓝图,规定了块的组成元素和外观。块参照(Block Reference):是块定义在图形中的实际实例。它是基于块定义创建的,代表了块在特定位置、以特定比例和旋转角度插入到图形中的具体表现。
2025-03-20 22:39:00
668
原创 自定义面板图标——CAD
新建面板后,新建命令,输入命令和图像,将命令图标拖动到面板。根据自己需要DIY,达到自己满意的酷炫效果。命令行输入cui,功能区、面板、新建面板。如图:可以拖动到自己想要的位置。下一步,复制,粘贴到相应位置。若不需要,可以删除。
2025-03-20 15:57:38
156
原创 模型空间、图纸空间、布局(Layout)之间联系——CAD c#二次开发
**访问方式** | `BlockTableRecord.ModelSpace` | `LayoutManager` + `Layout` || **场景** | **模型空间** | **图纸空间(布局)** |- **每个布局有自己的图纸空间块表记录**,例如 `Layout1` 的图纸空间与 `Layout2` 的图纸空间是独立的。// 1:100 比例。
2025-03-20 15:44:07
1009
原创 一键批量txt转DWG,DWG转txt——插件实现 CAD c#二次开发
如下图,我们有大量dwg需要转为txt格式,或txt格式坐标需要转为dwg格式,此插件可一键完成一个文件夹下所有文件的转换。命令行输入: netload 加载此dll插件,输入: dwg2txt 可将dwg转为txt,输入: txt2dwg可将txt转为dwg.
2025-03-17 18:55:13
745
原创 WPF窗口读取、显示、修改、另存excel文件——CAD c#二次开发
【代码】WPF窗口读取、显示、修改、另存excel文件——CAD c#二次开发。
2025-03-14 23:56:37
429
原创 贪心算法和遗传算法优劣对比——c#
原材料 17: [5, 5, 5, 5, 5, 5, 5, 5, 5, 5] 剩余 5 米。原材料 15: [5, 5, 5, 5, 5, 5, 5, 5, 5 ]剩余: 10 米。原材料 13: [10, 10, 10, 10, 10, 5 ]剩余: 0 米。原材料 14: [10, 10, 10, 10, 10, 5 ]剩余: 0 米。原材料 2: [11, 11, 11, 11, 11 ]剩余: 0 米。原材料 3: [11, 11, 11, 11, 11 ]剩余: 0 米。
2025-03-13 16:14:07
1923
2
原创 贪心算法——c#
特性说明优点实现简单,运行效率高缺点不一定得到全局最优解适用场景问题具有贪心选择性质CAD 应用场景路径规划、元件布局、自动布线等。
2025-03-13 10:33:00
1146
原创 一维下料之 *贪心算法* —— CAD c#二次开发
用尽可能少的原材料(总根数最少),切割出所有需要的小段,同时尽可能减少浪费(即原材料的剩余长度总和最小)。需要从这些原材料中切割出以下长度的小段:42 米:需要 13 段。我们有一批长度为 180 米 的原材料(例如钢管、木材等)。一维下料之贪心算法,需求如下。70 米:需要 12 段。30 米:需要 12 段。11 米:需要 2 段。86 米:需要 5 段。
2025-03-12 17:17:44
332
原创 【下料切割必看】智能切割算法帮您省 30% 原材料!附真实案例——一维下料问题算法、cad c#二次开发
一维下料问题算法,自动生成最优切割方案,比人工排料效率高 10 倍!
2025-03-12 16:31:14
656
原创 元组(Tuple)详解——c#
/ 定义一个包含 8 个元素的元组 var data = new Tuple<int, int, int, int, int, int, int, Tuple<string>>( 1, 2, 3, 4, 5, 6, 7, new Tuple<string>("Eight") );元组非常适合在不需要定义新类或结构体的情况下,临时存储和传递多个相关的值。值元组是值类型,性能更高,语法更简洁。是值类型,性能更高,语法更简洁,支持命名元素和解构。):C# 7.0 引入,性能更高,支持更灵活的语法。
2025-03-08 21:07:06
982
原创 深度优先搜索(DFS)和广度优先搜索(BFS)——c#实现
两种算法在您的迷宫项目中可以配合使用:DFS生成随机迷宫,BFS寻找最优路径,这正是大多数迷宫算法的经典实现方式。沿着分支尽可能深入,直到到达叶子节点,然后回溯探索其他分支。内存敏感/深度优先特性 → 选DFS(如迷宫生成)层级关系分析 → 选BFS(如社交网络层级分析)类似走迷宫时优先选择一条路走到黑,碰壁再回退。存在性验证 → 两者均可(如节点是否可达)需要最短路径 → 选BFS(如迷宫求解):O(V+E)(顶点数+边数):栈(Stack)或递归实现。类似水波纹扩散的效果。:队列(Queue)
2025-03-08 18:08:50
896
原创 2继续NTS库学习(读取shapefile)
引用库如下:代码如下: 读取结果如下: 是 C# 中表示 非数字(Not a Number) 的特殊值。它是 类型的一个常量,用于表示无效或未定义的数值结果。以下是关于 的详细说明:定义: 是 IEEE 754 浮点数标准中定义的一个特殊值,表示 非数字。特点:它不是任何具体的数值。它用于表示无效的数学运算结果(如 或 )。它与任何值(包括它自己)的比较结果都是 。
2025-02-28 19:19:05
385
原创 CAD实现一键 面域转线(闭合多段线)——CAD c#二次开发
CAD中存在面域(region),当用系统自带命令是,生成的是断开的直线Line。此插件可实现面域转为闭合的多段线(Polyline)。
2025-02-26 18:23:05
418
原创 Teigha(ODA<Open Design Alliance>_开放设计联盟)——cad c# 二次开发
【代码】Teigha(ODA<Open Design Alliance>_开放设计联盟)——cad c# 二次开发。
2025-02-24 17:36:06
508
原创 四参数坐标变换
四参数坐标系变换是一种常见的二维坐标变换方法,主要用于地图投影、测量坐标系转换等领域。它的核心思想是通过和将一个坐标系中的点转换到另一个坐标系中。以下是四参数变换的原理和逻辑过程。
2025-02-23 15:38:34
461
原创 推导二维平面上点绕原点旋转的公式
要推导二维平面上点绕原点旋转的公式,我们可以使用向量和矩阵的方法,或者通过。这里,我将使用三角函数的方法来进行推导。
2025-02-23 14:19:13
220
原创 041集——封装之:新建图层(CAD—C#二次开发入门)
如图所示:增加一个图层“新图层”,颜色为红(1),当图层颜色定义为黄(2)时,直接覆盖之前图层颜色,图层名不变。
2025-02-22 18:21:08
303
原创 用户坐标系(ucs)与系统坐标系(wcs)的转换详解——CAD c#二次开发
如果用户坐标系(UCS)与世界坐标系(WCS)不一致(例如,UCS被旋转、平移或缩放),那么直接使用用户输入的点生成的直线将基于UCS,而不是WCS。这会导致直线的位置和方向与预期不符。如果不进行用户坐标系(UCS)到世界坐标系(WCS)的转换,直接将用户输入的点写入模型空间,生成的直线的坐标将基于用户坐标系(UCS)。如果当前用户坐标系(UCS)与世界坐标系(WCS)完全一致(即没有旋转、平移或缩放),那么不转换坐标系也不会影响结果,生成的直线坐标是正确的。,则UCS与WCS一致,无需转换。
2025-02-19 09:55:57
501
原创 vba对应CAD版本下载网址
下载对应vba版本网址如下:Download the Microsoft VBA Module for AutoCAD https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/3kxk0RyvfWTfSfAIrcmsLQ.html。
2025-02-16 13:43:13
314
原创 c# —— StringBuilder 类
StringBuilder 类是 C# 和其他一些基于 .NET Framework 的编程语言中的一个类,它位于 System.Text 命名空间下。StringBuilder 类表示一个可变的字符序列,它是为了提供一种比直接使用字符串连接操作更加高效的方式来构建或修改字符串。与 C# 中的 string 类型不同,string 是不可变的,这意味着每次对字符串进行修改(如拼接、替换字符等)时,都会创建一个新的字符串对象。
2025-02-15 15:20:38
1179
批量复制文件夹下所有文件到指定路径-山水办公助手轻松实现
2024-11-28
Cad vba 如何实现xdata扩展数据的录入与导出
2023-12-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人