交互系统设计的先期工作就是构造一颗菜单树,它体现了软件的总体结构和功能框架。
分类、分级组织各种不同的功能程序,将他们组织到一颗(三级)菜单树下。
在屏幕上,通过光标的选择和点击,根据ID号去调用相应的执行程序,完成一个功能的实现。
使得各种独立功能变成一种交互操作。
现在构造一个交互系统的技术相对比较成熟。然工业软件从认识交互开始,构造菜单树启动。
而在工业软件的设计和开发的过程中,又要克服软件编制者不懂工程,工程技术人员不知软件的原理和方法的现象。
理论化——计算基础。涉及数学(几何与代数)、计算机(智能化)、物理(渲染)等。
工程化——应用基础。涉及工程、设计与制造等众多学科。支持工程设计思想与方案的快速准确表达,充分考虑工程设计意图、语义要求等。
要从工业需求出发,凝聚科学问题,开展理论研究,突破关键技术,构筑软件系统。统一规划,分而治之。
1)理论与工程,各司其责,针对理论和知识的多学科交叉及算法源的多样性,处理好多学科交叉。首先是从大的方面分离理论部分和工程化部分。在总体规划与设计中,吸收各相关领域专家,尤其是跨领域人才,充分研讨;在研发实施中,尽可能地将理论、方法、技术等多学科的知识都能相对“独立”地运用,淋漓尽致的发挥各类参与人员特长。
2)精细规划,统一实施。精细规划接口,搞好总体设计和层次设计,尽量实现坚实基础、攻克核心、构建系统、服务应用等各层次能够有相对独立的分工开发。
关于理论、基础和工程问题,本文后面还会提及。
总的目标是要达到:
基础研究足够基础,应用研究足够应用。
先例,即使是那些好的先例,也不能被滥用。2010年,上海世博会发明了沿相邻栏杆转圈的排队方法,后来被广泛应用到景区、地铁站、火车站。不管你是老人还是小孩,或是拿着重物的,即使没有人,也都得转转悠悠的沿着栏杆转圈。
需要有搞理论的、搞工程的,有搞算法的、建平台的,有搞通用的、搞专用的,等等。百丈之台,起于垒土。所有这些,都依赖于牢固的基础。
现在,关于云版软件的关注和宣传明显增多。互联网发展到今天,发展云板工业软件是必须的。
云版软件的本质是,它使单体软件从商品买卖扩展到(或者改变为)软件服务。这个设想很好,能使软件发挥最大的作用。
但云版软件并不适合任何条件,例如军工企业、政府管理系统等,他们的应用和管理有很大的独立性,不能被“封锁”,被冲击。往大了说,还是要考虑“战争”情况。
云版虽有自己的一些技术需要突破,但同工业软件本身相比,权重小一些。研发一个有“自主版权”的、强大的单机版软件,才是目前工业软件发展的主要任务和方向,也是开发云版软件的基础。
在开发内容和重点上,云架构目前还不应该强调在整个软件系统“云不云”的,而应该立足于资源的复用上,例如,图纸、标准件、图库等的复用,尤其是设法加强基础算法和计算平台的构建和共享上。
进而,基础算法和计算平台也不能仅仅限制在“云”上使用,应该根据用户的需求,可下载到本机应用(这里不讨论商业模式)。
ChatGPT引起的轰动,将智能化提到一个特别的高度,人人讲智能,处处道智能。
ChatGPT是基于大数据的,大数据一方面是因为它的“大”,但是要看到这大量的数据中,只有那些相关的信息才是有用的,关键的工作是在这海量数据中找到所提问题有关的那些信息。
前几年风靡一时的AlphaGo,关键也是关系的重构。
CAD中的几何引擎,核心工作也是几何关系的重构问题,如果认识“几何关系的改变是在两几何的相交处”,就揭示了几何计算的本质,由此去找到最合适的几何计算的方法,方向就对了。建立一套完整的几何计算理论体系,从理论上解决几何计算的高效和稳定问题。
这是几何引擎的关键所在。
现在在工业软件的发展中,目前也有人讨论到智能化的问题。从字面上讲,在工业软件的发展上涉及到从哪个方面看所谓的“智能化”,智能化开发?还是智能化应用?
从开发方面看,是如何用智能化开发软件。通过智能技术的应用,使工业软件具备一定的工程交流和设计的感知能力、记忆能力以及学习能力、思维能力、自适应能力和行为决策能力,从而能够在各种场景中,以设计人员的需求为中心,能动地感知交互输入和设计意图,并按照与人类思维模式相近的方式和给定的知识与规则,做出决策。用智能化技术进行算法的智能化编制和智能化调度,甚至系统的智能化构建。
如何用智能化技术求取几何间的约束关系,突破几何约束求解问题。算法的智能化编制和智能化调度,甚至系统的智能化构建等,都是智能化开发中需要考虑的问题。
从应用方面看,是如何使软件在使用中体现出智能化。最近,一个软件公司发布新产品,提到十大亮点:数据转换增强、新增焊件模块、新增自定义企业模板、新增拼图打印、草图/3D草图/零件设计增强、更符合GB国标的工程图、装配&TopDown增强、新增瘦客户端、钣金模块增强、新增敏捷PLM模块等,都是关于“工程化”的。从用户的角度看,就是“智能化”功能。早期的光标“捕捉”功能,明细表的自动生成等都是。下面是20多年前国产化CAD软件对智能化应用功能的描述。
中文界面、易学好用、自我学习、无师自通;一个键打半个天下的超级编辑功能;一次性作成图框,快速构造明细栏的“工程化”作图法;“文本化”的图纸说明输入法;自动导航、自动装配、局部放大等智能化作图手段;无须选定边界的自动修剪和裁剪功能;无限级UNDO和REDO功能;使设计速度愈来愈快的用户资源自扩展性;参数化建库工具和基于参数化零部件库的自动装配功能;与AutoCAD系统的DWG/DXF文件的双向接口,CADAM系统的图形文件读取和图形功能、数学函数、等二次开发工具等是KerenCAD的重大特色。
当然,智能化开发与智能化应用两者并不矛盾,目标完全一致,而且开发的智能化,也体现在使用上也往往智能化。
软件作为一个产品,某种程度上也是一种商品。商品多由使用者说了算,犹如一件衣服,穿者多关心的是这件衣服对他是否合适?而少关注这件衣服是机器(自动)做的,还是人工做的。
1988年,上海船舶工艺研究所就研制成功了一个比较完整的交互式CAD系统——DPS(后来发展成白玉兰CAD,KerenCAD),它的广告词是:
现在,要有自己的核心基础已经得到国人的普遍认同。一些组织和企业已经在规划和启动工业软件“基础组件”的研发。例如CAD的造型引擎、求解引擎、几何引擎、图形渲染引擎、网格划分引擎、数字模型及引擎、图数据库及引擎、模型轻量化引擎、CAD模型转换引擎等。还可以列出一些“核心”组件。
1)工业软件是干什么的?即他们的共性是什么?
2)工业软件的操作对象是什么?
计算机算法的本质,就是将一组数据转换成另一组数据。这些数据往往构成一个个“模型”,这样的模型叫做“数字模型”,一个软件都会围绕很多很多这样的数字模型展开。
工业软件都是以一些数字模型为对象展开的,例如CAD软件,它的主要处理对象是“形”——“形体”和“形状”,这些模型的载体是几何模型,几何模型再承载工程内容与工程属性,形成工程零件,用于设计和制造。因此,工业软件实质上都是围绕几何模型的构造、操作、运算、变换、显示等展开的。直接操作对象是点-线-环-面-体,以及曲线与曲面等几何元素,对这些几何元的几何参数和几何关系进行计算和处理。这些计算主要是基于形的计算,即几何计算和图形计算。包括几何参数计算(相交计算、属性计算等)和几何关系计算(关系判断(on/in/out)、(拓扑)关系重构等)。
设计和编制高效、稳定的几何算法,构筑起坚实的几何计算平台,在此基础上,才能构建“几何引擎”“渲染引擎”等的核心算法。
这才是建立国产化工业软件的基础,也是目前工业软件发展的首要任务。
核心问题既已找到:工业软件的主要工作是“几何计算”。下面的任务就是从数学科学、物理科学、计算机科学中找到他的理论基础。
1981年1月苏步青先生出版了著名的《计算几何》专著:
1)开创了我国的《计算几何》学科。
那时,国际上对Bézier曲线、Bézier曲面,BSpline曲线、B样条曲面和NURBS(Non-UniformRational B-Splines,非均匀有理B样条)等的研究非常活跃。上个世纪对曲线曲面的研究,现在仍是CAD造型的理论基础之一。
3)阐述了“计算”时代下的“几何”。
4)给出了一个理论数学到应用数学的样板。
形计算构建了一套解决几何奇异引起的计算不稳定问题完整理论和方法,特别是在几何层面上考虑几何奇异问题,通过对交点几何数的简单运算,解决之。
形计算解决了以下几个科学问题和实践问题:总体上,追求形、数结合的新突破。机制上,解决了形计算“数元”的表示机制、运算机制、计算方式和解的表述,以及降维机制、以及变换几何化机制等。目标上,解决了计算过程中的维度差距、计算稳定性等关键问题,特别是提出了一套解决几何奇异问题的完整理论和解决方案。
形计算以几何学家的思路去思考问题——宏观而缜密,以代数学家的方式去解决问题——严格而有序。它从形整体的几何角度在一个多维的空间中去考虑与设计几何问题的解决方案,在更宏观的、更高的层次去主导算法设计,构建算法框架。只是在最后才追究具体的细节,将繁复的计算付诸于代数的实施,使计算过程结构化、直观化、简单化。实现“三维思维,二维图解,一维计算”的多维空间融合,追求形-数的顺滑过渡,提高了算法可读性。
形计算是几何计算的理论基础,以此构建工业软件的计算平台、基础平台。如果统一在形计算理论下建立“基础组件”,那么,工业软件的基础将十分牢固且相当简洁。
最后,谈一下工业软件发展中必须重视的一支力量。
可以考虑对工程图学教学免费提供软件,鼓励学生参与应用定制工作,开创百花齐放的局面。甚至可以考虑,在全国范围内免费推广使用,鼓励全社会参与。
文章结束本来是结论,但本文没有结论。
文章草稿征求过一些同行的意见,他们的共同疑问是:为什么写这篇文章?
工业软件的发展在国内如火如荼,但总感到哪儿不对劲?
想谈谈国内工业软件的基础研究问题,从原始问题,也是本质问题开始:
搞清楚工业软件是干什么的?它的操作对象是什么?他们的共性是什么?
要有人从根上去思考这些问题,理论基础和计算基础,解决工业软件的根本问题——终极研发基础。
独立自主,首先要建立我国工业软件发展的良好生态环境!
要看到的是,目前我国工业软件的发展基础比当年搞两弹一星时的好得多。
不管是引进源代码,走快速应用捷径;还是搞基础组件,几大引擎,关键是要深入研究理论,抓好共性基础,研究基础算法,构建好公共计算平台。
基础研究足够基础,应用研究足够应用,工业软件的大厦才稳固。
文献
[4] 何援军,计算机图形学,北京:机械工业出版社,2006年1月第1版第1次
[5] 何援军,CAD图形开发工具,上海:上海科学技术出版社,1997年6月第1版第1次
[6] 何援军,计算机图形学算法与实践,长沙:湖南科技出版社,1990年8月第1版第1次
[7] 何援军,图形处理系统DPS,浙江大学学报,1983.3, P93~102
[8] 何援军,二维几何构型,机械工业自动化(4),1983
[9] 何援军,平表面物体的隐藏线消除,工程图学丛刊,1983年第一期,P17-23~99
[10]何援军,立体图形的计算机绘制,浙江大学学报(计算几何专辑),1984, P66~84
[11]何援军等,直线、圆弧相贯处理的新算法(合著),上海机械学院学报,1985.2, P67~77
[12]He Yuanjun,A 2D Geometric Modeling System, Proceedings of CAD/CAM, Robotics and Automation International Conference, Arizona,U.S.A, 1985.2
[13]He Yuanjun etc.,A New Computer Method for Three Point Perspective,Proceedings of CAD/CAM, Robotics and AutomationInternational Conference, Arizona, U.S.A, 1985.2
[14]He Yuanjun,An Interactive Open Graphics System DPS,Proceedings of CADDM'89,Hangzhou,China,October 23~28,1989
[15]HeYuanjun,A Development Product Support System DPS,Proceedings of InternationalConference in Computer Applications in the Automation of Shipyard Operation andShip Design,Riodejaneiro,Brazil, Sept.9.9~9.11,1991
[16]He Yuanjun,On Strategy of Developing a Graphics Support System,CAD/CAM, Graphics'91,Hangzhou,China, Sept,23~26.1991
[17]何援军,计算机辅助造船集成系统中的图形平台,计算机辅助设计和图形学学报,Vol.6 No3 July,1994
[18]何援军,上海市CAD应用工程软件产品—白玉兰CAD(BYLcad),机电一体化,1999.9,PP30-31
[19]何援军、钮晓鸣,开放型CAD系统的设计和开发,工程图学学报,2003 Vol.24 No.2
[20]何援军等,绣花缝针轨迹问题,计算机学报,2003.09,第26卷,第9期)
[21]何援军,图形变换的几何化表示——论图形变换和投影的若干问题之一[J],计算机辅助设计和图形学学报,2005年4月,第17卷 第4期,PP723-728
[22]何援军,投影与任意轴测图的生成——论图形变换和投影的若干问题之二[J],计算机辅助设计和图形学学报,2005年4月,第17卷 第4期,PP729-733
[23]何援军,透视和透视投影变换——论图形变换和投影的若干问题之三[J],计算机辅助设计和图形学学报,2005年4月,第17卷 第4期,PP734-739
[24]何援军,论计算机图形学的若干问题[J],上海交通大学学报,2008年4月,第42卷 第4期,513~517
[25]何援军,几何计算及其理论研究[J],上海交通大学学报, 2010, 44(3):407-412.
[26]何援军,对几何计算的一些思考[J],上海交通大学学报, 2012, 46(2):18-22.
[27]何援军,一种基于几何的形计算机制[J],图学学报,2015年第3期,2015年5月,PP1-10
[28]何援军,图学与几何[J],图学学报,2016年第37卷第6期,PP741-753
[29]何援军,画法几何新解[J],图学学报,2018年2月,第39卷第1期,PP1-12
[30]于海燕,秦鹏飞,何援军,草图校正的研究与实施[J].中国纺织大学学报,1999,25(5): 39-44.
[31]于海燕, 蔡鸿明,何援军,图学计算基础[J].图学学报, 2013,6 :1-6.
[32]于海燕, 何援军. 空间两三角形的相交问题[J]. 图学学报,2013,34(4): 54-62.
[33]章 义,于海燕, 何援军,二维布尔运算[J].上海交通大学学报,2010,11:1486-1490.
[34]Hai-Yan, Y. U. , & Yuan-Jun,H. E. . (2011). Geometric computing based on computerized descriptivegeometric. Computer Aided Drafting,Design and Manufacturing.2011,12: 21255_61.
[35]Hai-Yan YU, Yuan-Jun HE and Zhi-Hong SUN.A dimension reduction method based on projection. Theinternational conference of geometry and graphics(icgg2012):22_26. MONTREAL, CANADA,2012,8
[36]于海燕, 余沛文, 张帅, 何援军. 两空间三角形的退化关系研究[J]. 图学学报, 2016, 37(3):349-354.
[37]于海燕, 张帅, 余沛文, 何援军. 视锥体裁剪几何算法研究[J]. 图学学报, 2017 ,38(1):1-4
[38]Haiyan Y , Meng J ,Xiangtian W , Yuanjun H. Geometric basis:a geometric solving cell for geometriccomputing. Computer Aided Drafting,Design and Manufacturing.2016, 26(3):5-8.
[39]彭正洪.水电站引水发电系统三维造型与可视化仿真的研究[D], 武汉大学,学位论文,2006.
[40]柳伟. 三维模型的特征提取与检索[D], 上海交通大学,学位论文,2008.
2023年5月1日星期一