LibreCAD概述与入门
第一章 LibreCAD概述与入门
1.1 LibreCAD简介
1.1.1 什么是LibreCAD
LibreCAD是一款免费、开源的二维计算机辅助设计(CAD)软件,专门用于2D绘图和技术制图。它是基于社区版QCAD(QCad Community Edition)开发的,采用Qt框架构建,支持Windows、macOS和Linux等主流操作系统。
LibreCAD的主要定位是为建筑师、工程师、设计师和爱好者提供一个功能完善、易于使用的专业级2D CAD工具。与商业软件AutoCAD相比,LibreCAD完全免费且开源,用户可以自由使用、修改和分发。
1.1.2 发展历史
LibreCAD的发展历程可以追溯到以下几个关键节点:
1999年 - QCAD诞生
- QCAD由RibbonSoft公司开发,最初是一个开源的2D CAD应用程序
- 采用GPL许可证发布社区版本
2010年 - LibreCAD项目启动
- 由于QCAD社区版更新停滞,开发者社区决定创建一个独立的分支
- 最初名为CADuntu,后更名为LibreCAD
- 项目目标是继续发展和改进原有的QCAD代码库
2011年 - 首个稳定版本发布
- LibreCAD 1.0.0正式发布
- 完成了从Qt3到Qt4的移植工作
- 建立了独立的开发社区和文档体系
2014年至今 - 持续迭代发展
- LibreCAD 2.x系列持续发布新功能和修复
- 2.2.x分支要求Qt 5.15.0或更新版本
- 2.2.2分支升级到Qt 6.4.0或更新版本
- 引入了更多现代化特性和性能优化
1.1.3 版本分支说明
LibreCAD目前维护着多个版本分支:
| 分支 | Qt版本要求 | 说明 |
|---|---|---|
| master | 最新 | 预发布代码,包含最新特性 |
| 2.2.2 | Qt 6.4.0+ | 当前主要开发分支 |
| 2.2.1 | Qt 5.15.0+ | 稳定版本分支 |
| 2.2 | Qt 5.2.1+ | 旧版稳定分支 |
| 2.1 | Qt4 | 最后支持Qt4的版本 |
| 2.0 | Qt4 | 最后支持QCAD工具栏的版本 |
1.1.4 许可协议
LibreCAD采用GNU通用公共许可证第2版(GPLv2)发布,这意味着:
- 自由使用:任何人都可以免费下载和使用LibreCAD
- 自由修改:用户可以修改源代码以满足特定需求
- 自由分发:修改后的版本必须同样以GPL许可证发布
- 源代码公开:所有分发的版本必须提供源代码
这种开源许可模式确保了LibreCAD将永远保持免费,并且用户社区可以持续贡献和改进软件。
1.2 核心特性与功能
1.2.1 绘图功能
LibreCAD提供了完整的2D绘图工具集:
基本图形绘制
- 点(Point):单点、多点绘制
- 直线(Line):普通线、构造线、射线
- 折线(Polyline):连续折线、闭合折线
- 圆(Circle):圆心半径、两点定圆、三点定圆、相切圆
- 圆弧(Arc):三点定弧、圆心角度定弧
- 椭圆(Ellipse):圆心定椭圆、焦点定椭圆
- 样条曲线(Spline):B样条曲线、插值样条
高级图形绘制
- 填充图案(Hatch):多种预设填充图案
- 多边形:正多边形绘制
- 图块(Block):可重复使用的图形组件
- 图像插入:支持栅格图像嵌入
1.2.2 编辑与修改
LibreCAD支持丰富的图形编辑操作:
基本编辑
- 移动(Move)
- 复制(Copy)
- 旋转(Rotate)
- 缩放(Scale)
- 镜像(Mirror)
- 偏移(Offset)
高级编辑
- 修剪(Trim):裁剪相交实体
- 延伸(Extend):延伸到边界
- 分割(Divide):等分线段
- 倒角(Chamfer):创建斜角
- 圆角(Fillet):创建圆角
- 打断(Break):分割实体
- 炸开(Explode):分解复合实体
1.2.3 图层管理
图层是CAD绘图的核心组织方式,LibreCAD提供完善的图层管理功能:
- 图层创建与删除:支持无限数量的图层
- 图层属性设置:颜色、线型、线宽
- 图层可见性控制:显示/隐藏图层
- 图层锁定:防止误操作修改
- 图层打印控制:设置是否打印
1.2.4 尺寸标注
专业的尺寸标注功能:
- 线性标注:水平、垂直、对齐标注
- 径向标注:半径、直径标注
- 角度标注:角度测量与标注
- 引线标注:带指引线的注释
- 坐标标注:显示点坐标值
- 标注样式:可自定义的标注外观
1.2.5 文字与注释
- 单行文字:简单文本注释
- 多行文字:支持换行的文本块
- 文字样式:可自定义字体、大小、颜色
- 特殊符号:支持CAD常用特殊符号
1.2.6 文件格式支持
LibreCAD支持多种文件格式的读写:
原生格式
- DXF(Drawing Exchange Format):主要工作格式,与AutoCAD高度兼容
导入格式
- DXF:AutoCAD交换格式
- DWG:AutoCAD原生格式(通过libdxfrw库支持)
- LFF:LibreCAD字体格式
- CXF:QCAD字体格式
导出格式
- DXF:标准交换格式
- SVG:可缩放矢量图形
- PDF:便携文档格式
- PNG/JPEG/BMP:栅格图像格式
1.2.7 命令行界面
LibreCAD提供类似AutoCAD的命令行界面:
命令: line
指定第一点: 0,0
指定下一点: 100,100
指定下一点: [Enter]结束
支持的命令行特性:
- 命令自动完成
- 命令别名
- 坐标输入(绝对坐标、相对坐标、极坐标)
- 数学表达式计算
1.2.8 捕捉与定位
精确绘图必备的对象捕捉功能:
- 端点捕捉:捕捉线段端点
- 中点捕捉:捕捉线段中点
- 圆心捕捉:捕捉圆和弧的圆心
- 交点捕捉:捕捉对象交点
- 垂足捕捉:捕捉垂直点
- 切点捕捉:捕捉切线点
- 最近点捕捉:捕捉最近的点
1.2.9 多语言支持
LibreCAD界面已翻译成超过30种语言,包括:
- 中文(简体/繁体)
- 英语
- 日语
- 韩语
- 法语
- 德语
- 西班牙语
- 俄语
- 等等
用户可以通过翻译平台 https://translate.librecad.org 参与翻译工作。
1.3 技术架构概览
1.3.1 技术栈
LibreCAD采用以下技术栈构建:
| 技术 | 用途 |
|---|---|
| C++17 | 主要编程语言 |
| Qt 6 | 跨平台GUI框架 |
| Boost | C++工具库,提供算法和数据结构支持 |
| libdxfrw | DXF/DWG文件读写库 |
| muParser | 数学表达式解析器 |
| FreeType | 字体渲染 |
1.3.2 模块化架构
LibreCAD采用模块化设计,主要模块包括:
librecad/
├── src/
│ ├── main/ # 主程序入口
│ ├── lib/ # 核心库
│ │ ├── engine/ # 图形引擎
│ │ ├── gui/ # GUI组件
│ │ ├── actions/ # 用户操作
│ │ ├── creation/ # 图形创建
│ │ ├── modification/ # 图形修改
│ │ ├── information/ # 信息查询
│ │ ├── math/ # 数学计算
│ │ ├── filters/ # 文件过滤器
│ │ └── ...
│ ├── actions/ # 动作实现
│ ├── ui/ # 用户界面
│ ├── cmd/ # 命令处理
│ └── plugins/ # 插件接口
└── plugins/ # 官方插件
1.3.3 核心类体系
LibreCAD的核心类体系遵循面向对象设计原则:
实体层次结构
RS_Entity (基类)
├── RS_Point
├── RS_Line
├── RS_Circle
├── RS_Arc
├── RS_Ellipse
├── RS_Polyline
├── RS_Spline
├── RS_Text
├── RS_Dimension
├── RS_Hatch
├── RS_Image
└── RS_EntityContainer
├── RS_Block
├── RS_Graphic
└── RS_Insert
关键组件
RS_Graphic:图形文档,包含所有图形数据RS_GraphicView:图形视图,负责渲染和交互RS_ActionInterface:动作接口,封装用户操作RS_EventHandler:事件处理器,分发用户事件
1.4 与其他CAD软件对比
1.4.1 LibreCAD vs AutoCAD
| 特性 | LibreCAD | AutoCAD |
|---|---|---|
| 价格 | 免费 | 付费订阅 |
| 开源 | 是(GPLv2) | 否 |
| 2D支持 | 完整 | 完整 |
| 3D支持 | 无 | 完整 |
| 文件格式 | DXF为主 | DWG为主 |
| 学习曲线 | 较平缓 | 较陡峭 |
| 系统要求 | 较低 | 较高 |
| 跨平台 | Windows/macOS/Linux | Windows/macOS |
| 插件生态 | 有限 | 丰富 |
1.4.2 LibreCAD vs FreeCAD
| 特性 | LibreCAD | FreeCAD |
|---|---|---|
| 主要功能 | 2D绘图 | 3D建模 |
| 技术定位 | 制图软件 | 参数化建模 |
| 目标用户 | 建筑/机械制图 | 工程设计/3D打印 |
| 上手难度 | 较低 | 较高 |
| 文件格式 | DXF | STEP/IGES/STL |
1.4.3 LibreCAD vs QCAD
| 特性 | LibreCAD | QCAD |
|---|---|---|
| 起源 | QCAD分支 | 原始项目 |
| 许可证 | GPLv2 | 商业+社区版 |
| 开发活跃度 | 活跃 | 活跃 |
| 功能差异 | 社区驱动特性 | 商业特性 |
| 技术支持 | 社区支持 | 官方支持 |
1.5 应用场景
1.5.1 建筑设计
LibreCAD广泛应用于建筑设计领域:
- 平面图绘制:建筑平面布局
- 立面图设计:建筑外观设计
- 剖面图制作:结构剖面展示
- 详图绘制:节点详细设计
- 施工图输出:符合制图规范的图纸
1.5.2 机械工程
机械工程领域的应用:
- 零件图绘制:机械零件的2D表达
- 装配图设计:零件装配关系展示
- 工艺图制作:加工工艺说明
- 标准件库:常用标准件图库管理
1.5.3 电气工程
电气工程应用:
- 电路图绘制:电气原理图
- 布线图设计:电气布线规划
- 符号库管理:电气符号库
1.5.4 教育培训
教育领域应用:
- CAD教学:免费的教学工具
- 工程制图课程:工程制图实践
- 学生作业:学生学习使用
1.5.5 个人项目
个人和爱好者应用:
- DIY项目设计:家具、装修设计
- 模型制作:激光切割、数控加工准备
- 平面设计:技术插图制作
1.6 学习路线图
1.6.1 初级阶段
目标:能够使用LibreCAD完成基本的2D绘图任务
学习内容:
- 软件安装与界面熟悉
- 基本绘图工具使用
- 图层管理基础
- 简单编辑操作
- 文件保存与导出
建议时间:1-2周
1.6.2 中级阶段
目标:能够高效完成复杂的技术制图
学习内容:
- 高级绘图技巧
- 尺寸标注系统
- 块和库管理
- 命令行使用
- 自定义设置
- 打印与输出
建议时间:2-4周
1.6.3 高级阶段
目标:能够进行二次开发和定制
学习内容:
- 源码架构理解
- 开发环境搭建
- 插件开发
- Action系统开发
- 自定义实体类型
建议时间:4-8周
1.7 获取帮助与资源
1.7.1 官方资源
- 官方网站:https://librecad.org
- GitHub仓库:https://github.com/LibreCAD/LibreCAD
- 用户手册:https://librecad.readthedocs.io
- Wiki文档:https://dokuwiki.librecad.org
1.7.2 社区支持
- 官方论坛:https://forum.librecad.org
- IRC频道:#librecad @ libera.chat
- 翻译平台:https://translate.librecad.org
1.7.3 问题反馈
- GitHub Issues:https://github.com/LibreCAD/LibreCAD/issues
- 提交问题时请包含:
- 操作系统版本
- LibreCAD版本
- 问题描述
- 重现步骤
1.7.4 相关项目
- libdxfrw:https://github.com/LibreCAD/libdxfrw - DXF/DWG读写库
- 资源仓库:https://github.com/LibreCAD/Resources - 图标、样式等资源
1.8 本章小结
本章介绍了LibreCAD的基本概念、发展历史、核心特性和技术架构。作为一款开源的2D CAD软件,LibreCAD具有以下优势:
- 完全免费:基于GPLv2许可,永久免费使用
- 跨平台支持:支持Windows、macOS、Linux
- 功能完善:提供专业级2D绘图功能
- 社区活跃:持续的开发和改进
- 易于学习:相对平缓的学习曲线
- 开源可定制:可以根据需求修改和扩展
在后续章节中,我们将深入学习LibreCAD的安装配置、用户界面、绘图工具、以及二次开发等内容,帮助读者从入门到精通全面掌握这款优秀的开源CAD软件。

浙公网安备 33010602011771号