绘图软件要进行处理和计算,就需要知道需要算什么。位图的计算方式的单一性决定了它很多命令可以直接在文档里使用(即使没有选择也能使用——我们认真检核PS的命令,有多少个命令是在很特殊情况下才能操作的?)。矢量图不行,你要算一个圆,就必须告诉软件:这是一个圆,依此类推。所以在宏的记录中,如果沿用PS的方法,录制下用户对软件菜单命令的选择,这样录制的命令其后续沿用的意义并不大。
还有个原因是:如果沿用PS的方法,录制下用户对软件菜单命令的选择,但矢量软件的特殊性要求必须也录制工具的选择。使用工具在软件中绘制图形的步骤可以录制下来,但用户所有的操控参数就是固定的了。比如顶楼的例子,绘制角线。我们逻辑上倒是很清晰:延着某物体边线标注即可。可是不要忽略一点:CD能对多物体同时起效的命令并不多,尤其是绘制新物体的时候是不能在选择多物体的情况下操作的。没有了参照物的存在,程序中记录的线的数据就不是相对位置而是绝对位置(相对位置和绝对位置有点类似网页中表格里提到的概念)。这样录制的命令其后续沿用的意义仍然不大。
CD之所以嵌入一个编程工具的内核本质上就是让用户可以抛开工具、菜单等表面的东西,直接告诉软件先做什么再做什么。对于一个绘图软件而言,有很多功能,有时候某些功能的组合又能产生新的功能——例如CAD,墙线的功能是“直线+位移+修剪”可以得到的.......所以什么天正呀、圆方呀这类基于CAD平台上的软件充其量不过是CAD的二次开发、CAD的高级宏命令集合而已——CD之所以嵌入VB的目的除此之外还想得更远。
由于嵌入了一个强大的编程工具,因此就支持该工具的变量、函数、语法,通过CD与VB的接口用户也能直接读取CD中的物体所有参数和函数,所以这些重新组合命令是完全可以实现的,例如想绘制出血线么?——CD如何得知所有物件的尺寸和位置的?我们得知该函数后即可利用该函数进行计算,自动辨别+3或-3mm,然后就得到了出血线的位置,然后定义一根直线,将刚算出的数据赋予它,便可完成出血线的操作,而这命令显然可以应用于其它的文档!........如果你擅长于编程,甚至可以定义自己的计算函数,利用VB生成可在CD中调用的面板。这就是插件了。