0I:10.13374/i.issm1001-053x.1992.04.020 第14卷第4期 北京科技大学学报 Vol.14 No.4 1992年7月 Journal of University of Science and Technology Beijing Ju1y1992 计算机屏幕绘图及程序覆盖技术 在CARD中的应用 孙超”杨觉先”鹿守理 摘要:论述了在CARD系统中,如何在屏暮上显示孔型与轧件的重选图。在显示时一 些否要特别注意的问题,如何实现程序盖技术以及带来的好处也进行了甘论。 关键词:CARD,屏幕图形显示,程序覆盖 Application of Screen Graphics Displaying and Programming Overlay Technology in CARD Sun Chao·Yang Juexian·Lu Shouli" ABSTRACT:This paper discusses how to display the overlapping graph of the shape of the stock section and the pass on the screen,how to solve some par- ticular questions when display the graph on the screen,how to realize the programming overlay and their adventages. KEY WORDS:CARD,screen graphics displaying,programming overlay 图形显示是计算机的一种输出形式,它比文字和数据信息输出具有更大的优越性。一幅 画能容纳大量的信息,并且其中的许多信息,用文字和数据表示较为困难,甚至是无法表示 的。因此在设计孔型时,常常利用图形的特殊作用,通过绘制轧件和孔型的重迭图来判断轧 1991-09-25收稿 ·金凤压力加工系(Department of Metal Forming) 419
第 卷 第 期 年 月 北 京 科 技 大 学 学 报 , 计算机屏幕绘图及程序覆盖技术 在 中的应用 孙 超 ’ 杨觉先 ‘ 鹿 守理 ’ 摘 要 论 述了在 系统 中 , 如何在屏幕上显示孔型 与轧件的 重迭 图 。 在显 示时一 些 需要特别注意的问题 , 如 何实现程序覆盖技 术以及带来的好处 也进行 了讨论 。 关健 饲 , 屏幕 图形显示 , 程序 搜盖 , 了 “ ‘ , , 。 , , 图形显示是计算机 的一种输 出形式 , 它比文字和数据信息输 出具有更大的优越性 。 一幅 画 能容纳大量的信息 , 并且 其中的 许多信息 , 用文字和数据表示较为 困难 , 甚至是无法表示 的 。 因此在设计孔型时 , 常常利用图形的特殊作用 , 通过 绘制轧件和 孔型的重迭 图来判断轧 , 一 一 收稿 , 金属压 力加工 系 DOI :10.13374/j .issn1001-053x.1992.04.020
件的咬人,在孔型中的充填和稳定性等情况。在我们开发的角钢孔型计算轧辅助设计系统中, 尝试了用屏幕图形显示的方法,在屏幕上直接显示轧件与孔型的重迭图这种方法和手工或者 用绘图仪绘重迭图的方法比较,具有更突出的优点。所以在开发角钢CARD系统时,采用了 程序覆盖技术,显著地节省了内存,使得代码量很大的程序在微机上运行成为可能。 1屏幕图形显示的优点 在屏幕上显示轧件和孔型的重迭图,与手工或绘图仪绘制重迭图相比,前者具有更突出 的优点:(1)“在线性”强,真正做到了交互式优化设计:(2)具有更强的灵活性,轧件的 位置可移动,孔型轮廓可张开或闭合,图形可放大缩小,可方便地观察到轧件的咬入、孔型 中的充填及稳定性等情况,这在纸上绘重迭图时,是很难做到的;(3)速度更快。 虽然有的CARD系统,在用Auto CAD等软件绘制孔型图时,也能在屏幕上显示图形,但 那已属于设计完毕的“成品”,而无法在设计出每一个孔型后就显示其图形。因此,用户不 能在设计过程中就及时地利用重叠图来评价分析所设计出的孔型,随时进行必要的修改,使 之更加完善,只能在设计完全套孔型后,才能用重迭图分析评价。如果对某个孔型不满意, 要对某些参数进行修改,那么还得重新设计,费时费事。本文在研制的角钢CARD系统中, 开发了屏幕图形程序,可在每一道孔型设计出后,立刻得到进入该孔的轧件和该孔轮廓线的 重迭图,用户可以通过键盘,修改想要修改的参数,并立即以修改后的图形响应。这样就可 以看到修改后的效果。例如设计出某孔后,其重迭图如图1所示,从中可以看出可能出现过 充满,必须进行适当修改。修改后的情况可立即在屏幕上显示出来,如图2所示。 图1重迭图反映出孔型将产生过充满的情况 图2重迭图反映出修改孔型后的效果 Fig.1 The overlapping graph of Fig.2 The overlapping graph after over filling pass modify 2屏幕图形显示的实现 在屏幕上绘图,需要解决有关硬件设备及支持软件问题。屏幕图形显示首先需要图形显 示器。随着计算机技术的发展,硬件设备的价格以每5年降低1/2至1/3。个人微机,特别是国 产的个人微机为了显示汉字的需要,都具有强大的图形显示功能。一般PC机都配有彩色图 形显示器,并且其分辨率越来越高,因而这个问题并不稚解决。其次为了使显示器工作, 420
件的咬 人 , 在孔型 中的充填和稳定性等情况 。 在我们开发 的角钢孔型计算轧辅 助设计系统 中 , 尝试 了用屏幕图 形显示的方法 , 在屏幕上直接显示轧件 与孔型 的重迭 图 。 这 种方法和 手工或者 用 绘图仪绘重迭图 的方法 比较 , 具有更突 出的优点 。 所以在开发 角钢 系统 时 , 采 用 了 程序覆盖技术 , 显著地节省 了内存 , 使得代码 量很 大的程 序在微机 上运行成为 可能 。 屏幕图形显示的优点 在屏幕上显示轧件和孔型 的重迭 图 , 与手工或绘图仪 绘制重迭图相 比 , 前者具 有更突 出 的优点 “ 在线性 ” 强 , 真正做 到 了交互式优 化设计 具 有更强 的灵 活性 , 轧件的 位置可移动 , 孔 型轮廓可张开或闭 合 , 图形可放大缩小 , 可方便地观察到轧件的咬 入 、 孔 型 中的充填及稳定性 等情况 , 这 在纸 上绘重迭图时 , 是很难做 到的 速度 更快 。 虽然 有的 系统 , 在 用 等软件 绘制孔型图时 , 也能在屏幕上显示图形 , 但 那已属 于设 计完毕的 “ 成 品 ” , 而 无法在设计 出每一个孔型后就显示 其图形 。 因此 , 用户不 能在设计过程 中就及 时地利 用重叠图来评 价分析所设计出的孔型 , 随 时进行必 要的修改 , 使 之更加完善 , 只 能在设 计完全套孔 型后 , 才 能 用重迭图分析评价 。 如果对某个孔型不满意 , 要对某些参数进行修改 , 那么还得重 新设计 , 费时 费事 。 本文 在研制的角钢 系统 中 , 开 发 了屏幕图形程序 , 可在每一道孔型设计 出后 , 立 刻得到进 入该孔 的轧件和 该孔轮廓线的 重迭图 , 用户 可以通过键盘 , 修改想要修改 的参数 , 并立即 以修改后的图形响应 。 这样就可 以看到修改后的效 果 。 例如设计出某孔后 , 其重迭图如图 所示 , 从 中可以看 出可能 出现过 充 满 , 必须进行 适当修改 。 修改后 的情况 可立即在 屏 幕上显示 出来 , 如 图 所示 。 图 重迭 图反 映出孔型 将 产生过 充满 的情况 图 重 迭 图反 映出修改 孔型后的效果 屏幕图形显示的 实现 在 屏幕 上绘图 , 需要解决有关硬件 设备及 支持 软件问题 。 屏幕图形显示首先需要图形显 示 器 。 随着计算机技术 的发展 , 硬件设备的价格 以每 年降 低 至 。 个人 微机 , 特别是国 产 的个人 微机 为 了显示汉字的需要 , 都具有强 大的图形显示功 能 。 一般 机都配 有彩 色 图 形显示 器 , 并且 其分辨率越来越 高 , 因而这个问题并不难解决 。 其次为 了使显 示 器 工 作
PC机上还要安装视频适配器(显示卡)。现有多种显示卡,有的能满足只显示文字的基本需要, 如单色显示适配器(Monochrome Display Adapter,MDA),也有的能显示图形,如彩色 图形适配器(Color Graphics Adapter,CGA)、增强图形适配器(Enhanced Graphics Adapter,EGA)及视频图形阵列(Video Graphics Array,VGA)等等。每种适配器都 能在不同的模式下操作。模式决定屏幕显示类型及分辨率。所有这些涉及众多的硬件设备, 在编写应用程序时,一般的高级语言无法支持。因此本文在实现角钢CARD软件系统时,选 用了C语言。选用的TURBO C具有功能强大的图形库,支持多种显示卡。其库函数包括从 高级调用(如设置视频窗口,画三维条形图),到面向位的函数(如画一点,取得一点信息 等),它使得在屏幕上绘图变得透明,而不必再花过多的精力去注意硬件设备(2)。但在设 计屏幕图形时,还得解决几个问题: (1)纵横比不管何种图形显示模式(VGA支持的640mm×480mm除外),都存在一 个图形纵横比的问题,即一般情况下图素的高度大于图素的宽度。因此,如不作特别处理, 那么画出来的圆将成为椭圆,正方形将成为矩形,并且不同的显示模式,其纵横比是不同 的,所以在这种模式下画的图在另一种模式下可能变得太窄或太宽。因为这个原因,在画重 迭图时,我们对每一条线都作了适当的处理,使得图形在不同的模式下都有正确的形状。具 体做法是,根据初始化屏幕的结果,求出此种显示模式下的纵横比,然后对图形的每个关键 点的纵坐标,都除以这个纵横比,使得相同大小的横坐标和纵坐标,相对于坐标轴的距离都 一样,这样就可避免图形的变形。 (2)图形变换当画出了重迭图后,孔型设计者可能还需要适当地移动轧件图形的位 置,或者张开、闭合孔型,以观察咬入时轧件和孔型的接触情况,判断是否能咬入,咬入后 是否稳定等,所以存在图形变换问题。轧件移动属于平移,较为简单,其变换方法为: (x′=g+b y=y+h 式中: ',y'一新坐标: ¥,y一原坐标; b,h一×方向,y方向的移动距 离。 严格地说,要观察咬入时轧件与孔型的接 触情况,理应显示出通过轧件与轧辊第1个接 图3轧辊与轧件刚接触瞬闻的情况 触点的垂直截面上的孔型轮廓,而要把出口垂 Fig.3 The overlapping graph of the_wink 直平面上的孔型变换为该垂直截面上的孔型轮 when the stock contact the roll 廓。这是一个三维空间的图形变换问题。考虑到咬人角一般并不很大,故采用了平移图形变 换代替三维空间图形变换的近似处理,即用平移的方法,靠张开或闭合孔型以估计咬入时的 接触情况。图3所示的轧辊与轧件刚接触瞬间的情况,就是采用平移图形法获得的。 (3)和CCDOS兼容问题现有的CCDOS由于显示点阵汉字及输人汉字的需要,都有自 己的显示器及键盘驱动程序,这些驱动程序大多与ANSI所规定的标准有一些出人,不完全 兼容。采用中科院希望电脑公司UCDOS,它支持3种显示卡(EGA,Color400,VGA), 它和ANSI标准有更好的兼容性,这样CARD软件在汉字环境下就能运用自如了。 421
机 上还要安装视频适配 器 显示卡 。 现有多种显示卡 , 有的能满足只 显示文字的基本需要 , 如 单色显示适配 器 , , 也 有的能显示图 形 , 如彩 色 图形适配 器 , 、 增强 图形 适 配 器 , 及视频 图形阵列 , 等等 。 每种适配 器都 能 在不 同的模式下操作 。 模式决定 屏幕显示类型及分辨率 。 所有这些 涉及众多的硬件 设备 , 在编写应 用程序 时 , 一般 的高级语言无 法支持 。 因此 本文 在实现角钢 软件系统时 , 选 用 了 语 言 。 选 用 的 具 有功 能强 大的图形库 , 支持多 种显 示 卡 。 其库函数包 括 从 高级调用 如 设置视频 窗口 , 画 三维条形图 , 到 面向位的函数 如 画一点 , 取得一点信息 等 , 它使得在屏 幕上绘图变 得透明 , 而不必再花过多的精力去 注 意硬件设备 〔 ’ 。 但 在 设 计屏幕图形时 , 还得解决 几个问题 纵横比 不管何 种图 形显示模式 支持 的 招。 除外 , 都存 在 一 个 图形纵横比的问题 , 即一般情况下图素的高度大于图素的宽度 。 因此 , 如不作特别 处理 , 那么 画 出来 的圆将成为椭圆 , 正方形将成为矩 形 , 并且不同的显示模式 , 其纵横 比 是 不 同 的 , 所以 在这种模式下 画的图在另一种模式下 可能变得太窄或太 宽 。 因为这个原因 , 在画重 迭图时 , 我 们对每一条线都作 了适当的处理 , 使得图形在不同的模式下都有正确 的形状 。 具 体做 法是 , 根据初始化屏幕的结果 , 求 出此种显示模式下的纵横 比 , 然后对图形的每个 关键 点的纵坐标 , 都除以这个纵横比 , 使得相同大小的横坐标和纵坐标 , 相对于坐标轴的距离都 一样 , 这样就可避免图形的变形 。 图形变换 当 画 出了重迭图后 , 孔型设计者可能还需要适当地移动轧件 图 形 的 位 置 , 或者张开 、 闭 合孔型 , 以观 察咬 人时轧件和孔型的接触情况 , 判 断是否能咬 入 , 咬 入后 是否稳定等 , 所以存在图形变换 问题 。 轧件移动属 于平移 , 较为简单 , 其变换方法为 劣 , 二 劣 夕 尹 二 式 中 丫 , ’ -新坐标 ‘ -原坐标 , 几- 劣 方向 , 方向的 移 动 距 离 。 严格地说 , 要观察咬 入时轧件与孔型 的接 触情况 , 理应显示 出通过轧件与轧辊第 个接 触点的垂直 截面上的孔型 轮 廓 , 而要把 出 口垂 直平 面上的 孔型变换 为该垂直截面上的孔型轮 厂 翁瓤鑫攀 夕下 一 嗯幕羹鑫 寸 、 图 轧辊与轧件刚接触瞬间的情祝 , 廓 。 这 是一个三维空 间的图形变换问题 。 考虑 到咬入角一般并不很 大 , 故采 用 了平移图形变 换代替三维空 间图形变换的近似处理 , 即 用平移的方法 , 靠张开 或闭合孔型以估计咬 入时的 接触情况 。 图 所示的轧辊 与轧件刚接触 瞬间的情况 , 就是采 用 平移图形法获得的 。 和 兼容 问题 现有的 由于显示点阵汉字及输 入汉字 的需要 , 都有 自 己 的显示器及键盘驱动程序 , 这些驱动程序大多 与 所规定 的标 准有一些 出人 , 不 完 全 兼容 。 采 用 中科 院希望电脑公司 , 它支持 种显示卡 , 。 , , 它和 标准有更好 的兼容性 , 这样 软件在汉字环境下就能运用 自如 了
了程序覆盖的优点及实现方法 在开发的角钢CARD软件系统中有源代码230K,执行代码519K。如此庞大的软件在使用 DOS的PC机上运行,首先碰到的一个问题是内存不足问题。现今的DOS操作系统提供给用 户的内存最大是640K,所以即使机器有640K以.上的内存,DOS操作系统也无法提供给一般 的应用程序。在640K内存的机器上装入汉字操作系统后,所剩空间无几,如果要想使用本软 件,将出现内存不够的现象。为了解决这个问题,故采用了程序覆盖技术,借助这一技术在 高级语言源程序这一级来实现,这样可以节省大量的存贮空间。具体做法是:利用DOS提供 的EXEC功能,它允许一个程序(称父进程),从存贮设备中装入另一个程序(子进程),并 执行它。其执行过程可简述为:父进程在调用EXEC之后,首先释放多余内存,然后装入子 进程,并覆盖掉自己的模块,将控制交给子进程,这样子进程就可以执行。执行完毕后,子 进程可将控制交还给父进程,也可由子进程再调用EXEC功能,装入并运行一个子子进程〔3)。 再将本软件系统按各个不同功能划分为若干个模块,当这一模块执行完毕,根据用户的选 择,该模块再调用下一模块,而覆盖掉自己所占的内存空间,这样大大节省了内存。我们 开发的这个软件共有7个模块,其中最大的模块是孔型设计,它需占内存160K,所以只要 计算机内存有160K的空间,就可以运行本软件,节省内存近70%。 4结论 (1)开发的角钢CARD软件系统,成功地用自己开发的屏幕图形库,在屏幕上显示了孔 型与轧件的重迭图。它比用手工和绘图仪画重迭图的方法,速度更快,“在线性”更好,能 更加方便灵活地观察到轧件的咬人、在孔型中的充填、稳定性等情况。克服了用Auto CAD 只能输出最后的设计结果,而无法显示中间结果的缺点。它可推广应用到各种CARD软件系 统中。 (2)本软件系统的执行代码共516K字节,采用程序覆盖技术后,节省内存近70%,使 得本软件能在PC系列机上运行。今后的CARD系统随着功能的日益完善,软件系统也将日益 增大,采用程序覆盖技术,是解决内存短缺的较好方法。 参考文献 1孙超。角钢CARD及横列式轧机工作图表优化软件的研制,北京科技大学硕士论 文,1990.12 2林学焦等译。TURB0C2,0用户手册。中科院希望电脑公司,1990.1 3 Steveu Armbrust,舒志勇等译,DOS/BIOS使用详解。北京:电子工业出版社, 1989:4 422
程序覆盖的优点及实现方法 在开发 的角钢 软件系统 中有源代码 ,执行代码 。 如此庞 大的软件在 使 用 的 机 上运 行 , 首先碰到 的一个问题是内存不足问题 。 现今 的 操作 系统提 供给 用 户 的 内存最 大是 , 所以 即使机器 有 以上的 内存 , 操 作系统 也无法提供给一般 的应用程序 。 在 内存的机器上装入汉字操作系统后 , 所剩空间无 几 , 如果要想 使 用本软 件 , 将 出现 内存不够的现象 。 为 了解决这 个问题 , 故采用 了程序覆盖技术 , 借助这 一技术在 高级语 言源程序这 一级来 实 现 , 这样可以节省大量的存贮空 间 。 具体做法是 利 用 提供 的 功 能 , 它 允许一个程序 称 父进程 , 从存贮设备中装入另一个程序 子进程 ,并 执 行它 。 其执行过程 可简述 为 父进程在调用 之后 , 首先释放 多余内存 , 然后装 入子 进 程 , 并覆盖掉 自己的模块 , 将控制交给子进程 , 这 样子进程就可以执行 。 执行完毕后 , 子 进程 可将控制交还给父进程 , 也可由子进程再 调用 功能 , 装人并运行一个子子进程 〔 “ ’ 。 再将本软件系统按各个不 同功能划分为若干个模块 , 当这一模块执行完毕 , 根据 用 户 的 选 择 , 该模块再 调用 下一模块 , 而覆盖掉 自己所 占的内存空间 , 这样大大节省 了 内 存 。 我 们 开发 的这 个软件 共有 个模块 , 其中最大的模块 是孔型设计 , 它需 占内存 , 所以只 要 计算机 内存有 的空间 , 就可以运行 本软件 , 节省内存 近 。 结 论 开发 的角钢 软件系统 , 成功地用 自己开发 的屏幕图形库 , 在屏幕上显示 了孔 型 与轧 件的重迭图 。 它 比用手工和 绘图仪 画重 迭图 的方法 , 速度更快 , “ 在线性 ” 更好 , 能 更加方便灵 活地观察到 轧件的咬 人 、 在孔型 中的充填 、 稳定性 等情况 。 克服 了用 只 能输 出最后的设计结果 , 而无 法显示 中间结果的缺点 。 它可推广应用到各种 软 件系 统 中 。 本软件 系 统的执 行代码共 字节 , 采 用程序覆盖技术后 , 节省 内 存 近 , 使 得 本软件能在 系列机上运行 。 今后 的 系统随着功能 的 日益完善 , 软件系统 也将 日益 增大 , 采 用 程序覆 盖技术 , 是解决 内存 短缺 的较好方法 。 参 考 文 献 孙 超 角钢 及横列式轧 机 工作图 表优化软件 的研制 , 北京 科 技大学硕士 论 文 , 。 林 学焦 等译 。 用 户 手册 。 中科 院希望电脑公 司 , 。 舒志勇等译 使 用 详解 。 北京 电子工业 出 版 社