如何获取当前autolisp文件的路径,是一个很常见的问题。这个问题,在很多编程语言当中, 都有非常简单的解决方案,通常是由内置的函数或方法直接给出。然而,在autolisp中, 并没有内置这种功能的函数或方法,需要做一些变通才能勉强实现。

3年前,已经就这个问题写过一篇博客, 今年年初又写了一篇获取dwg路径的博客, 这次之所以再写,是因为网上的大部分搜索结果都是坑,写出来帮助大家避坑。

先说正确方法。

获取当前的autolisp文件、fas文件或者vlx文件的路径,可以通过读取系统变量lastprompt来实现。 这个方法有一个前提条件,就是必须以拖动文件到cad绘图区的方式来加载这几种文件, 而不能通过appload命令去加载,通过appload命令加载就无法获取到文件路径了。

这个方法,适用于所有版本的autocad,亲测适用于中望cad2024/2025、浩辰cad2024/2025。 详细的步骤和说明,可以去看看我之前写的那篇博客

再说说网上最常见的错误方法。

这个错误的方法就是使用copyhist命令去获取文件路径。拜两个论坛所赐,这个错误的方法历史悠久、流传甚广, 再加上csdn的推波助澜,简直是一发不可收拾。经过实测,无论是autocad,还是中望cad2024/2025, 又或者浩辰cad2024/2025,都无法通过copyhist命令获取到文件路径。

鉴于这个方法的悠久历史,我只能推测它曾经有效过,不然的话,真得无法理解为什么能流传那么广泛。 不管怎么说,我们现在是不必探究这个问题了,因为lastprompt方法已经通用于autocad、中望和浩辰了。