Small Fish 发表于 2022-7-6 11:02:51

过滤设备列表

我该如何过滤我的列表,以便只有pc3文件和“无”显示
ie没有列出系统打印机?
谢谢
 
 

(setq ad (vla-get-activedocument (vlax-get-acad-object)))
   (vla-RefreshPlotDeviceInfo (vla-get-activelayout ad))
   (setq Devicelist (vlax-safearray->list (vlax-variant-value
   (vla-getplotdevicenames (vla-item (vla-get-layouts ad) Model")))))

Lee Mac 发表于 2022-7-6 11:15:01

如果没有,只需简单的vl删除。。。
 

(defun GetPC3 ( / doc )
(vl-load-com)

(vla-RefreshPlotDeviceInfo
   (vla-get-ActiveLayout
   (setq doc
       (vla-get-activedocument
         (vlax-get-acad-object)
       )
   )
   )
)
(vl-remove-if-not
   (function
   (lambda ( x ) (or (eq "None" x) (wcmatch x "*.pc3")))
   )
   (vlax-invoke
   (vla-item (vla-get-layouts doc) "Model") 'GetPlotDeviceNames
   )
)
)

CHLUCFENG 发表于 2022-7-6 11:25:47

在选项中:
 
https://www.cadtutor.net/forum/u:%5Cchuck%5Clisp%5Cother%5Ccadtutor%5Cplot-选项。jpg
 
 
我不确定在例程中使用什么系统变量。
 
扔出

Small Fish 发表于 2022-7-6 11:42:37

谢谢李-亲爱的。。。。。这就是我想要的。
“vl remove if not”将对我稍后使用的其他内容有用
干杯
旧金山
 
Chuck-我知道-我只需要通过编程知道

alanjt 发表于 2022-7-6 11:43:56

还要记住有用的vl remove和vl remove if:眨眼:

Small Fish 发表于 2022-7-6 11:57:30

 
谢谢你的提醒Alan

Lee Mac 发表于 2022-7-6 12:07:15

如果你是LISP新手,VLIDE中的“自动文字完成”对于发现类似函数非常方便-例如,在VLIDE中的一个新文件中,
 
键入vlax curve-然后按Ctrl+Shift+Space:wink:
页: [1]
查看完整版本: 过滤设备列表