使用Git管理ECAD软件元器件库

news2024/9/26 5:14:06

在日常工作中,很多工程师习惯维护和使用自己的元器件库,这样可以方便的查找和使用元器件。但是,如果元器件库中的元器件数量较多,且元器件的版本较多,那么维护元器件库就会变得非常困难。还有,企业中的研发团队如果工程师各自维护和使用自己的库,就会影响协作效率,甚至给产品质量造成隐患。为了解决这些问题,我们可以使用Git来管理元器件库,统一规范团队使用的库。

这里所说的库,特指ECAD软件中使用的元器件库,主要包括元器件的原理图符号(逻辑符号)、PCB封装图形和3d模型。目前的ECAD软件通常都支持独立库文件的原子操作,也就是可以把元器件的各种属性独立操作,这样就为Git管理库提供了可能。

接下来就以Altium Designer为例,介绍如何使用Git管理元器件库。

关于Git

Git是一个分布式版本控制系统,用于高效地处理任何或小或大的项目。Git是免费、开源的,具有速度快、灵活性强、分布式等特点。Git可以用来管理代码,也可以用来管理其他类型的文件,比如图片、文档等。Git的分布式特点使得每个开发者都可以拥有自己的代码库,这样就可以避免代码冲突,提高协作效率。

Git的基本概念

Git的基本概念包括仓库(Repository)、分支(Branch)、提交(Commit)、标签(Tag)等。

  • 仓库:Git的仓库是代码的存储空间,每个仓库都有自己的版本历史和分支。
  • 分支:分支是仓库的一个副本,用于开发新的功能或修复bug。每个分支都有自己的版本历史,可以独立进行操作。
  • 提交:提交是代码的一个版本,每个提交都有一个唯一的哈希值,用于标识该版本。
  • 标签:标签是代码的一个版本,用于标识某个重要的版本,比如发布版本。

使用Git管理元器件库

安装Git

首先需要安装Git,可以从Git官网下载安装包,然后按照提示进行安装。官方文档已经写的非常详细,这里就不在赘述。

创建仓库

其实Altium Designer中对SVN的支持是最好的,但是SVN是集中式的版本控制系统,而Git是分布式的版本控制系统,不用考虑服务端备份的问题,更安全,并且Git的速度更快,就目前趋势来说,Git是更好的选择。

如果自建Git服务的话,可以使用Gitea、GitLab、Gogs等工具,但是需要维护服务器,如果不想维护服务器,可以使用GitHub、GitLab等在线服务。对于国内的企业来说,可以使用Gitee、Coding等国内的在线服务。如果既不想自己维护服务器,又不想使用Gitee等产品,阿里云和腾讯云也有Git托管服务产品,今天就以Codeup为例,其他的Git托管服务也是类似的。

首先登录Codeup,然后创建一个新的仓库,填写仓库名称、描述等信息,然后点击创建仓库。

新建库

这里我设置了仓库名称为"ADLib",描述为"Altium Designer 元器件库"。

如果希望控制企业内多个开发组的权限,可以设置代码组,设置后只有对应代码组内的成员才能看到相应仓库。

注意这里的公开性是指企业内其他成员是否可见,如果是私有,则只有代码库内的成员才能看到。

填完这些信息后,点击确定,仓库就建好了。

开发维护

对于团队库,我们需要建立个流程规范来管理库,确保库的质量和可用性。

分支管理

团队库会有一个主分支(master),用于存放稳定的元器件库。开发人员在开发新的元器件时,可以从主分支上拉一个新的分支,进行开发。开发完成后,可以提交到新的分支上,然后发起一个合并请求(Pull Request),由管理员审核后,合并到主分支上。

在实践中,我们可以保持主分支为默认分支,其他分支可以根据需要创建。可以约定:

  1. 主分支:master,默认分支,保护分支,用于存放稳定的元器件库。
  2. 开发分支:new/sym-xxxx, new/fp-xxxx, new/3d-xxxx,用于新建元器件库文件。
  3. 修复分支:fix/sym-xxxx, fix/fp-xxxx, fix/3d-xxxx,用于修复元器件库文件。

工程师在开发分支和修复分支上编辑元器件库文件,并提交到对应分支上。然后发起合并请求,由管理员审核后,合并到主分支上。

对于新建库文件,工程师在拉取后,应先建分支,新建对应库文件,然后提交推送,这样可以尽量避免其他工程师同时编辑同一个库文件,导致冲突。

目录结构

在仓库下建立如下目录结构:

ADlib
├─3d_models
│  ├─preview
│  └─step
├─footprints
│  ├─figures
│  ├─preview
│  │─report
│  ├─dimension_figure
│  └─package_types
│      └─figures
│          ├─dimension_figure
│          └─package_figure
├─scripts
├─sim_models
├─symbols
│  │─preview
│  └─report
└─templates

