autolisp的操作对象是具体的dwg文件,和dwg文件相关的各种信息自然是autolisp需要处理的任务的之一。 对于全自动、无需人工干预的autolisp插件来讲,获取各种当前信息尤其是关键中的关键。

这个“当前信息”包括很多,比如当前dwg的文件名、文件路径,甚至是当前运行的autolisp插件的路径。 所以,这个标题里边写的当前位置这个说法其实不太准确,只不过,考虑到普遍的词不达意, 没准儿这个说法反倒更加容易帮助到那些有需要的人。

获取当前dwg文件名的方法

获取当前dwg文件名,可以通过getvar函数来实现。代码如下:

1
(getvar "dwgname")

执行这一行代码,就能获得当前dwg的文件名了。不过,需要注意的是可能会获取到不准确的文件名, 因为autocad会给每个新dwg赋予1个默认文件名。为了准确起见,对于获取到的文件名,最好做一个逻辑判断。

获取当前dwg路径的方法

获取当前dwg路径,也可以通过getvar函数来实现。代码如下:

1
(getvar "dwgprefix")

执行这一行代码,就能获得当前dwg的路径了。

对于获取到的路径,需要注意的是最好检查一下带不带"\“后缀。一般来讲,大家不会突然改动,一会儿带一会儿不带, 但是,出现突然变动的这种可能性是存在。对于某些国产cad来说,这种检查必不可少,经常在这种小细节当中整出幺蛾子。