简介:《国标图号编制方法》是一份面向机械与电气产品设计、标准化及图档管理人员的内部规范文档,主要解决企业产品图号编制口径不统一、装配、部件与零件代号混淆等问题。文档以十进位编号法为主线,系统说明图号可用字符、独立代号原则、多张图纸同代号标注、表格图多规格代号等基本规则,并拆解标准产品、工程产品与试制产品三类图样代号的组成方式,辅以 GGD.1.055.001L、GGD.05001—01L、GGD.S1.055.001L 等实例,帮助读者理解产品名称、设计序号、特征代号、序列号和类别代号的取值与含义;文末特征代号汇编按躯壳、盘屏板、底架、面板等部类分组,便于查用。资源包共1个doc文件,约1.53MB,结构紧凑,适合作为企业标准化培训或设计部门编号参考。已有575人学习。
1. 图纸堆到两万张之后,编号规则比画图能力更早崩
去年帮一家做成套开关设备的公司梳理设计文件,档案柜里躺着两万多张底图,同一块底板在不同项目里有三个名字:有的写“底板-2”,有的写“GGD底板改”,还有的干脆只写了日期。装配钳工拿着 BOM 找件,得先打电话问设计员,设计员再翻聊天记录,一来一回半小时。这不是画图能力的问题,是图号在图纸数量过百之后就撑不住了。这套方案要解决的就是把图号从随手起的文件名,变成一条能被查、能被校验、能被交接的结构化编码:哪个产品、第几次设计、什么特征、第几张、属于哪类图纸,全部在号里说清楚。适合正在编企业设计文件管理规定、做图纸管理系统课程设计,或者要把编号规则写进毕设文档的人,直接拿去改。
2. 编码骨架:字符集、十进位与四类代号的职责划分
动手编规则之前,得先把三条底线定下来:能用哪些字符、每个段位多长、什么情况下必须唯一。这三条定不住,后面写再多条款都是补丁摞补丁。我见过不少企业标准,开头就写“图号应唯一、清晰、便于识别”,听着都对,落地全是扯皮,因为没人说得清“唯一”到底管到零件级还是图纸级。
2.1 允许字符集:把 I 和 O 挡在门外
编号可用的字符就三类:0~9 的阿拉伯数字、A~Z 的英文字母(去掉 O 和 I)、以及短横线、圆点、斜线三个分隔符。
去掉 O 和 I 不是洁癖,是血泪经验。底图打印缩小到 A3 之后,O 和 0 基本上是同一个字形,I 和 1 也一样,车间师傅拿着纸质图核对件号,认错一位就得返工。设计部门如果还要做 OCR 扫描归档,这两个字母的识别错误率会明显高于其他字符,属于典型的给自己埋雷。
三个分隔符要有明确分工,不能混着用。圆点做段与段之间的主分隔,比如GGD.1.055.001L里的三个点把五段切开;短横线专门用于工程编号与序列号之间的连接,比如GGD.05001—01L,看到短横线就知道这是工程产品;斜线留给“共几张、第几张”这类附属标注,别让它出现在主代号里,否则解析时会被误判成层级。
还有一个原文里没写死、但实际一定会出问题的点:大小写。类别代号里 Z 表示总装图、z 表示展开图,只靠大小写区分。这在 Windows 文件名、Excel 单元格、PLM 系统里几乎必然翻车,因为这三处默认都不区分大小写,一个GGD.1.055.001Z存进去再导出来,你根本不知道它原来是总装还是展开。
提示:通常的做法是全部强制大写,展开图改用两位代号(例如 XZ),把唯一的“单字母位”留给总装、分装、焊接、零件、开孔这五类高频图纸。
2.2 十进位编号法落到段位上是什么样子
标准里写“采用十进位编号法”,这句话本身很抽象,得翻译成可执行的定长规则。
十进位的核心是每一位有固定的取值范围,进位关系明确。落到图号上,就是每一段都定长、都在一个封闭区间内取值,段与段之间用固定分隔符隔开。这样做的直接好处是:字符串排序等于业务排序,正则能一次解析出所有字段,程序截取某一位就能判断图纸类型,不用查表。
| 段位 | 取值区间 | 定长 | 作用 |
|---|---|---|---|
| 产品名称 | 型号字母数字组合 | 2~6 位 | 归属产品 |
| 设计序号 | 1~9 | 1 位 | 第几次设计 |
| 特征代号 | 001~999 | 3 位 | 零件功能归类 |
| 序列号 | 001~999 | 3 位 | 同类件流水 |
| 类别代号 | 单字母或双字母 | 1~2 位 | 图纸类型 |
定长还有个隐性价值:编号一旦按字符串排序,001、002、010的顺序天然正确。如果允许1、2、10这种不定长写法,排序结果会变成1、10、2,档案室按号排架时就得多一道人工核对。
特征代号这一段其实是十进位的第二次应用,只是很多人没意识到。三位数的前两位是组号,按 10 递增(00、01、02、04、05……),第三位是组内序号 0~9。也就是说每个组预留十个位置,0 到 8 放具体件,9 统一写“(其他)”兜底。001~009是躯壳壳体组,010~019是盘和屏板组,020~029是底架底盘组,以此类推。看懂这条规律,附表就不是一堆要背的词,而是一张能推的坐标网。
2.3 唯一性:一物一号、一图一号、多图同号
唯一性要拆成三句话,分别对应三种场景。
第一句,每个产品、部件、零件都必须有独立代号。注意这里管的是“对象”不是“图纸”,一个零件不管画几张图,它只有一个对象代号。这条挡住了“同一个件在不同项目里叫不同名字”的混乱。
第二句,同一个对象的图样分多张绘制时,各张都标同一代号,用“共几张、第几张”区分。这是最容易执行走样的一条,很多单位图省事,第二张开始写“同上”,归档时图纸和代号就对不上了。正确做法是每一张图纸的标题栏里都完整写一遍代号,再单独加共页信息,别指望读者去翻上一张。
第三句,表格图里多种规格的零件,每行规格都要有独立代号。表格图本质是“一张图纸承载多个对象”,如果不给每行单独编号,BOM 展开时就没法把某个具体规格的件单独拎出来采购。
还有一个标准里没写、但现场必须有共识的问题:零件改版怎么办。图号标识的是“对象”,版次标识的是“状态”,两者必须分离。改尺寸、改材料、改工艺,图号不动,版次从 A 升到 B;只有当这个件被彻底取消、由新件替代时,才发新图号,旧号作废并进黑名单,永久不许复用。这条不写进制度,三年后一定会出现“新件和老件撞号”的玄学问题。
3. 三类产品代号:标准、工程、试制的段位设计与实例
产品图号不是一套规则打天下。标准产品是自主研发的定型产品,工程产品是跟着订单走的非标设计,试制产品是还没定型的新品,三者的追溯需求完全不同,段位结构必须分开设计,否则就会出现“工程件借用标准件号段”这种把档案搞乱的操作。
3.1 标准产品五段式与类别代号表
标准产品图号的结构是:产品名称 + 设计序号 + 特征代号 + 序列号 + 类别代号,五段之间用圆点分隔。
以GGD.1.055.001L为例拆开看:GGD是产品型号,直接拿型号当产品名称,不再另起中文名;1是设计序号,表示这是该产品的第一次设计;055是特征代号,表示这个零件属于哪个功能组;001是该特征下的第一个件;L是类别代号,表示这是一张零件图。
类别代号建议做成一张封闭清单,不允许自由发挥:
| 代号 | 含义 | 代号 | 含义 |
|---|---|---|---|
| Z | 总装图 | K | 开孔图 |
| F | 分装图 | XZ | 展开图 |
| H | 焊接图 | TM | 图样目录 |
| L | 零件图 | CB | 材料明细表 |
清单封闭的意思是:新增类别必须走变更流程,不能设计员自己造一个B代表“部件图”就用了。类别代号是给全公司看的,一个人造一个新字母,等于给所有人增加一次查表成本。
设计序号这一段有个规则缺口要提前堵上:只留 1 位,取值范围 1~9,那第十次设计怎么办。大部分企业的做法是改成两位,或者在 9 之后切换到字母序列。我一般建议直接扩成两位01~99,一次改到位,别等到第九次改版再来讨论。工程上最贵的事就是改已经发下去的编码规则。
3.2 工程产品:工程编号是可追溯性的命门
工程产品的图号结构是:产品名称 + 工程编号 + 序列号 + 类别代号,段与段之间用圆点,工程编号和序列号之间用短横线。
GGD.05001—01L里,05001是工程编号,前两位表示年份,后三位表示该年第几个工程,05001就是 2005 年第 1 个工程;01是这个工程里的第一个非标件;L是零件图。
工程编号是整个追溯链条的命门。用内部流水号有一个天然缺陷:三年后有人拿着一套图纸问“这是给哪个客户做的”,你得先翻工程台账把05001翻译成项目名,再翻合同。原文里那句注解其实说到了点子上——最好直接用合同号,这样工程从头到尾都有可追溯性。
真要用合同号,得先处理两个现实问题。一是合同号里可能带字母和特殊符号,那就做一次映射:合同号存台账,图号里放一个固定长度的工程编码,两者一一对应。二是合同号长度不统一,放进定长图号里会破坏可解析性,所以工程编码必须自己定长,比如固定 5 位。这两步做完,追溯就是从图号反查台账的一次查询,不用靠人脑记忆。
序列号这里只有 01~99 两位,意味着单个工程最多 99 个非标件。小工程够用,大工程会溢出。通常的做法是溢出后进三位,或者按部件拆分编号。这个上限要写进制度,别等到第 100 个件才发现没号可用。
3.3 试制产品:S 插入的位置和退出机制
试制产品的图号结构是:产品名称 + 试制代号 + 试制序号 + 特征代号 + 序列号 + 类别代号。
GGD.S1.055.001L里,S是试制标记,1是第一次试制。整个结构就是把标准产品的五段式在名称后面插入了S和试制序号两段,其余段位规则完全一致。
这样设计的好处是,试制转定型时,只需要把S和试制序号两段去掉,后面的特征代号、序列号可以原样保留。零件还是那个零件,图号变化最小,BOM 和工艺文件的对应关系不会被大面积打乱。有些单位图省事,试制件直接套用标准件号段,结果试制改了七八轮,标准件号段里混进一堆实物早就没了的图,整理起来比重编还累。
试制代号还承担一个管理职能:它明确告诉采购、工艺、生产,这套图纸不能直接进批量流程。试制件可以用非标材料、可以没有工装、可以不做完整工艺,这些都是成本控制点。S一去掉,意味着这套图已经通过验证,进入定型管理,后续变更要走正式的改版流程。
3.4 用校验脚本把规则钉死
制度写在纸上,执行靠人眼,早晚要出错。图号这种东西,规则清晰、格式固定,最适合用代码卡住。下面这段是我一般会放在编号系统入口的校验脚本,设计员提交图号时先过一遍,格式不对直接打回。
import re # 三套规则按产品类型分开,注意长代号要排在短代号前面, # 否则 TM 会被 T 抢先匹配掉一部分,正则回溯虽然能救回来但可读性差 PATTERNS = { # 标准产品:GGD.1.055.001L "standard": re.compile( r"^(?P<product>[A-Z0-9]{2,6})\." r"(?P<design>[1-9])" # 设计序号 1~9 r"\.(?P<feature>\d{3})" # 特征代号 001~999 r"\.(?P<serial>\d{3})" # 序列号 001~999 r"(?P<cat>TM|CB|XZ|Z|F|H|L|K)$" ), # 工程产品:GGD.05001-01L,短横线两边不留空格 "engineering": re.compile( r"^(?P<product>[A-Z0-9]{2,6})\." r"(?P<project>05\d{3})" # 05001~05999,年份后两位+三位流水 r"-(?P<serial>\d{2})" # 工程内非标件 01~99 r"(?P<cat>XZ|Z|F|H|L|K)$" ), # 试制产品:GGD.S1.055.001L "trial": re.compile( r"^(?P<product>[A-Z0-9]{2,6})\." r"S(?P<trial>[1-9])" # 试制序号 1~9 r"\.(?P<feature>\d{3})" r"\.(?P<serial>\d{3})" r"(?P<cat>TM|CB|XZ|Z|F|H|L|K)$" ), } def parse_drawing_no(code, kind): """解析图号,返回字段字典;不合格直接抛错,不返回半成品。""" code = code.strip().upper() # 统一大写,杜绝 Z/z 混用 m = PATTERNS[kind].match(code) if not m: raise ValueError(f"图号格式不合规: {code} (类型: {kind})") return m.groupdict() def check_unique(code, used): """唯一性检查:同一代号只允许出现一次,作废号也在 used 里。""" if code in used: raise ValueError(f"图号重复或已作废: {code}") return True if __name__ == "__main__": print(parse_drawing_no("GGD.1.055.001L", "standard")) # {'product': 'GGD', 'design': '1', 'feature': '055', 'serial': '001', 'cat': 'L'} print(parse_drawing_no("GGD.05001-01L", "engineering")) print(parse_drawing_no("GGD.S1.055.001L", "trial"))这段代码有三个设计取舍值得说。
一是先strip().upper()再匹配。大小写问题在源头解决,比在正则里写[Zz]干净得多,也顺手把设计员误输的空格干掉。
二是解析失败直接抛异常,不返回一个字段缺失的字典。图号这种东西没有“差不多能用”的中间状态,缺一段就是废号,让它带病入库,后面每一条引用都是错的。
三是check_unique里的used集合要包含作废号。很多人只查“当前有效号”,结果三年前作废的号被新人捡回来重发,档案里就出现两个同号不同物,属于查起来最痛苦的那类 bug。
4. 特征代号汇编:部类、组、序号三层索引怎么建怎么查
附表是整套规则里最厚的一块,也是最容易被当成“抄一遍就行”的部分。实际上附表的设计质量决定了这套编号能不能被人真正用起来——查不到、查得慢、查出来三个都能用,设计员就会绕开附表自己编,规则立刻失效。
4.1 三位特征号其实是十进位的第二次落地
把附表翻开看规律:零件表里000到009全是躯壳、壳体、轴承外壳、端盖这一类;010到019是盘、屏板、圆筒;020到029是底架、底盘、底座;040到049是支柱、撑柱、支架。
看出来了吧,组号按 10 递增,组内序号 0~9,最后一位固定是“(其他)”。这就是十进位编号法在零件分类上的第二次应用,和第 2 章讲的段位定长是同一个思路。
再往上一层是部类。零件表大致分成这么几块:00 基本支撑(躯壳、盘屏板、底架、支柱、侧板隔板、面板、梁、骨架),11 辅助支撑及安装(支撑件、母线夹、角撑件、筋加强板、卡板弯板、板片架板、角板角钢、管),22 传动导向及限动(转轴、套、滑轮、传动件、齿轮、飞轮操纵件、导轨、停挡、减震弹簧、负荷件),33 保护(罩壳、盖、门、栅、盒箱柜、联锁件、封环密封),44 特殊用途,55 导电接触(电缆、导线、触头、母线),77 绝缘,88 包装标志附件,99 紧固件(螺钉、螺栓、螺柱、螺母、垫圈、铆钉、键、木螺钉、钉子)。
零件表和部件表要分开建,不能合成一张。同样是001,在零件表里是躯壳,在部件表里是熔焊或铆接的壳体,两者语义不同。合成一张表的直接后果是查重失效——设计员查001发现被占了,其实占的是另一类对象的号。
4.2 新零件的申请与查重:先归部类,再抢组内坑位
一个新型号上来,设计员面对的第一个问题是“这个件该编什么特征号”。我一般让他们走三步。
第一步,判断对象类型。是单个不可拆的零件,还是由多个零件装起来的部件。这一步走错,后面全错,因为零件表和部件表是两套独立的号段。
第二步,按功能归部类,再归组。比如一块起支撑作用的底板,先进 00 基本支撑,再看它是底架类还是板类——如果它是箱体底部的大板,归050侧板、隔板、端板、底板这一组;如果它是独立安装在基座上的底板,归020底架、底盘那一组。归类靠的是“这个件在结构里干什么”,不是“它长什么样”,同样一块钢板,装在侧面就是侧板,装在底部就是底板。
第三步,在组内找空位。组内 0~8 是具体件号,按顺序往后排,9 是“(其他)”兜底。这里有个使用纪律:009不能当垃圾桶。实际项目里我见过一个009里塞了二十多种完全不相干的杂件,查重等于没查,最后谁也不知道某个新件到底有没有编过号。
组内 0~8 用满了怎么办?两种做法。一是把这个组拆成两个组,比如050拆成050(侧板、壁、底)和051(边板、边缘),重新分配。二是新建一个组号,跳到下一个十位。前者更整齐,但要做一次存量数据的迁移;后者不动老数据,代价是附表越来越长。我的建议是,当某个组的“其他”超过五种件时,就该考虑拆组了,这时候还没到必须动存量数据的地步。
4.3 用一张表管住附表
附表用 Excel 管,几十行还行,上千行就开始出问题:多个人同时改,版本对不上;查重靠肉眼,容易漏;想按关键字搜“底板”,搜出来七八条不知道选哪个。落到数据库里就干净多了。
CREATE TABLE feature_code ( id INTEGER PRIMARY KEY, kind CHAR(1) NOT NULL, -- P=零件 A=部件,两张附表分表存 dept_code CHAR(2) NOT NULL, -- 部类:00 基本支撑 / 11 辅助支撑 / 22 传动 ... group_code CHAR(2) NOT NULL, -- 组:05 侧板隔板 / 20 底架 / 40 支柱 ... feat_code CHAR(3) NOT NULL, -- 三位特征号,前两位=组号,末位=组内序号 feat_name VARCHAR(64) NOT NULL, status CHAR(1) DEFAULT 'A',-- A 可用 / F 作废 / R 预留 remark VARCHAR(200), UNIQUE (kind, feat_code) -- 零件、部件各自一套号,互不冲突 ); -- 查重:给"底板"找一个可用的特征号 SELECT feat_code, feat_name FROM feature_code WHERE kind = 'P' AND status = 'A' AND feat_code LIKE '05%' -- 先锁定侧板隔板组 ORDER BY feat_code; -- 体检:找出某个组里已经用了几个坑位,还剩几个 SELECT group_code, COUNT(*) FILTER (WHERE status = 'A') AS used_slots, 10 - COUNT(*) FILTER (WHERE status = 'A') AS free_slots FROM feature_code WHERE kind = 'P' GROUP BY group_code HAVING COUNT(*) FILTER (WHERE status = 'A') >= 8; -- 快满了,提前预警表结构上有两个点是我踩过坑之后加上的。
UNIQUE (kind, feat_code)而不是只约束feat_code。原因前面说过,零件和部件是两套独立号段,同一个三位数在两张表里各有一个含义。
status字段设三个值而不是布尔值。R预留是给“这个坑位已经规划好给某类件,但实物还没设计出来”的情况用的,设计评审时先把号占住,免得两个项目组同时抢同一个位置。没这个状态,就只能靠人盯,一忙就忘。
最后那条HAVING查询是给附表维护人用的定期体检。组内坑位用到 8 个就该预警了,等到用满再处理,通常已经是项目催着要号的时候,只能临时塞进“其他”。
5. 避坑与排查:图号管理里最容易翻车的五个点
规则写得再漂亮,落地时总有几处会崩。下面这五条是这类项目里出现频率最高的,每条都按现象、原因、解决三步说,方便对着自查。
5.1 大小写混用导致总装图和展开图撞号
现象:系统里导出的图纸清单,同一个图号出现两次,一次末尾是Z,一次末尾是z,打开看一张是总装、一张是展开。
原因:类别代号里 Z 和 z 只靠大小写区分,而 Windows 文件名、Excel 单元格、多数 PLM 系统默认不区分大小写,存储和导出过程中被自动归一化了。
解决:取消大小写区分,展开图改成两位代号(如XZ),同时在校验脚本入口统一upper()。存量数据做一次全量扫描,把所有末位小写 z 的图号列出来,人工确认后批量替换,替换记录留档。
5.2 设计序号第九次改版之后无号可用
现象:某个定型产品迭代到第十次,设计员在GGD.9.055.001L后面没地方加序号了,随手写成GGD.10.055.001L,段位长度变了。
原因:设计序号只留一位,取 1~9,制度里没定义第 10 次怎么处理。
解决:短期先扩成两位01~99,一次改到位。存量数据保留原格式,新号按两位生成,在解析脚本里用\d{1,2}兼容两代格式,过渡期结束后统一。这类“改已经发下去的编码规则”的事,越早做成本越低。
5.3 工程编号用内部流水,追溯断链
现象:客户投诉某台柜的某个件有问题,拿着图号去查,工程编号05237查出来是“2005 年第 237 个工程”,但台账里那一行只写了项目简称,没有合同号,客户到底是谁得再翻两年前的邮件。
原因:工程编号只编了内部流水,没有和合同号建立映射,导致图号无法独立完成追溯。
解决:建立工程编号与合同号的对照表,图号里存编码,台账里存映射,查询时一次 join 就能拿到客户信息。新工程从建立台账那一刻起就强制填合同号,老工程做一次补录,补不上的标注清楚,别装作没有。
5.4 多张图纸只标一张代号,其余写“同上”
现象:一个大型焊接件画了四张图,第一张写了完整代号,后三张标题栏写“同上”,归档扫描后四张图分开存放,后三张成了无主图纸。
原因:图省事,加上设计员默认“这一套是一起交的”。
解决:制度里写死“每张图纸标题栏必须完整标注代号”,另加“共 X 张、第 Y 张”的附属标注,两者不冲突。检查方式很简单,批量扫标题栏,凡是代号字段为空的直接退图。
5.5 表格图多规格共用一个号,BOM 展不开
现象:一张表格图里列了五种规格的安装板,图号只有一个,BOM 里却要拆成五行,采购下单时对不上具体是哪一行。
原因:表格图按“图纸”编号,没有按“对象”编号,违反了一物一号。
解决:表格图里每一行规格单独给代号,通常做法是在主代号后加规格序号,或者直接在特征代号段内区分。BOM 引用时必须带上具体规格号,不能只写主图号。
6. 验收:拿一份编号体检表把全流程跑一遍
规则定完,怎么证明它是能用的,而不是一份漂亮的文档?我的做法是抽三类真实图号各二十条,跑一遍完整链路:格式校验、唯一性校验、BOM 反查、档案定位。全程不需要人工介入,能跑通才算交付。
| 检查项 | 检查方法 | 合格标准 |
|---|---|---|
| 格式合规 | 正则批量校验 | 100% 通过,失败项有明确错误提示 |
| 唯一性 | 全量查重,含作废号 | 零重复、零复用 |
| 段位可解析 | 随机抽 20 条拆字段 | 每段都能对上业务含义 |
| 类别代号合法 | 比对封闭清单 | 无自造字母 |
| 多图纸同号 | 抽查大件图套 | 每张标题栏都有完整代号 |
| 表格图拆分 | 抽查 BOM 展开 | 规格行能单独定位到号 |
| 追溯闭环 | 从图号反查客户 | 一次查询出结果,不靠人脑 |
跑这张表的时候有个技巧:先跑存量数据,别先跑新号。存量数据里藏着的问题才是真问题,新号是你按规则生成的,当然合规。存量扫描出来通常是一地鸡毛,正好用来证明这套规则的必要性——答辩和评审时,这张“整改前”的问题清单比任何理论都更有说服力。
答辩环节,评审老师最爱问的其实就三件事。第一,“你这个编号为什么这么设计,换一种行不行”,回答时别背标准条款,讲取舍:为什么去掉了 O 和 I,为什么设计序号要扩两位,为什么工程编号要用合同号映射。第二,“唯一性怎么保证”,这时候把查重脚本和作废号黑名单拿出来讲,比空谈原则有用。第三,“这套东西怎么落地”,讲你打算怎么和现有的 PLM 或 Excel 台账对接,哪怕只是设想,也要说清楚数据从哪进、从哪出。
我一般还会准备一个反例。比如拿那个009塞了二十多种杂件的组出来讲,说明“其他”兜底被滥用之后会发生什么,再讲你打算怎么拆组。评审看的不是你有没有做完美,而是你有没有真的想过它会在哪里坏。
从那以后我每次接这类标准化项目,都会强制先把校验脚本写出来,再回去改文档。因为规则写得再顺,跑一遍数据就知道哪条是纸上谈兵。希望帮到你。
本文还有配套的精品资源,点击获取