其中:

  • 3d_models:存放3d模型文件,包括preview和step文件。
  • footprints:存放PCB封装文件,包括ad、kicad等不同ECAD软件的封装文件。
  • scripts:存放脚本文件,用于批量生成元器件库文件。
  • sim_models:存放仿真模型文件,用于仿真分析。
  • symbols:存放原理图符号文件,包括ad、kicad等不同ECAD软件的原理图符号文件。
  • templates:存放模板文件,用于批量生成元器件库文件。

注意:Altium Designer新版库文件和3d模型库文件在Git中应按照二进制文件处理,建议使用Git LFS进行管理。

文件命名

为确保元器件库的可读性和可维护性,遵循原子操作原则:一个库文件只包含一个原理图符号、一个PCB封装图形和一个3d模型。文件命名应遵循一定的规范,可以约定:

  1. 原理图符号文件:sym-xxxx.SchLib,其中xxxx为数字流水号。文件内符号名称与文件名一致。
  2. PCB封装图形文件:fp-xxxx.PcbLib,其中xxxx为数字流水号。3d模型变体使用数字尾缀;装配密度变体使用字母l m n尾缀,n表示常规密度,m为低密度,l为高密度,插件可省略;封装方向变体用q1 q2 q3 q4尾缀。例如:fp-0001-1-n-q1.PcbLib,插件可省略。文件内封装图形名称与文件名一致。
  3. 3d模型文件:3d-xxxx-x.step,与PCB封装图形一一对应。

注意: 不要在库文件中添加元器件属性等附加信息,避免与CIS中的字段冲突。

提交规范

提交信息应遵循一定的规范,以便于后续的代码审查和问题追踪。可以约定:

  1. 提交信息格式:[类型] 描述
  2. 类型:add, fix
  3. 描述:简短描述,不超过50个字符,描述清楚提交的目的和内容。
  4. 提交消息体中应包含具体描述信息。

例如:

add: sym-0001, 通用电阻符号

description: 通用电阻
pin_count: 2
ep_pin_count: 0
type: standard
...

3d模型文件可以与PCB封装图形库文件一起提交,也可以单独提交。建议有3d模型的PCB封装库文件也单独保存一个3d模型库文件,这样可以方便后续的管理。

审核合并

提交并推送到远程仓库后,开发者发起合并请求,由管理员审核后,合并到主分支上。合并请求应包含详细的描述信息。

更新CIS

合并到主分支后,管理员要及时更新CIS数据库,确保团队内的所有成员都使用最新的元器件库。

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。
个人博客 | blog.boringhex.top

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1971006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于JAVA的进销存管理系统的设计与实现

点击下载源码 基于JAVA的进销存管理系统的设计与实现 摘 要 进入21世纪以来,商业管理中需要处理的数据和信息越来越多。大量的数据和繁杂的数据使得古老的手工处理数据的方式渐渐显得力不从心。甚至有些信息处理的方式在手工处理的模式下是根本无法是实现的&…

ggplot2 添加文字信息,设置黑体、斜体、旋转、对齐

目的:图中添加文字。 1. 每个点都添加文字 效果不好。 保持文字颜色和点一致,就没法斜体。 设置斜体,就没法保持文字颜色。 library(ggplot2) p1ggplot(iris, aes(Sepal.Length, Sepal.Width, colorSpecies))geom_point(size1.5)theme_cl…

HarmonyOS入门

