Olhado_ 发表于 2022-7-6 15:12:41

窗口列表

我想知道在VBA或LISP中是否有一种方法可以将窗口的列表显示为列表或数组,当您手动单击屏幕顶部的“Windows”菜单时可以找到。
谢谢

rkmcswain 发表于 2022-7-6 15:31:27

这里有一种方法。
 

(setq mylist '())
(vlax-for x
(vla-get-documents
    (vlax-get-acad-object))
(setq mylist (cons (vla-get-name x) mylist))
)
; print the list
(mapcar 'print mylist)

Lee Mac 发表于 2022-7-6 15:44:52

麦克斯温,
 
在阅读了关于“vlax for”的ACAD LISP参考之后,我说它是“foreach”的VL替代品,对吗?
 
如果是这样,“vlax for”和“foreach”之间有什么区别?
 
 
一如既往地谢谢你
 

rkmcswain 发表于 2022-7-6 16:04:09

因为它们不可互换,所以不是真正的替代方案,但它们对不同的数据类型做相同的事情。 
 
(foreach)评估列表中的每个成员
(vlax for)评估集合中的每个成员

Lee Mac 发表于 2022-7-6 16:23:58

啊,我现在明白了-只是在尝试下面的代码:
 
(defun c:dumpdoc (/ obj)
(setq obj (vlax-get-acad-object))
(vlax-dump-object obj t)
(vlax-release-object obj)
(princ)
)
 
我看到,当你使用“vla get documents”时,它会返回一个,所以我认为vlax在这方面起作用
 
谢谢你的帮助,麦克斯温,一如既往地感谢你,
 
干杯
 
页: [1]
查看完整版本: 窗口列表