autocad 脚本高手 请进

先是我看到别人的问题如下

请问一下,我想将某目录下的N个DWG文件快速合并到另一个新的DWG文件中去,且要不重叠,也不要离得太开,要比例不变。有这样的Lisp或ARX程序吗?用在R14及R2002环境下。

某目录下的N个DWG文件快速合并到另一个新的DWG文件

让我们来看看不要程序如何实现,其实只要对excel会用和autolisp的一点点知识(这个不难吧)就可以了。这个办法可是适用于autocadR2.6……autocad 3000版(但愿到那时我还在)

excel的要求:会对各列的数据进行字符运算(简单),

autolisp的知识:了解(command “函数名称”)就可以了。

下面我们开始了:

1、在第一行的各个单元格中分别填入文字(按照A,B,C,D,E,F,G的顺序,以下同这里):

filename,X_Position,Y_Position,X_Scale,Y_Scale,Ang_Rotate,Command_String

2、第一行的内容应该很清楚了,就是不同参数的名称,因此,从第二行开始就是输入不同的参数,其中文件名可以用

”DIR /s/b>filename.txt“的命令得到,将文件filename.txt打开,copy & Paste到excel中来就可以了。

(注意:/s的参数在xp下可以得到全路径的文件名称,不知道在其他操作系统中是否也是如此,请帮忙查证。)

反正文件名是如何得到我不管了。

3、现在的关键来了,就是如何得到Command_String中的内容,请仔细看好了。在G2单元格里面填入下面的公式:

="(command ""-insert"" " & A2 & " """ & B2 & "," & C2 & """ " & D2 & " " & E2 & " " & F2 & " " & ")"

注意了,其中的空格和三个(“”“)引号不能变哟。然后把G2的单元格往下一填充,就可以得到每一个的插入命令了。

下面是一个例子的数据:

其中A2到F2的数据为:

"d:\\test\\test_a1.dwg" 50 50 1 1 0

然后G2中得到的字符串为:

(command "-insert" "d:\\test\\test_a1.dwg" "50,50" 1 1 0 )

4、将上面得到的命令复制到记事本中,保存为以”.SCR“为后缀的文件就可以了。

5、在AutoCAD中新开一张图(你应该会吧),然后执行”SCRIPT“命令,然后将刚才保存的”×××××.SCR“文件给它。

你看到了什么?不要告诉我没有看到哟。

6、大功告成!但是不要忘记了这个过程哟。其实我们灵活地运用,不需要编程也能完成许多的工作。

你能够在其他的方面也灵活的运用吗?不然我就白写了这么多了。

我以前就是采用这种方法插图的,后来写CadAssis-->SCR,是为了简化步骤,操作更方便

但是我运行的时候出现如图问题,请教高手们指点

一般这类程序编写者,都会有自己很多的通用小程序(函数),很可能是你下的程序中间直接使用了某个函数,而这个函数没有放着这个主程序中,所以致使运行中断。如果你有源程序,应该是lisp,在Alisp编写环境中打开逐句运行,检查是那一句致使程序中断的,查看该句的函数是否有定义。其实如果你懂得一些LISP语言,可以按照他的思路自己编一个,这个程序不难。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-17
首先,D盘中需要有test这个文件夹,其次,在这个文件夹下需要有test_a1.dwg这个CAD文件
出现你上面这种情况应该就是找不到这个文件夹和文件夹下的文件。
第2个回答  2012-05-09
果然是只有高手才能解决的问题
相似回答