HarmonyOS 系统定义 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。 Harmony提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设置,提供全场景(移动办公、运动…

QCA2066 Linux下5g 6g自适应测试方法

注意事项:如需要重启pc,需要执行rmmod wlan.ko和rmmod wlan_cnss_core_pcie.ko命令,然后重启。测试底板上电过程,需要将底板先插上电源,然后将底板pcie接口插入pc。 5g测试 启动电脑进入红色的标签Advanced options Ubuntu,然后回车 选择Ubuntu,with Linux 4.9.11+的内…

86. UE5 RPG 技能面板实现监听数据

在上一篇文章里,我们创建了技能面板的控制器,接下来,我们将实现通过控制器绑定委托,来更新显示内容。 更新技能面板应用的技能 我们首先更新技能面板上面已经应用的技能,让其和WBP_Overlay上面一样,可以更…

从零开始掌握tcpdump:参数详解

Linux tcpdump命令详解 1. 语法 tcpdump [-adeflnnNOpqStvxX] [-c <数据包数目>] [-dd] [-ddd] [-F <表达文件>] [-i <网络界面>] [-r <数据包文件>] [-s <数据包大小>] [-tt] [-T <数据包类型>] [-vv] [-w <数据包文件>] [输出数…

https执行过程,特点,作用

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

免费的短剧机器人,一键获取资源,每日自动更新,自动转存+定时删除!

今天分享一个免费的短剧机器人&#xff0c;配合网盘拉新可实现变现的项目&#xff01;可以轻松实现全自动化&#xff0c;解放双手&#xff01; 具体怎么实现&#xff0c;我们往下看&#xff1a; 我经常说&#xff0c;想赚钱&#xff0c;离不开人性! 短剧为啥火呢&#xff1f;…

深入学习并发编程中的synchronized

第一章:并发编程中的三个问题 可见性 可见性概念 可见性( Visibility ):是指一个线程对共享变量进行修改,另一个先立即得到修改后的最新值。 可见性演示 案例演示:一个线程根据 boolean 类型的标记 flag , while 循环,另一个线程改变这个 flag 变量的值,另 一个线…

【C++BFS算法 二分查找】1631. 最小体力消耗路径

本文涉及知识 CBFS算法 C二分查找 LeetCode1631. 最小体力消耗路径 你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights &#xff0c;其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) &#xff0c;且你希望去最右下…

【无标题】智能加速计算卡设计原理图:628-基于VU3P的双路100G光纤加速计算卡 XCVU3P板卡

基于VU3P的双路100G光纤加速计算卡 一、板卡概述 基于Xilinx UltraScale16 nm VU3P芯片方案基础上研发的一款双口100 G FPGA光纤以太网PCI-Express v3.0 x16智能加速计算卡&#xff0c;北京太速科技该智能卡拥有高吞吐量、低延时的网络处理能力以及辅助CPU进行网络功…

【深入探秘Hadoop生态系统】全面解析各组件及其实际应用

深入探秘Hadoop生态系统&#xff1a;全面解析各组件及其实际应用 引言 在大数据时代&#xff0c;如何高效处理和存储海量数据成为企业面临的重大挑战。根据Gartner的统计&#xff0c;到2025年&#xff0c;全球数据量将达到175泽字节&#xff08;ZB&#xff09;&#xff0c;传…

07 输入捕获和编码器接口

前言 前面介绍了定时器和输出比较&#xff0c;这一节主要介绍一下输入捕获测量输入频率和PWM占空比&#xff0c;然后介绍一下编码器接口。 一、输入捕获 1.什么是输入捕获 当输入的引脚有指定电平跳变时&#xff0c;会将计数器CNT中的值保存在CCR中&#xff0c;这个就称为输…

JDK 1.8从下载、安装、配置、以及检查是否安装成功,最详细教学教程

参考&#xff1a; JDK1.8下载、安装和环境配置教程(2024年6月5日)-CSDN博客 以下所有步骤&#xff0c;jjycheng作者亲测,所以截图是我自己截取的&#xff0c;和原文略有不同。这也是为什么我可耻的选择“原创”的原因。。。哈哈。。。 一、下载安装包 链接&#xff1a;https:/…

pycharm安装与配置Pyqt5

pycharm安装与配置Pyqt5 1、创建项目、虚拟环境 打开pycharm&#xff0c;File->New Project 2、安装pyqt5库 在pycharm下方Terminal终端窗口输入&#xff1a; pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5-tools -i https://pypi.douban.c…

【C++】简约与清晰的编程艺术

C编程的艺术&#xff1a;简约与清晰的实践之道 一、基础之美&#xff1a;基本类型与数据结构的力量二、函数与库类的艺术三、简约与清晰的实践之道 在C这一既古老又充满活力的编程语言世界里&#xff0c;程序员们常常面临着一个重要的选择&#xff1a;是追求代码的极致抽象与封…

【Elasticsearch】Elasticsearch的分片和副本机制

文章目录 &#x1f4d1;前言一、分片&#xff08;Shard&#xff09;1.1 分片的定义1.2 分片的重要性1.3 分片的类型1.4 分片的分配 二、副本&#xff08;Replica&#xff09;2.1 副本的定义2.2 副本的重要性2.3 副本的分配 三、分片和副本的机制3.1 分片的创建和分配3.2 数据写…

发送邮件API接口的安全性保障措施有哪些?

发送邮件API接口的性能如何评估&#xff1f;API接口的使用方法&#xff1f; 发送邮件API接口已经成为了许多应用和服务的核心功能之一。确保发送邮件API接口的安全性对于保护用户隐私和数据完整性至关重要。AokSend将详细探讨发送邮件API接口的安全性保障措施。 发送邮件API接…

查找算法:线性查找,golang实现

目录 前言 线性查找 代码示例 1. 算法包 2. 线性查找代码 3. 模拟程序 4. 运行程序 循环次数 假如目标值正好在数组中的第一位 假如目标值正好在数组中的第五位 假如目标值正好在数组中的最后一位 假如目标值不在数组中 线性查找的思想 1. 顺序遍历 2. 比较 3.…

使用GPT-4插件增强LLM的功能

文章目录 GPT-4插件概述插件清单OpenAPI规范描述GPT-4插件 尽管包括GPT-4在内的LLM在各种任务上都现出色,但它们仍然存在面有的局限性。比如,这些模型只能从训练数据中学习,这些数据往往过时或不造用于特定的应用。此外,它们的能力仅限于文本生成。我们还发现,LLM不适应于…