news 2026/8/22 0:31:09

LitCAD:5 分钟编译出第一张图的 C 开源二维 CAD 绘图程序

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 类图元简单平面草图
夹点编辑选中后拖动夹点直接改形状画完再调整
对象捕捉端点、中点、中心、象限点捕捉精确连接对齐
编辑操作删除、复制、镜像、偏移、移动快速改图
图层管理新增、修改、删除图层并设颜色图元分类隔离

主界面:左侧为绘图工具栏,右侧为编辑工具栏,画布中选中图元显示蓝色夹点,原点以红绿坐标轴标出。

🖱️ 一次真实操作走查

以绘制"矩形 + 圆 + 文字"的简易平面草图为例:

  1. 运行编译出的LitCAD.exe→ 打开空白画布,深灰背景配红绿坐标轴原点
  2. 点击左侧工具栏的矩形工具(对应src/LitCAD/Commands/Draw/下的RectangleCmd.cs)→ 拖拽两角点 → 外轮廓矩形生成
  3. 点击圆工具 → 指定圆心 → 输入半径回车确认 → 画布上出现一个蓝色圆
  4. 再画一条线段 → 开启端点捕捉 → 线段端点自动吸附到已有图元的端点,无需手输坐标
  5. 单击选中圆 → 蓝色夹点显示 → 拖动夹点 → 半径实时改变
  6. 菜单"文件"→"另存为" → 保存为.litcad文件,下次打开可直接续画

⚙️ 核心模块拆解

命令系统 —— 把所有用户操作收敛成可注册的命令

绘制、编辑、图层功能都实现为独立的Command子类,由CommandsFactory按命令名(如linecircleoffset)统一注册和创建。新增功能只需写一个新命令类并注册一行,不触碰其它代码。源码入口:src/LitCAD/Commands/CommandsFactory.cs,适合想加一个新绘制工具或扩展命令集的时候用。

夹点编辑 —— 不必重新绘制即可调整形状

选中图元后显示蓝色夹点,拖动夹点时几何体实时更新,原图元在操作前会先克隆备份,因此可直接撤销回退。核心逻辑在src/LitCAD/Commands/GripPointMoveCmd.cs,适合草图画完发现尺寸不对、需要微调而不想删除重画的时候用。

对象捕捉 —— 避免手绘对不齐

src/LitCAD/Presenter/SnapNodesMgr.cs负责在鼠标移动时收集附近图元上的捕捉点,当前支持端点、中点、中心、象限点四种模式(枚举中还预留了垂足、切点等位)。适合多根线段、多个圆需要精确对齐或首尾相接的时候用。

👥 适合谁用

  • CAD 初学者 / 工科学生:商业 CAD 界面重、授权贵,只想理解绘制、捕捉、图层这些基础概念 → LitCAD 界面极简且免费,把概念跑通所需的功能都齐了
  • 想读 CAD 源码的开发者:商业 CAD 源码封闭,学习材料只有黑盒 → 全部代码集中在一个解决方案里,数据层、命令层、渲染层各自独立,几天能通读一遍
  • 轻量二维出图用户:只画线段、圆、文字加基本编辑,装大型 CAD 太重 → 打开就画,.litcad文件小而便于传输

🏗️ 技术架构

  • lcdbsrc/lcdb/):数据层,管理图元、图层表、块表与对象 ID 分配,文件读写基于 XML
  • lcinterfacesrc/lcinterface/):定义ICanvasICommandIDocument等跨层接口契约
  • LitCAD 界面层src/LitCAD/Windows/):WinForms 主窗口、画布控件与图层管理对话框
  • Presentersrc/LitCAD/Presenter/):渲染与交互,负责动态输入、选择框、捕捉节点

四个工程通过接口契约解耦,新增命令只需实现命令类并在工厂注册,数据层与界面层互不感知。

🚀 从零到跑通

  1. git clone https://gitcode.com/gh_mirrors/li/LitCAD
  2. 安装 Visual Studio 2010 或更高版本(目标框架为 .NET Framework 4.0)
  3. 用 VS 打开src/LitCAD.sln,选择 Debug 配置
  4. 生成解决方案,输出目录在src/bin/Debug/
  5. 运行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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 0:19:51

TranslucentTB 完全指南:让 Windows 任务栏融进壁纸的 5 种姿势

TranslucentTB 完全指南:让 Windows 任务栏融进壁纸的 5 种姿势 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 当你换上一张…

作者头像 李华
网站建设 2026/8/22 0:12:47

OSP和沉金怎么选?深度解析OSP与沉金的失效模式

SMT 贴片出现虚焊、焊点开裂、BGA 焊点间歇性失效,很多时候原理图、PCB 布局没有问题,根源来自表面处理工艺选型不当或者制程缺陷。OSP 与沉金二者的失效机理完全不同,OSP 失效大多来自存储、高温导致可焊性衰减;沉金最大风险来自…

作者头像 李华
网站建设 2026/8/22 0:12:36

手机号归属地定位:开源免费工具两步跑通

手机号归属地定位:开源免费工具两步跑通 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirrors/lo/locati…

作者头像 李华
网站建设 2026/8/22 0:07:21

BETAFPV Configurator:5 分钟配好你的 Whoop 飞控

BETAFPV Configurator:5 分钟配好你的 Whoop 飞控 【免费下载链接】BETAFPV_Configurator 项目地址: https://gitcode.com/gh_mirrors/be/BETAFPV_Configurator 拿到 Cetus 的第一关不是飞,是连不上电脑:COM 口找不到、固件刷不进、E…

作者头像 李华
网站建设 2026/8/22 0:00:57

markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清

markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清 【免费下载链接】markdown-it-vue The vue lib for markdown-it. 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-it-vue 这篇文章写给刚装上 markdown-it-vue 就遇到报错的你&#x…

作者头像 李华