摘要
- Sketchpad 的实例引用主图,并用自己的位置、尺寸和旋转来显示;它不是一份可独立编辑的完整复制品。
- 主图可以继续包含实例,因此显示过程会沿层级递归展开,并逐层合成变换。
- 修改主图会改变所有依赖实例的外观,但这只说明软件中的共享定义,不足以证明图纸已制造、约束已齐备或物理系统一定正确。
先画一个六边形,再把七个六边形实例连成一组,然后把整组继续作为实例调用。若把最初的六边形改成半圆,整片图案立刻改变,原有的组合结构却仍然保留。Sutherland 用这个例子把一个今天仍容易混淆的问题说得很清楚:屏幕上出现很多相似图形,不代表存储中存在很多彼此独立的副本。
实例保存的是引用和变换
Sutherland 的 MIT 博士论文把可复用的子图称为某个“master picture”的“instance”。实例之所以能用很小的存储块表示复杂图形,是因为它不重复保存主图里的每一条线、每一个圆弧和每一层子图;显示时,程序回到主图查找内部结构。
引用同一个主图,并不意味着实例处在同一个位置。论文用四个数表示实例的中心,并把显示尺寸与旋转角的正弦、余弦组合起来。由此,同一主图的两个实例可以有不同坐标、不同大小和不同朝向。共享的是结构定义,不是页面上的绝对几何。
论文还严格区分“实例”和“副本”。实例作为一个整体保留身份,内部结构固定;删除时只能整体删除。定义图被复制以后,复制结果不再保持这种整体身份,其中的部件可以分别修改或删除。Sketchpad 甚至提供逐层“拆解”实例的办法,把共享实例转成可以独立处理的副本。两者不是界面上的近义词,而是两种不同的数据关系。
层级使一次修改走得更远
主图本身也可以包含实例。显示一个外层实例时,Sketchpad 必须沿引用进入主图;若再次遇到实例,就继续向内展开,直到找到不再包含实例的基本图形。每向下一层,程序都要把该层的位置、尺寸和旋转加入已有变换;返回上一层时,再恢复先前状态。
这套机制让小符号能够组成模块,模块继续组成更大的装配图。上层只需保存“这里使用了哪个定义以及如何摆放”,不用知道下层的全部细节。论文把“子图嵌套子图,层数可按需要增加”列为 Sketchpad 的通用递归能力。
不过,文献没有把递归写成万能能力。当时的实例值不能直接表达镜像,左右手图形要分别处理;循环引用也需要阻止无限展开,因为递归实例未必越来越小,可能反而越来越大。系统的价值恰恰来自它明确说明了实现范围。
传播外观,不传播现实保证
Sketchpad 不只存像素或线条外观,它还记录拓扑关系和约束。移动多边形的一个顶点,相邻边会跟随移动;附着点可以让导线继续连在符号上;约束可以要求等长、平行、垂直或保持特定相对位置。这让计算机图形不同于纸面留下的一道碳迹。
但系统只能处理已经表达出来、并且能够同时满足的条件。Sutherland 在论文中谈到,若把材料、成本等设计条件加入约束词汇,计算机将来可以协助得到更可靠的设计。这个条件句不能倒过来解读成 1963 年的 Sketchpad 已经验证了所有工程要求。
一组实例可能完全同步,却共同继承了错误的主图。一个参数化模型可能内部一致,却没有包含加工公差。屏幕上的连杆可能顺畅运动,却没有经过真实载荷测试。绘图机输出纸张,也不等于任何零件已经制造。定义传播证明来源和依赖,不证明现实世界的结果。
贡献边界同样需要保留
Sketchpad 是 Sutherland 的论文和实现。Claude E. Shannon 是论文导师;致谢还记录了 Marvin Minsky 的建议、Steven A. Coons 与 Douglas T. Ross 提供的时间和思想,以及 MIT Lincoln Laboratory 的大力支持。
Wesley A. Clark 与 Jack L. Mitchell 让 Sutherland 能够使用 TX-2,并协助提供专用设备。Sutherland 后来回忆,Clark 设计 TX-2 时加入的多项特性非常适合交互式研究。在 Computer History Museum 的口述史中,他把 Coons 的作用描述为鼓励,谈到自己常与 Ross 讨论结构和多分量项目,也记得 Shannon 在直线功能之外推动他实现圆。
这些材料既不支持“完全孤立的天才”叙事,也不支持把作品改写成集体署名。准确的做法是分别记录作者、导师、机器设计者、技术讨论者和机构支持者的证据范围。
从主图关系到依赖收据
现代系统若想让共享定义可审计,至少应保留主图的稳定身份和版本、完整实例路径、逐层合成后的位置/尺寸/旋转、附着点与约束状态、触发更新的变更、受影响输出清单,以及每项输出的验证结果。
制造、仿真或物理测试记录还应绑定到确切版本,而不是只写一个族名或模板名。否则,九个同时更新的输出可能被误认为九份独立证据,实际却只是同一个未经验证的来源被重复显示。
Sketchpad 没有提供今天所需的完整审计收据。它提供了提出这一要求的根本理由:共享定义让维护更高效,也把一次修改的影响面扩大到整棵依赖树。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
