当前位置: 首页 > news >正文

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),仅供参考

http://www.cnnetsun.cn/news/4145113.html

相关文章:

  • TranslucentTB 完全指南:让 Windows 任务栏融进壁纸的 5 种姿势
  • 微信防撤回补丁完整教程:RevokeMsgPatcher 快速上手,防撤回和多开一次搞定
  • OSP和沉金怎么选?深度解析OSP与沉金的失效模式
  • 手机号归属地定位:开源免费工具两步跑通
  • BETAFPV Configurator:5 分钟配好你的 Whoop 飞控
  • markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清
  • 兄弟T725DW打印机E3错误全解析:从通信原理到硬件排查实战
  • 从本地到云端:腾讯云一站式部署实战,快速构建黑客松演示Demo
  • 基于GitHub Actions与Issues构建自动化协作系统:Gitizens模式实践指南
  • UEC++实战:虚幻引擎5角色抓取与移动物体系统开发指南
  • 电控工程师入门指南:从认知地图到工程实践
  • 告别画图内卷✅OKBIYE科研绘图太省心!零基础搞定论文满分图表
  • SpringBoot+Vue3实现高效员工入职管理系统
  • 基于SpringBoot+Vue的在线招投标系统毕业设计部署与实战指南
  • 数字货币交易实战:从行情分析到操作建议的完整框架
  • 谷歌HEIR项目:用编译器技术降低同态加密AI推理门槛
  • Qt文件系统模型与树视图:懒加载、实时同步与性能优化实践
  • Unity多人游戏开发实战:基于NGO的休闲竞技手游全流程技术解析
  • ContextMenuManager:Windows 右键菜单管理工具完整指南
  • 数学建模实战:从海盐气溶胶到云层反馈的跨学科问题求解
  • 一键整页截图 Chrome 扩展:3 分钟把长网页存成一张完整长图
  • 内景 中世纪哥特式教堂室内
  • md2pptx:免费开源的 Markdown 转 PPT 工具,如何一键快速生成演示文稿
  • 如何快速完成 Robotics Toolbox for Python 安装:新手逆运动学环境搭建指南
  • REDSearcher框架:低成本实现AI智能体长视野复杂搜索任务
  • BiliLocal:给本地视频加弹幕的完整指南
  • ARMOR++:基于多域基元与智能体编排的可迁移深度伪造攻击方法
  • 企业文件协作中的权限粒度困局:32维权限模型如何拆掉共享文件夹
  • LLM与规则手册量化交易对比实验:AI智能与固定规则的博弈
  • DD_KaoRou2:AI 自动打轴工具,字幕组打轴效率升级 2.0