公司动态
ACadSharp导出SVG教程:3行代码把CAD图纸变成矢量图,附配置参数详解
ACadSharp导出SVG教程3行代码把CAD图纸变成矢量图附配置参数详解【免费下载链接】ACadSharpC# library to read/write cad files like dxf/dwg.项目地址: https://gitcode.com/gh_mirrors/ac/ACadSharpACadSharp 是一款开源的 C# 类库核心功能是读取和写入 DXF、DWG 等 CAD 图纸文件。很多人不知道的是它还内置了 SVG 导出能力——通过SvgWriter类只需几行代码就能把 CAD 图纸转换成可在浏览器、Figma、Illustrator 中直接打开的 SVG 矢量图无需 AutoCAD无需 Photoshop 转换。本文带你快速上手 ACadSharp 的 CAD 转 SVG 功能并详解每个配置参数。为什么要把 CAD 图纸导出成 SVGDXF/DWG 是专业 CAD 格式普通设计师、前端开发者、甚至大多数图片查看器都打不开。而 SVG 是通用的矢量格式浏览器直接预览拖进网页即可查看无限缩放不失真可编辑性可在 Figma、Illustrator、Inkscape 中继续修改体积小纯 XML 文本结构比 PNG/JPG 位图更适合线条类图纸ACadSharp 的 SVG 导出会保留图中的线宽、颜色、圆弧平滑度等信息转换效果相当接近原图。准备工作安装 ACadSharp 依赖在项目目录中执行一条命令即可从 NuGet 安装dotnet add package ACadSharp核心源码位于 SvgWriter.cs配置类在 SvgConfiguration.cs想深入了解实现可以直接阅读这两个文件。核心用法3行代码把 DWG 转成 SVGusing ACadSharp.IO; CadDocument doc DwgReader.Read(drawing.dwg); using SvgWriter writer new SvgWriter(drawing.svg, doc); writer.Write();就这么简单 第 1 行用DwgReader读取 DWG 文件如果是 DXF 文件换成DxfReader.Read即可第 2 行创建SvgWriter指定输出文件名和要导出的文档第 3 行调用Write()开始导出⚠️ 注意Write()默认导出**模型空间Model Space**的全部内容。这也是官方测试用例 SvgWriterTests.cs 中的用法。进阶只导出某个布局Layout图纸通常包含模型空间和多个图纸空间布局。如果只想导出某个特定布局可以这样写Layout layout doc.Layouts[Model]; using SvgWriter writer new SvgWriter(layout.svg, doc); writer.Write(layout);遍历所有布局并分别导出可以参考测试代码中的写法foreach (Layout layout in doc.Layouts) { using SvgWriter writer new SvgWriter(${layout.Name}.svg, doc); writer.Write(layout); }配置参数详解SvgConfiguration 的 4 个属性SvgWriter的输出效果由SvgConfiguration控制共 4 个常用参数参数默认值作用DefaultLineWeight0.01mm默认线宽实体的绘制粗细LineWeightRatio100无单位图纸的线宽换算系数对应毫米真实值PointRadius0.1点实体的渲染半径SVG 中点被绘制为小圆ArcPoints256圆弧/圆的采样段数值越大曲线越平滑文件也越大设置方式writer.Configuration new SvgConfiguration { DefaultLineWeight 0.15, // 让默认线宽更明显 LineWeightRatio 50, // 线宽换算比例 PointRadius 0.1, // 点半径 ArcPoints 256 // 圆弧采样点 }; 调参小建议线宽太细看不清调大DefaultLineWeight如 0.15或调小LineWeightRatio圆弧看起来有棱角调大ArcPoints如 512文件太大调小ArcPoints上图为 ACadSharp 能正确解析的 CAD 标注类实体之一对齐标注。这类包含圆弧、斜线的复杂实体在导出 SVG 时同样会被矢量化的线段与圆弧还原因此ArcPoints参数对标注类图纸尤其重要。常见问题 FAQQ1导出的 SVG 是空白的确认文档模型空间里有实体并且读取时没有异常。可以换用Write(layout)指定具体布局试试。Q2单位和 mm 对不上SVG 的坐标系由布局的纸张单位决定SvgConfiguration中的线宽参数均以毫米为基准无单位图纸会按LineWeightRatio换算。Q3支持 DWG 的所有版本吗ACadSharp 支持从 AC1012 到 AC1032 的 DWG 版本以及 ASCII/二进制 DXF覆盖 2004–2018 等常见版本测试数据可在 samples/svg/export_sample.dwg 找到样例。小结安装dotnet add package ACadSharp导出DwgReader读取 →SvgWriter创建 →Write()输出3 行搞定调优通过SvgConfiguration的 4 个参数控制线宽、点半径和圆弧平滑度借助 ACadSharpCAD 图纸转 SVG 矢量图不再依赖任何商业软件一个 C# 控制台程序就能完成批量转换。快去试试吧 【免费下载链接】ACadSharpC# library to read/write cad files like dxf/dwg.项目地址: https://gitcode.com/gh_mirrors/ac/ACadSharp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考