-
2006-08-23 - [开发]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
工具齐备、算法确定、文档完整,当然是立刻动手啦。一边查阅文档,一边敲代码,大概三四个晚上吧,完成了。在我机器上试运行并测试,效果很好。虽然是夜里十一点,我忍不住立刻通知在线的同志,让他帮忙测试。基于这样的考虑,我知道程序的运行原理,在测试中会不自觉的避免错误的输入,同时程序是按照我的作图习惯定制的,在别人的机器上,也许表现会很不一样,因此我迫切需要找个测试员。
http://1001night.blogbus.com/logs/3105940.html
测试马上给出了意想不到的结果,无法运行。确切的说,是毫无反应。我也立刻知道问题所在,版本问题终于来困扰我了。
我使用ObjectARX进行开发。我的AutoCAD版本是2002,所以要使用ARX for 2002的开发包,需要在VC60的环境下编译。而我同事使用2004版AutoCAD,需要用ARX for 2004的开发包,并在VS2002环境下编译。虽然程序的源代码可以是完全一样、不加修改地移植,但编译出来的东西却是两回事,不能互换。
我先前猜测会有这种问题,因为和系统连接越紧密的东西,往往与版本的相关性越高,但我还是抱着侥幸心理想试试看,结果还是没能躲过去。不得已。我重新下载开发包,又去寻找VS2002的安装文件。在VS2005都快上市的时候,2002的安装盘实在很难找,不过总算一切顺利,2004版本的程序也做好了,测试结果也令人满意。
接下来就是让更多的同事使用,新的问题又出现了。用过CAD扩展程序的人应该知道,这些扩展都需要载入才能使用,而且都是扩展了命令。我试图让每个同事都学会该如何载入和载入哪个文件以及使用时输入哪个命令。但这里潜在的问题是,我将来势必要对功能进行扩展,那么到时候可能就不是载入同一个文件了,而且执行的命令显然也会不同。按我的经验,指望每个同事都记住那不断变化的命令是很困难的,必须有某种方法让他们快捷的使用。这就是菜单。
对用户来说菜单是个好东西,但对于程序员,那意味着要写一个菜单配置文件,同时必须另行解决载入的问题。参阅了文档之后,先完成了菜单,然后把扩展的载入放在菜单的载入文件里。而这个载入还必须查询当前的CAD的版本,然后载入对应的文件。这个查询费了我很大功夫,迫使我去学lisp的用法。终于一切ok,所有用户都十分满意。
接下来是几个月之后的事情了,先前做好的其实只是个配件统计。管材统计显然也是用户希望看到的。不过这个时候,我有点厌烦为不同的CAD版本写不同的程序了。因为我发现安装了VisualStudio2002之后,我的系统很不稳定,经常有莫名其妙的死机现象,所以我已经把这东西卸载了。我不想再次安装容量达5.5G的VS2002,于是我考虑,要不要试试Vlisp。
我自己心里明白,因为ObjectARX功能强大而选择他只是个借口,我的程序目前的功能根本用不上那种强大,我选择的唯一原因是我会C++而不是lisp语言。不过我在做菜单的时候,已经浏览过lisp语言了,花点力气熟悉下也不是什么难事吧。
之后就水到渠成,用lisp做了所有的东西,包括坐标标注、材料统计以及程序载入等等。而且lisp程序在各个版本都能通用,也就不需要再判断版本。用户的反馈非常好。
lisp还带来一个好处,他的修改是即时的,当用户需求发生了一些临时性的变化,需要程序作出局部改动时,可以直接在用户的机器上解决,而不必安装一个巨大的VS2005来编译。目前这种情况已经发生了很多次,都顺利解决了。
至此这件事暂时得到了圆满解决,以后的需求是以后的事了。这个项目(如果能够称为项目的话),应该算是我自学习编程以来真正完成的第一个项目--以前那些只能作为习题--而且是一个实用的项目。在这个过程中,我既是开发者,又是用户,这使得我从两个角度考虑项目,还真是积累了很有趣的经验呢。
子曰:善。随机文章:
CAD二次开发语言简介 2006-08-24CAD开发之经过 2006-08-22CAD开发之前因 2006-08-21AutoCAD的C-Dilla申请号错误修复方法 2006-09-21ARX的版本说明 2006-08-25
收藏到:Del.icio.us







