LitCAD:5 分钟编译出第一张图的 C 开源二维 CAD 绘图程序
LitCAD:5 分钟编译出第一张图的 C# 开源二维 CAD 绘图程序
【免费下载链接】LitCADA very simple CAD developed by C#.项目地址: https://gitcode.com/gh_mirrors/li/LitCAD
LitCAD 是一款采用 MIT 协议免费开源、用 C# 编写的轻量级二维 CAD 绘图程序,支持线段、圆、圆弧、文字等 7 类基础图元及移动、复制、偏移、夹点编辑等基本操作,适合学习 CAD 概念与轻量绘图。
📊 能力速览
| 能力 | 说明 | 典型场景 |
|---|---|---|
| 基础图元绘制 | 线段、圆、圆弧、文字等 7 类图元 | 简单平面草图 |
| 夹点编辑 | 选中后拖动夹点直接改形状 | 画完再调整 |
| 对象捕捉 | 端点、中点、中心、象限点捕捉 | 精确连接对齐 |
| 编辑操作 | 删除、复制、镜像、偏移、移动 | 快速改图 |
| 图层管理 | 新增、修改、删除图层并设颜色 | 图元分类隔离 |
主界面:左侧为绘图工具栏,右侧为编辑工具栏,画布中选中图元显示蓝色夹点,原点以红绿坐标轴标出。
🖱️ 一次真实操作走查
以绘制"矩形 + 圆 + 文字"的简易平面草图为例:
- 运行编译出的
LitCAD.exe→ 打开空白画布,深灰背景配红绿坐标轴原点 - 点击左侧工具栏的矩形工具(对应
src/LitCAD/Commands/Draw/下的RectangleCmd.cs)→ 拖拽两角点 → 外轮廓矩形生成 - 点击圆工具 → 指定圆心 → 输入半径回车确认 → 画布上出现一个蓝色圆
- 再画一条线段 → 开启端点捕捉 → 线段端点自动吸附到已有图元的端点,无需手输坐标
- 单击选中圆 → 蓝色夹点显示 → 拖动夹点 → 半径实时改变
- 菜单"文件"→"另存为" → 保存为
.litcad文件,下次打开可直接续画
⚙️ 核心模块拆解
命令系统 —— 把所有用户操作收敛成可注册的命令
绘制、编辑、图层功能都实现为独立的Command子类,由CommandsFactory按命令名(如line、circle、offset)统一注册和创建。新增功能只需写一个新命令类并注册一行,不触碰其它代码。源码入口:src/LitCAD/Commands/CommandsFactory.cs,适合想加一个新绘制工具或扩展命令集的时候用。
夹点编辑 —— 不必重新绘制即可调整形状
选中图元后显示蓝色夹点,拖动夹点时几何体实时更新,原图元在操作前会先克隆备份,因此可直接撤销回退。核心逻辑在src/LitCAD/Commands/GripPointMoveCmd.cs,适合草图画完发现尺寸不对、需要微调而不想删除重画的时候用。
对象捕捉 —— 避免手绘对不齐
src/LitCAD/Presenter/SnapNodesMgr.cs负责在鼠标移动时收集附近图元上的捕捉点,当前支持端点、中点、中心、象限点四种模式(枚举中还预留了垂足、切点等位)。适合多根线段、多个圆需要精确对齐或首尾相接的时候用。
👥 适合谁用
- CAD 初学者 / 工科学生:商业 CAD 界面重、授权贵,只想理解绘制、捕捉、图层这些基础概念 → LitCAD 界面极简且免费,把概念跑通所需的功能都齐了
- 想读 CAD 源码的开发者:商业 CAD 源码封闭,学习材料只有黑盒 → 全部代码集中在一个解决方案里,数据层、命令层、渲染层各自独立,几天能通读一遍
- 轻量二维出图用户:只画线段、圆、文字加基本编辑,装大型 CAD 太重 → 打开就画,
.litcad文件小而便于传输
🏗️ 技术架构
- lcdb(
src/lcdb/):数据层,管理图元、图层表、块表与对象 ID 分配,文件读写基于 XML - lcinterface(
src/lcinterface/):定义ICanvas、ICommand、IDocument等跨层接口契约 - LitCAD 界面层(
src/LitCAD/Windows/):WinForms 主窗口、画布控件与图层管理对话框 - Presenter(
src/LitCAD/Presenter/):渲染与交互,负责动态输入、选择框、捕捉节点
四个工程通过接口契约解耦,新增命令只需实现命令类并在工厂注册,数据层与界面层互不感知。
🚀 从零到跑通
git clone https://gitcode.com/gh_mirrors/li/LitCAD- 安装 Visual Studio 2010 或更高版本(目标框架为 .NET Framework 4.0)
- 用 VS 打开
src/LitCAD.sln,选择 Debug 配置 - 生成解决方案,输出目录在
src/bin/Debug/ - 运行
LitCAD.exe,画一个矩形后用"文件 → 另存为"存成.litcad
跑通后建议先试一遍"夹点改圆 + 撤销",感受完整交互链路。第一周建议:
- 用矩形、线段、圆组合画一张简易平面草图,验证捕捉与夹点行为
- 打开保存的
.litcad文件改个图层颜色,直观理解数据结构
❓ 常见问题
Q:能打开 DXF 文件吗?A:暂不支持。LitCAD 只读写自己的.litcad格式,文件基于 XML 组织(序列化逻辑在src/lcdb/Filer/下),结构可直接阅读。
Q:Linux 或 Mac 上能运行吗?A:暂不能。界面层是 WinForms,工程目标为 .NET Framework 4.0,需要 Windows 环境。
Q:如何加一个新绘制命令?A:参照src/LitCAD/Commands/Draw/CircleCmd.cs实现命令类,然后在CommandsFactory构造函数里注册命令名,再从菜单或快捷入口触发即可。
Q:硬件要求高吗?A:不高。程序是 WinForms + GDI 渲染,无特殊显卡或内存要求,普通办公电脑即可流畅运行。
LitCAD 的定位是入门级二维 CAD:功能数量不大,但绘图、捕捉、编辑、图层、文件这条主链路完整,代码量也小到可以通读。clone 下来编译一次,几分钟内你会拥有自己的第一张图;遇到问题或有功能想法,直接在仓库提交 Issue 参与讨论即可。
【免费下载链接】LitCADA very simple CAD developed by C#.项目地址: https://gitcode.com/gh_mirrors/li/LitCAD
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
