另一个VBA到LISP的问题
我真的希望有人能在这里帮助我,因为我在这里束手无策。我有一个程序,我正在工作,我试图做的只是VBA完成,这是一个失败的尝试;但是我可以在LISP中完成,所以我使用VBA到LISP技术。唯一的问题是,您只能在VBA和LISP之间传递预定义的AutoCAD变量(即USERS1、USERS2、USERS3、USERS4、USERS5)。这是正确的吗?
无论如何,为了回答我的问题,我需要将许多文件名(作为字符串)传递给LISP,这比5个用户字段允许的要多得多,并且由于在模块关闭后删除变量名的限制,我必须一次性将它们全部清除。
我认为下面的代码可以工作;但是我忘记了“Getvar”LISP命令需要引号,这会混淆VBA SendCommand。
ThisDrawing.SetVariable "USERS1", ProcessList.List(0)
ThisDrawing.SendCommand "(setq UserList (getvar "USERS1"))"
For i = ProcessList.ListCount - 2 To step - 1
ThisDrawing.SetVariable "USERS1", ProcessList.List(i)
ThisDrawing.SendCommand "(setq UserList (cons (getvar "USERS1") UserList))"
Next i
无论如何,这可能不是最好的方法;但就像我说的,我在这里已经不知所措了。有没有人有办法让这件事成功?
ProcessList=列表框
我希望我提供了足够的信息。
提前谢谢。 奥尔哈多,
我没有完整的答案,但对于额外的用户变量,至少有两种方法。您可以在Windows中设置环境变量。我自己没有这样做,但我听说这是可以做到的。我不知道环境中有多少空间可供用户变量使用。也许论坛上有人可以提供详细信息。您还可以在Autolisp中打开文本文件,写入和读取任何需要的内容,然后根据需要删除或保留该文件。我已经做了很多次了,效果很好。希望这有帮助。 哦,顺便说一句,记住关闭文件,否则你会出现读取错误。 字典是AutoLISP VBA交换的最佳方式。 如何将数据放入excel 如何将autocad对象中的数据放入excel。例如将文本值放入excel表格!
页:
[1]