🚀 摘要:还在手动画特殊管线?本文带你深入理解CAD线型定义(.lin)的底层逻辑,并手把手教你用C#和WPF开发一个自定义线型生成器。文末附“摸鱼大队”专属线型测试代码!
在工程绘图中,我们经常遇到需要绘制特殊管线的情况(如热水管、燃气管),虽然CAD自带了一些线型,但往往不够用。今天我们就从底层原理出发,用代码实现自定义线型的“私人订制”。


打开CAD的 .lin 文件,你会发现线型主要分为两大类。理解这些参数,是开发的基础。

这是最常见的虚线或点划线。以 Border(轮廓线)为例:
*BORDER,Border __ __ . __ __ . __ __A,0.5,-.25,.25,-.25
代码解读:
第一行:*后跟线型名称,逗号后是描述(用户在加载对话框中看到的说明)。
第二行(定义行):
A:代表对齐方式(Alignment),绝大多数情况都用A,保证线段两端是实线。
0.5:正数代表实线(落笔)的长度。
-.25:负数代表空格(抬笔)的长度。
.25:代表短划线或点的长度。
这是我们要攻克的难点,比如嵌入了文字的 HOT_WATER_SUPPLY:
*HOT_WATER_SUPPLY,Hot water supply ---- HW ---- HW ----A,12.7,-5.08,["HW",STANDARD,S=2.54,U=0.0,X=-2.54,Y=-1.27],-5.08
关键参数深度解析:
A:对齐方式。
12.7:第一段实线的长度。
-5.08:文字前的空格长度(为文字留出位置)。
["HW",...]:核心部分,中括号内定义嵌入对象。
"HW":要插入的特殊字符/文字。
STANDARD:使用的文字样式(TextStyle)。
S (Scale):字符的缩放比例。
U (Upright):字符旋转角度(U代表始终直立,R代表相对旋转)。
X:文字在X轴方向的相对偏移修正。
Y:文字在Y轴方向的相对偏移修正(通常用于垂直居中)。
-5.08:文字后的空格长度。
了解了原理,我们不仅能手写 .lin 文件,更能通过 C# 开发插件,让用户在界面上输入文字,自动生成线型。
我们将使用 C# .NET API 配合 WPF 制作一个交互界面。

CAD的API中直接通过对象属性构建复杂线型较为繁琐,最稳健的方法是:
获取用户输入(文字、间距等)。
在内存中构建符合 .lin 格式的字符串。
利用 Database.LoadLineTypeFile 方法加载定义。
03 插件实测:生成“摸鱼”线型 🐟
我们开发了一个WPF对话框,输入参数如下:
线型名称:MOYU_LINE
自定义文字:【关注微信公众号:摸鱼大队】
实线长度:30
文字样式:Standard
根据输入,程序在后台自动生成的定义字符串如下:
*MOYU_LINE, 摸鱼大队专属测试线A, 30, -25, ["【关注微信公众号:摸鱼大队】",Standard,S=2.5,R=0,X=-10,Y=-1.25], -5
注意:这里的中括号语法 ["文字", 样式...] 是CAD识别嵌入文字的标准格式。
在CAD中输入命令 CreateMyLine。
弹出WPF窗口,输入上述内容。
点击“创建并应用”。
画一条直线,效果如下图所示:

通过将 .lin 文件的语法封装进 C# 代码,我们极大地简化了特殊线型的创建过程。无论是设计院的标准化出图,还是个人的一键标注,这个小工具都能派上大用场。
关注【摸鱼大队】,回复【CAD线型】获取完整源码工程文件!
