我真的希望有人能在这里帮助我,因为我在这里束手无策。
我有一个程序,我正在工作,我试图做的只是VBA完成,这是一个失败的尝试;但是我可以在LISP中完成,所以我使用VBA到LISP技术。唯一的问题是,您只能在VBA和LISP之间传递预定义的AutoCAD变量(即USERS1、USERS2、USERS3、USERS4、USERS5)。这是正确的吗?
无论如何,为了回答我的问题,我需要将许多文件名(作为字符串)传递给LISP,这比5个用户字段允许的要多得多,并且由于在模块关闭后删除变量名的限制,我必须一次性将它们全部清除。
我认为下面的代码可以工作;但是我忘记了“Getvar”LISP命令需要引号,这会混淆VBA SendCommand。
- [color=black] ThisDrawing.SetVariable "USERS1", ProcessList.List(0)[/color]
- [color=black] ThisDrawing.SendCommand "(setq UserList (getvar "USERS1"))"[/color]
- [color=black] For i = ProcessList.ListCount - 2 To step - 1[/color]
- [color=black] ThisDrawing.SetVariable "USERS1", ProcessList.List(i)[/color]
- [color=black] ThisDrawing.SendCommand "(setq UserList (cons (getvar "USERS1") UserList))"[/color]
- [color=black] Next i[/color]
无论如何,这可能不是最好的方法;但就像我说的,我在这里已经不知所措了。有没有人有办法让这件事成功?
ProcessList=列表框
我希望我提供了足够的信息。
提前谢谢。 |