简介:TCPCA 1001-2022《电子电路术语》团体标准正式PDF版,由中国电子电路行业协会发布,面向电子电路设计、制造、测试与维护等环节的工程师、技术管理人员及相关专业师生。标准以统一行业语言为目标,系统界定了基础术语、设计术语、基材术语和制造术语,内容覆盖电子电路与印制电路板的定义,设计文件与电路板结构、尺寸基准、外形导线、孔与盘、电气特性,基材种类与基板结构、金属箔与树脂材料,以及照相制版、光致成像、印刷成像、蚀刻、阻焊、多层压制、钻孔加工、成形加工、金属化孔与电镀等制造工艺词汇。查阅该PDF可准确理解“电路图、组件、焊盘、金属化孔”等关键概念,规范技术交流与文档撰写,减少因术语歧义导致的协作成本。资源为单个PDF文件,大小5.33MB,携带与存档均很方便,目前已有90人学习浏览。适合需要系统掌握电子电路行业术语、参与标准制定或编写技术文档的专业人群,该标准目录结构完整,从基本术语到制造工艺逐层展开,便于按需查阅。
1. 一份术语标准,值得工程师把它当成工具书而不是资料
评审会上同一块板,设计叫“通孔”,工艺叫“贯孔”,客户图纸上写“via hole”;三方都没错,但对不上。TCPCA 1001-2022 电子电路术语这份团体标准,就是用来收拢这类命名分歧的:把电子电路领域的专有名词收进一个可查、可引用、可追溯的体系。
它适合 PCB/PCBA 设计、硬件研发、工艺与质量、技术翻译这几类人,平时查词,评审时当判据,写中英文对照表时当唯一依据。PDF 只是载体,真正有价值的是里面条目的组织方式,以及你能否把它变成团队每个人都能用的检索工具。
2. 看懂 TCPCA 1001-2022 的编排逻辑,才知道电子电路术语该挂在哪里
2.1 T/CPCA 前缀的含义:团体标准和国标、行标怎么分工
正式编号写作 T/CPCA 1001-2022,T/ 是团体标准的统一代号,CPCA 指中国电子电路行业协会。团体标准的定位是补空白、贴近产业现状,通常比国标更早覆盖新工艺和新器件。编号里的 1001 是协会标准序列号,2022 是发布年份。和 GB/T 最大的区别在约束力:团体标准在协会体系内被推荐采用,只有被合同、图纸或采购规范明确引用后,具体条文才对当事方产生约束。读这份标准时先分清两类内容——定义性条文描述概念,要求性条文规定数值和方法。术语标准属于前者,它不规定电气参数,只规定名词的含义和边界。
拿到 PDF 第一步确认版本页,用命令行先看前三页:
pdftotext -f 1 -l 3 "TCPCA 1001-2022 电子电路术语.pdf" - | head -40-f和-l分别指定起始和结束页,-表示输出到标准输出而不是写文件。重点看前言里有没有“本标准代替……”字样。如果有旧版,术语编号和索引都可能变,引用时必须写全“T/CPCA 1001-2022”并带年份,漏掉年份评审时对方可以用另一版本来质疑依据。
2.2 术语条目的通用骨架:编号、中文、英文、定义、注释
术语条目不是随手写的中英对照表,它按照 GB/T 20001.1《标准编写规则 第 1 部分:术语》组织,每个词条由五类元素构成:
| 构成元素 | 作用 | 查词时的用途 |
|---|---|---|
| 编号 | 条目在标准内的唯一锚点 | 写引用、做交叉标注 |
| 中文术语 | 规范用名 | 设计文档优先使用它 |
| 英文对应词 | 与外文资料对照的钥匙 | 对照 IPC 文档、做翻译 |
| 定义 | 概念的内涵与外延 | 判断两个叫法是不是同一个概念 |
| 注释/示例 | 补充边界情况 | 识别容易误用的场景 |
以 PCB 板块常见词条为例,“焊盘(land)”“过孔(via)”“阻焊层(solder mask)”在各类术语标准里都按这个骨架展开。电子电路术语覆盖范围很广,从无源器件、封装互连到信号完整性、表面处理工艺都会出现。查词不能只看中英文对照,因为同一个英文词在不同语境下定义完全不同:via 在互连语境指金属化通孔,在信号完整性语境强调孔结构对阻抗的影响,区分语境靠的就是定义那一句话。团队里如果为术语打架,把定义原文贴出来比任何争论都有效。
2.3 先看两页再动手:范围和规范性引用文件
PDF 打开后别从头通读,先定位两处。第一处是“范围”,确认这份标准管到哪个边界——是只管设计名词,还是覆盖 PCBA 组装与检验,是否包含图形符号和缩写。第二处是“规范性引用文件”,它列出定义依据的上位标准,常见有 GB/T 20001.1、GB/T 1.1 以及若干 IPC 和 IEC 文件。引用文件决定了术语出处的兼容性:设计文件同时引用 IPC-2221 和 T/CPCA 1001-2022 时,若两者术语冲突,需要在文件里写明谁的优先级更高。
文末索引是第三处容易被低估的内容。中文术语标准通常正文按主题分章节,索引按拼音和英文分别排列。PDF 的索引页如果是文字层,可以直接选中复制,为后续自动化节省大量力气;如果出版社把索引做成了图片层,就得走 OCR,先确认文字层再决定工具链,能省半天时间。
3. 把 TCPCA 1001-2022 的 PDF 变成可检索语料:提取与切分
3.1 用 pdfplumber 按页抽取文本,保留中文排版
术语 PDF 直接靠肉眼检索效率太低,标准正文上百页,查一个词要翻半天。最常见的做法是把文本提取出来,再对结果做结构化切分。工具选型上,pdfminer.six 系的 pdfplumber 比命令行 pdftotext 在中文字体上更稳:CID 字体和复合字形在 pdftotext 下容易输出空字符或乱码,pdfplumber 可以拿到每个字符的坐标,出错时能按坐标重建阅读顺序。
import pdfplumber pdf_path = "TCPCA 1001-2022 电子电路术语.pdf" with pdfplumber.open(pdf_path) as pdf: start = 3 # 页号从 0 起,按实际目录页数调整 for i in range(start, len(pdf.pages)): text = pdf.pages[i].extract_text( x_tolerance=2.0, y_tolerance=3.0 ) if text: print(f"===== PAGE {i+1} =====") print(text)start不能拍脑袋写死:先跑一遍全量页,数清楚目录实际占几页,再把正文首页号填进来。x_tolerance和y_tolerance决定“两个字是否属于同一行”的判定阈值,默认值适合单栏文档;双栏排版出现串行就调大x_tolerance,同一行被拆成两行就调小y_tolerance。先打印前两页正文和原始 PDF 对照一次,确认无损再放全量,这一步只花两分钟,能省掉后面几小时的清洗。
3.2 以条目编号为锚点,把「中文—英文—定义」切成记录
术语正文的每条定义自带编号,行格式通常是“编号 中文术语 英文对应词:定义”,例如“3.1.1 焊盘 land:印刷电路板上用于连接元件的金属区域”。用正则按编号开头切分,把连续文本切成结构化记录:
import re, json pattern = re.compile( r"^(\d+(?:\.\d+)*)\s+([\u4e00-\u9fff][^\n]{1,40}?)\s+" r"([A-Za-z][A-Za-z0-9 ,/()\-]{1,60}?)\s*[::]\s*(.*)$" ) items = [] for line in clean_lines: # clean_lines 是 3.1 输出的按行数组 m = pattern.match(line) if not m: continue items.append({ "term_no": m.group(1), "term_zh": m.group(2), "term_en": m.group(3), "definition": m.group(4), }) with open("terms.json", "w", encoding="utf-8") as f: json.dump(items, f, ensure_ascii=False, indent=2)四个分组依次对应编号、中文术语、英文对应词和定义开头。{1,40}和{1,60}是长度上限,避免把整段文字匹配成术语名。实际执行时必然出现两类假阳性:一类把“注”“示例”这种小标题识别成词条,特征是定义为空或只有冒号;另一类是英文对应词含括号、斜杠时被截断,特征是term_en字段里混进中文。这两种不要试图用一个正则在原地拦下,交给下游按规则过滤更省事。
3.3 提取质量自检:总数、空定义、英文完整性
切分完先别急着落库,用下面三个参数过一遍检查:
| 检查项 | 做法 | 通过标准 |
|---|---|---|
| 条目总数 | 与目录“术语和定义”章节标注的条数对比 | 偏差 ≤ 5% |
| 空定义比例 | 统计 definition 长度为 0 的条目 | 低于 1% |
| 英文词完整性 | 找出 term_en 中混入中文的记录 | 人工抽查后修正 |
最容易出问题的是总数对不上。PDF 里表格跨页时,pdfplumber 可能把表头重复输出,或把一行数据拆成两行,导致少计数和多计数同时出现。处理办法是提取时把页码写入每个条目,回查时按页码定位原始版面,比全文搜索快一个数量级。即使自检没有全过,也不要删掉从 PDF 直接导出的纯文本,留一份当底稿,清洗出错时能随时回溯。
4. 术语落库:建一张能支撑查重、同义词归并与版本追溯的表
4.1 字段设计:比「三列 Excel」多存五样东西
只存中文、英文、定义三列,几十条没问题,到几百条就暴露三个短板:同义词没法归并,标准修订后无法追溯,评审引用时找不到条目编号。用 SQLite 落地,字段这样设计:
CREATE TABLE terms ( id INTEGER PRIMARY KEY AUTOINCREMENT, term_no TEXT NOT NULL UNIQUE, -- 标准内条目编号,引用锚点 term_zh TEXT NOT NULL, -- 中文术语 term_en TEXT, -- 英文对应词 definition TEXT, -- 定义正文 note TEXT, -- 注释/示例 theme TEXT, -- 主题分类:器件/工艺/设计/测试 status TEXT DEFAULT 'active', -- active 或 deprecated synonym_group TEXT, -- 同义词组标识 source_ver TEXT DEFAULT 'T/CPCA 1001-2022' ); CREATE INDEX idx_terms_zh ON terms(term_zh); CREATE INDEX idx_terms_en ON terms(term_en);term_no设 UNIQUE,因为它是标准内的唯一引用锚点,重复导入会直接拒绝。theme按章节主题填,做分类统计;status标记已废弃的叫法,标准修订后旧词只是降级不是删除,历史图纸仍然能对上号;synonym_group存组号而不是直接改term_zh,因为“覆铜”和“铺铜”这两类叫法都可能出现在旧文档里,删除任何一个都会让检索漏词。索引建在中英文字段上,对应两种最常见检索入口:只知道中文名,或图纸上只写了英文。
4.2 幂等导入:按章节事务分批,坏数据只回滚当前组
从 3.2 得到的 terms.json 直接逐条 INSERT,会栽在“一条坏记录拖垮整批”上。常见做法是按章节分组,组内套事务:
import sqlite3, json from itertools import groupby conn = sqlite3.connect("terms.db") data = json.load(open("terms.json", encoding="utf-8")) for no, group in groupby(data, key=lambda x: x["term_no"].split(".")[0]): cur = conn.cursor() cur.execute("BEGIN") try: for item in group: cur.execute( "INSERT OR IGNORE INTO terms " "(term_no, term_zh, term_en, definition, theme) " "VALUES (?, ?, ?, ?, ?)", (item["term_no"], item["term_zh"], item.get("term_en"), item.get("definition"), no) ) cur.execute("COMMIT") except Exception as exc: cur.execute("ROLLBACK") print(f"章节 {no} 导入失败:{exc}")INSERT OR IGNORE配合term_no的 UNIQUE 约束,让同一份 JSON 重复执行也不会产生重复行,整个导入过程幂等。groupby要求数据按term_no排好序,术语 PDF 原本就按顺序排版,提取出来天然有序。theme直接取编号首段,比如以 3 开头的条目归入对应主题章,比人工填写准确且省事。
4.3 查重与归并:判断依据是定义,不是中英文对照
归并最怕误操作。把 A 指到 B,结果 A 出现在几十张历史图纸上,评审时按 B 却查不到 A。先看当前哪些组已经有重复:
SELECT synonym_group, COUNT(*) AS cnt FROM terms GROUP BY synonym_group HAVING COUNT(*) > 1;HAVING COUNT(*) > 1过滤出疑似重复的分组;去掉HAVING则列出全部组的分布,适合检查导入时是否把大量词条错误归到同一组。两条术语是否同义,依据是定义正文而不是中英文对照:两条定义的主语、定语和边界条件一致,才说明描述的是同一个概念。
提示:判断同义不要参考网络词典,网络词典给的是常用义,标准给的是领域定义,两者经常不一致。
归并前先建关联表验证:
CREATE TABLE synonyms ( group_id TEXT NOT NULL, term_id INTEGER NOT NULL REFERENCES terms(id), is_primary INTEGER DEFAULT 0 );把验证通过的组写入synonyms,非主词条在terms.status里置为 deprecated。这样历史数据不动,查询时用 JOIN 能同时命中新旧叫法,评审记录里写“铺铜”也能查到“覆铜”的条目号和定义。
5. 把术语库接进评审:一条命令校验设计文档的用词
术语库建完,真正的价值在评审环节体现。常见的做法是写一个小脚本,扫描评审记录或设计说明,凡出现 status 为 deprecated 的旧叫法,就提示换成规范词条并给出定义出处:
import sqlite3 conn = sqlite3.connect("terms.db") def check_doc(path): text = open(path, encoding="utf-8").read() rows = conn.execute( "SELECT term_no, term_zh, term_en, definition " "FROM terms WHERE status='deprecated'" ).fetchall() for no, zh, en, definition in rows: if zh in text: idx = text.find(zh) print(f"[{no}] {zh}({en})建议改用规范术语") print(f" 定义:{definition[:40]}…") print(f" 上下文:{text[max(0,idx-20):idx+40]}") check_doc("评审记录.md")只查deprecated而非全表,目的是提示评审者此处用词与标准不一致,不纠正所有历史写法。输出带term_no和定义前缀,对方能直接回翻到 T/CPCA 1001-2022 对应条目复核。把check_doc挂到 git pre-commit 钩子上,提交前自动跑一遍,检查不过就拒绝提交。将来标准出修订版,用source_ver字段筛选,能一键列出所有仍引用旧定义的文档,这正是 Excel 三列无法做到的追溯能力。每次评审前跑一下,团队术语一致性靠的就不是记性,而是这一条命令。
本文还有配套的精品资源,点击获取