晚上九点,三号楼地下机房。
门是铁制的,很厚,刷着深灰色的防锈漆。
门上挂着一块白底红字的牌子:“计算机房重地,非请勿入。”
陆怀民到的时候,门已经开了。
一个五十多岁的瘦削男人站在门口,他是专门管理这台计算机的副科长徐海,显然是得到了吩咐,提前准备好了。
“你就是陆怀民?”他打量着眼前这个年轻人,目光里带着审视,也带着一丝好奇。
“徐科长好。”
“叫我徐工就行。”他侧身让开路,“进来吧。韩工跟我说了,每天四小时,九点到一点。可以早走但别超时,我一点准时关机,要做保养。”
“规矩都知道了吧?”徐工说着,走到控制台边,翻开一个用铁环装订的登记本:
“进出登记,工作内容简要记录。不能带走任何存储介质,包括你脑子里记的程序流程,出去前要在我这里口头复述并记录关键思路存档。这是保密要求。
“明白,徐工。”陆怀民点头,在登记本上认真写下自己的姓名、单位、进入时间以及事由。
徐工看了一眼,没说什么,指了指控制台前那把厚重的木椅。
“坐吧。机器已经预热好了,系统在监控状态,按那个红色大按钮,输入'BASIC'或'FORTRAN’回车,就能进入编程环境。提醒你一句,”他顿了顿,语气郑重了些:
“这机器金贵,每秒两百万次不假,但内存就512K,编程空间有限。写程序要精炼,调试要小心,别写死循环,万一跑飞了伤机器,你我担待不起。’
“谢谢您的提醒,我会注意的。”陆怀民坐下,手指悬在键盘上方。冰凉的键帽触感让他心神一定。
他按下红色按钮,显示器亮起,出现几行简短的启动信息。
他键入“FORTRAN”,回车。
屏幕刷新,出现了一个简洁的提示符“READY”,和一个闪烁的光标。
这一刻,1979年的国产尖端计算机,向他敞开了最原始也是最核心的交互界面。
没有操作系统桌面,没有图形界面,只有一行行输入的指令。
陆怀民的手指悬停在键盘上方。
他没有急于输入,而是先闭上了眼睛,在脑海中将过去两天反复推算的流程又快速过了一遍。
坐标定义、矩阵变换、投影计算、绘图循环......
然后,他睁眼,敲下了第一行代码。
接下来的四个小时,是无声的战斗。
第一个晚上,他勉强搭建起了程序的骨架,定义了几个立方体的顶点,并让它们以极其笨拙的方式“旋转”——实际上只是坐标的简单加减,图形在屏幕上扭曲变形,完全看不出立方体的样子。
但陆怀民没有气馁。他知道第一步迈出去了。
第二天晚上,他引入了真正的三维旋转矩阵。投影公式修正了三次,才让图形看起来不那么扁平。
第三天,他加入了第二个,第三个简单几何体,并开始编写判断它们之间最小距离的算法。
内存开始报警,他不得不精打细算,合并数组,优化循环。
一周时间,在每日夜深人静的四小时里飞快流逝。
当陆怀民第七次坐在控制台前时,他面前的程序已经初具雏形。
它可以定义几个基本形状的“零件”,赋予它们粗略的尺寸,将它们按照设定的位置“装配”起来,并通过不断地旋转视图,用高亮线条标出那些靠得太近,可能发生干涉的区域。
计算还很粗糙,精度只到零点一毫米量级,图形全是线框,没有遮挡,没有光影,简陋得如同儿童涂鸦。
但这就是一个雏形。一个能在计算机里,用数字和逻辑,而非纸张和想象,来构建和检验机械结构的雏形。
陆怀民将它命名为“GD-0.1”————“几何设计-初版”。
按陆怀民后世的眼光来看,它的难度和完成度略高于后世计算机系的本科设计。
他一周时间做到这一步,在1979年的环境下,还是相当有天赋的。
但陆怀民知道,这离真正的“辅助设计”还很远。
它更像一个可交互的,能进行粗略空间占位检查的“电子沙盘”,而非设计工具。
“或许......可以先从二维参数化开始?”一个新的想法在他脑中成形。
三维直接交互太难,但可以先在二维剖面上,实现尺寸驱动图形的变化。
这更接近工程师绘图板上的工作模式,也更容易验证。
接下来的一周,陆怀民调整了方向。
他利用GD-0.1的基础图形功能,开始构建一个独立的、更专注于二维平面参数化绘图的模块。
他定义了“点”、“直线”、“圆”、“圆弧”等基本图元,并赋予它们“长度”、“半径”、“角度”、“坐标”等属性。
最关键的一步,他编写了一个简单的“约束解析器”,能够处理“水平”、“垂直”、“相切”、“距离等于”、“点在线上”等最基本的几何约束,并允许将某个尺寸(如一个圆的半径,或两条平行线的间距)定义为“驱动参数”。
这个过程同样艰难。
内存限制逼得他将数据结构和算法精简到极致。
又是一个周三的深夜,程序有了突破性进展。
陆怀民成功地将一个简单的法兰盘连接件二维剖面图“参数化”了。
他定义了法兰外径、螺栓孔中心圆直径、孔数、法兰厚度等几个关键参数。
“徐工,您来看看这个。”陆怀民叫住了正在一旁检查磁带机状态的值班员。
徐工走过来,看着屏幕上那个由绿色线条构成的,略显粗糙但结构分明的法兰图形。
“这是个法兰盘剖面,对吧?”徐工是老师傅,一眼就认了出来。
“对。您看这儿,”陆怀民指着屏幕侧边显示的几行参数,“这是它的几个主要尺寸。现在......”
他双手放在键盘上,谨慎地输入修改命令,将“孔数=4”改为了“孔数=8”,然后按下了执行键。
屏幕上的图形闪烁了一下,然后,在徐工惊讶的目光中,图形开始了“自动”更新:
原有的四个螺栓孔之间,精准地插入了四个新的圆孔,均匀地分布在新计算出的螺栓孔中心圆上。
与孔位相关的中心圆标注线也自动延长,旁边的尺寸标注数字从“4-13”刷新为“8-13”。
整个图形看起来,就像被一只无形而的手,瞬间按照新的规则重新绘制了一遍。
虽然刷新速度因为大量的重复计算而有些慢,虽然图形依旧是简陋的线框,但那个“自动变化”的过程,清晰无误。
而且远快于手绘。
“这……………”徐工凑近屏幕,又看了看旁边桌子上陆怀民手绘的原版图纸,对比了一下:
“它......它自己就好了?你说的孔数?”
“可以这么理解。”
“这比手绘快多了!”徐海露出惊讶的神色。
“现在还不快,因为硬件限制。”陆怀民解释:
“但原理对了。将来计算机快了,内存大了,就能画复杂的图,甚至三维模型。
他调出参数化设计的部分代码:
“你看这里,定义了一个轴类零件的参数:直径、长度、键槽尺寸、倒角尺寸......改一个参数,整个零件图自动更新。”
他演示:把直径从30改成40,屏幕上的轴立即变粗了。
“厉害啊!”徐海惊叹。
在徐海的认知中,计算机通常用于复杂数学运算,他还是第一次见识到计算机居然还能用于绘图和设计。
如果以后能普及开来,这能提高多少效率?
陆怀民保存了程序,命名为“GD-P1”(几何设计-参数化第一版)。
这个系统的复杂度,大约相当于后世研究生阶段的课程设计,但从零到一的每一步,都依赖于创造者将工程问题完美抽象,并克服重重问题的能力。
因为现在可不像后世有许多开源代码可以参考。
这种能力,换言之,叫创新能力。
几天后,一份电报从省国防工办发到了八二七厂。
七月初,山里的天闷得像个蒸笼。
午后的技术科会议室,吊扇“嗡嗡”地转着,却揽不动一丝凉风。
沈一鸣坐在靠窗的位置,衬衫的领口解开了两颗扣子,手里拿着那份刚由厂部通讯员送来的电报,反反复复看了三遍。
电报是省国防工办发来的,用的是明码,但措辞简短而明确:
“八二七厂:
你厂六月二十一日关于计算机辅助设计技术攻关的请示收悉。经研究,答复如下:
一、同意你厂在确保‘六○一’项目主进度前提下,开展计算机辅助设计技术探索。
二、你厂提出的技术支援请求,已协调落实。经了解,科学院计算研究所设有计算机图形学研究组,其负责人赵远航(副研究员)同志,是国内最早从事该领域研究的学者之一。
三、已与赵远航同志取得联系。他愿意参与该项目的攻关,他和研究生共二人,预计七月五日抵厂。接待事宜,你厂妥为安排。
四、此项探索意义重大。若取得突破,请及时上报。
皖省国防工业办公室
一九七九年七月三日”
沈一鸣把电报轻轻放在桌上,摘下眼镜,用拇指揉了揉眉心。
电报是昨天下午到的,今天早上才由机要通讯员送到他手里。他抬起头,看向坐在对面的韩维义。
“老韩,人明天就到。”
韩维义点点头,脸上没什么意外的表情,反而有种“终于来了”的释然。
随电报发来的还有一份简历。
韩维义拿起简单看了看。
赵远航,科学院计算所副研究员,三十八岁,六六年清华毕业,学的是计算数学,毕业后直接分到计算所。
七零年评上副研究员,搞了十几年计算机图形学,在国内算是这个方向最早的一批人。
“图形学?”韩维义对这个词有些陌生。
“就是研究怎么让计算机显示图形、处理图像的。”沈一鸣解释道,“咱们现在用的这台DJS-183,能画简单的点和线,靠的就是他们那帮人早些年打下的底子。不过——”
他顿了顿,语气里多了几分感慨:
“不过这个方向,在国内一直不太受重视。计算机所那边,主要精力都放在大型科学计算、操作系统、编译系统这些硬”活上。图形学在工程上应用目前极少......很多人觉得是花架子”,是“不务正业”。赵远航在计算所待了十
几年,应该一直坐冷板凳,没出过什么大成果,副研究员评了十年了,也没见动。”
韩维义沉默了一会儿,点了点头:
“能理解。国家现在最缺的是能算原子弹、算导弹轨迹的计算机,是能提高生产效率的自动控制系统。画图......确实显得没那么急。”
“可咱们现在就需要这个。”沈一鸣说:
“怀民这两天做了一套程序,思路是对的,但缺了最关键的图形处理技术。线框图只能看个大概,真正的三维设计,得能分前后,能看遮挡,能算阴影。这些,咱们一窍不通。赵远航他们来了,正好补上这块短板。”
“当然,解决这次的问题是次要的。若是后续能在这次项目的基础上,做出一个功能完整的CAD系统,这才是大成果。”
韩维义点点头。
他虽然投身生产一线多年,也知道科研上的突破其实是可遇不可求。
七月五日,下午两点。
一辆军绿色的吉普车驶入八二七厂大门,在技术办公楼前缓缓停下。
车门打开,先下来的是个三十七八岁的男人。
个子不高,瘦削,穿着一件白色短袖衬衫,袖子挽到肘部,露出精瘦的小臂。
鼻梁上架着一副黑框眼镜,镜片很厚,镜框有些旧了,但很有学者的气质。
他拎着一个黑色人造革提包,站在车边,眯着眼看了看四周的建筑,又抬头望了望天。
山里的阳光很烈,他下意识地抬手挡了挡。
跟在他后面下来的是个二十出头的年轻人,应该是他的学生,同样瘦,戴眼镜,背着一个鼓鼓囊囊的帆布书包,手里还抱着一个用报纸裹着的方形物体,看样子像是一摞书。
韩维义和沈一鸣已经等在楼门口了。见人下车,两人快步迎了上去。
“是赵远航同志吧?”韩维义伸出手,“一路辛苦,我是八二七厂总工程师韩维义。这位是科大精密机械系的沈一鸣教授,项目技术总负责人。”
赵远航伸手握住,他的手心有薄茧,是常年敲键盘留下的。
“赵远航。”他自我介绍得很简洁,带着明显的北方口音,“这是我带的研一学生,刘明。”
刘明连忙上前,微微躬身:“韩工好,沈教授好。”
寒暄了几句,韩维义引着两人往楼里走。
“赵研究员,住处已经安排好了,在招待所二楼,和沈教授他们一层。条件简陋,多包涵。”韩维义边走边说:
“项目的情况,省国防工办应该跟您简单介绍过了。咱们这个项目,时间紧,任务重,您来了,我们心里就踏实了。”