专业设计绘图的发展历史:早在20年前,工程师在人们眼中的形象是扑在绘图版上,用针管笔在一种我们称为硫酸纸的半透明的纸上描绘,然后这种纸经过药水处理变成蓝图,这也就是设计技术人员的作品。当CAD软件产品刚刚推出时,最先是作为计算软件的输出接口,人们接受CAD作为绘图平台,以鼠标和显示器代替笔与绘图板,足足用了近20年的时光,当下已很难看到绘图板这类工具了,这就是图纸的表现以及传输的信息化进步。
CAD平台仅仅是一个通用的绘图工具,而使用它的工程师却是工作在不同的技术领域,比如建筑、土木、机械、电气、电子、服装等等,而通用的绘图平台是不具备这些专业功能,它仅有普通的图形元素,比如线段、圆弧等等,因此在刚接触CAD时,很多技术人员会有很大的抵触,只是到了有一些专业图块储备时,方觉出它的优点。等到了不断有二次开发的专业软件模块出现时,这种优点就变成了不可逆转的优势了。也正是由于二次开发接口才成就了Autodesk公司的AutoCAD产品在CAD领域的霸主地位。
二次开发接口是CAD平台软件贴近专业的一扇大门。没有它,CAD平台软件仅仅是丰富些的Windows绘图板而已,然而我们仅从AutoCAD的接口软件的发展上可以看出掌握这种技术的难度:
最早的接口语言是AutoLISP,这是一个解释型的“表结构”语言,后来发展为ADS接口,这是普通的C语言接口,再后来发展成面向对象C++接口的ObjectARX。而且期间也有诸如VisualLISP以及 VBA等形式的接口。所有这些接口技术无一不对开发者提出很高的软件技术要求,因此从理论上说,成功的专业绘图软件产品,必须要融合好“专业技术”以及“软件开发技术”这两个团队,而且一定要有身兼这两种知识背景的复合型人才。市场中偶尔的成功产品主要开发人员基本上都是专业技术人士,后天学习软件编程(当然他也有这样的兴趣)。
那么有一个问题:
可不可以让大多数专业技术人员自己参与编程呢?
让专业技术人员不经过软件开发的培训就可以按照自己的绘图思路来编制绘图软件模块。
答案是肯定的。
我们先看下面的一个例子:
这是一根线段的简单描述,起始点是P1,终点是P2,线的属性是“细实线”。
而描述的标记是一对符号“<”与“/>”。如果看过网页的后台代码的人肯定会熟悉这样的标记。这是一种叫XML的标记语言。
XML是Extensible Markup Language(可扩展标记语言)的缩写,它最显著的特点是,它是一种自描述的文本文件,就是说你可以用记事本打开它,而且你可以很清楚地看到它的内容,因此千万不要把它当作是像C以及FORTRAN等计算机语言来看待。它的另一个特点是有很清晰的所属关系。
XML最主要的概念是“标记”和“属性”,最基本的结构是:
没有内容时,也可以直接这样写:
属性可以有多个。
再看一个具体的例子:
这里的“建筑物”、“楼层”“房间”都是标记,而“结构”、“位置”、“房号”都是属性,每一个标记都是封闭的,标记中的内容可以包含其他标记描述,这样就有了清晰的层次所属关系,让阅读者一目了然,这也就是XML语言被推崇的主要原因。
这样我们回过头再看开始线段的代码,
可以看出,“Line”是个标记,“startPoing”、“endpoint”、“propName”都是属性,我们也同样可以看出,描述的方式有多种,但在我们的系统下当然只能按规定的格式来。
作为专业技术人员,在了解了绘图基本元素之后,他的专业知识就可以起到很大的作用了,针对某个特殊的绘图模块,就可以根据其专业知识来提炼出绘图所需要的技术参数,这是作为软件开发人员所不具备的,这个过程就是通常所说的“参数化绘图”。
为了说明参数化绘图,我们可以看下面这个图形:
这是一个矩形,从图形元素来说需要绘制四条线段,但是我们只要确定两个参数a、b就可以确定这个图形,那么a、b就是所需要的参数,所编写的绘图代码中可以将它们作为输入的参数,然后计算出四个点的坐标,进而绘出四条线段。
我们的系统提供了接受参数的模式,下面是绘制矩形的完整例子:
针对某个特定的专业,它必定有一些专业符号会经常用到,比如建筑结构专业的“标高”、“剖切”等等,因此需要有调用的措施,如同常见的高级语言函数调用一样。
现在正式介绍我们的系统xDrawing,它的界面如下图:
软件界面主要分为5个区,分别为菜单区,模块分项显示区、绘图显示区、模块参数区和信息提示区,对应上图中的A~E区。
A区为软件功能菜单区,主要是有网络登录、显示控制、文件输出以及图纸比例参数确定等按钮;
B区为各模块列表显示区,每一项对应一个参数绘图模块,该区还包含“属性配置”;
C区为主要的绘图显示区,根据用户填写的参数,实时显示图形,可通过鼠标来放大缩小以及移动显示图形;
D区为参数区,这是最为关键的区域,针对不同的模块有不同的参数项;
E区为信息提示栏,对“一般提示”“警告”“错误”采用不同颜色的提示显示。用户在参数输入时出现错误或不合理情况时,在此区域显示,以便用户及时纠正。
xDrawing与我们目前常用辅助绘图工具的区别有以下几点:
第一,开放的级别不同,一般的参数化绘图软件所开放的是参数,根据参数值的不同得到不同的图形,xDrawing的开放是编程代码级别,也就是说,用几个参数、什么样的参数都是可以改变的。从绘图的意义来说,应该是底层的开放。如果增加或者要修改一个模块,通常的参数化绘图软件需要重新编译,重新发布,而xDrawing只要增加或者修改一个XML文件即可,而XML文件是一个甚至可以用记事本软件来编辑的描述性文本文件。
第二,xDrawing可以作为PDM系统中关于图形文档的数据标准文件的显示平台,它可以将显示的图形输出为dxf格式的文件,也可以输出为仅包含绘图元素的XML文件。
第三,也是最重要的一点,xDrawing具有互联网时代的“参与”、“分享”的特质,所有技术人员都可以编制他们熟悉的节点模块,并在工作中使用这些参数化节点,但是不同的是他们可以将自己的成果分享给网上其他的技术人员,而且这种分享是实时的。这种特质代表了互联网时代的核心精神。