jbborge 发表于 2022-7-6 15:19:19

...通知我的简单例程

大家好,希望有人能帮我完成这个简单的程序或反应器。在打印之前,我只需要一个警报框,指示是否存在“关闭”层。最好也有选项,比如“取消”或“无论如何继续绘图”。。。但总的来说,我只需要在绘图之前发出视觉警告。非常非常感谢!

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

澄清一下,您是指关闭的图层还是设置为不打印的图层?

jbborge 发表于 2022-7-6 15:34:46

 
....只需关闭图层。通常,我们的所有层都应该在退出/保存修改后的图形之前打开。然而,有时人们只是关闭几个层(图案填充、文本等),以更好地了解他们正在做什么&然后忘记重新打开这些层。因此,我们的plot/pdf/dwf请求将缺少对象&一个简单的反应器来提醒用户肯定有助于防止重复打印。任何绘图或冻结层都不应受到任何影响。谢谢!

ASMI 发表于 2022-7-6 15:40:29

只需加载即可。
 
(defun CreatePlotReactor()
(vl-load-com)
(if(not plot:reactor)
   (setq plot:reactor
   (vlr-command-reactor nil
   '((:vlr-commandWillStart . PlotAlert))))
   ); end if
(princ)
); end of CreatePlotReactor

(CreatePlotReactor)

(defun PlotAlert(Reac Args / lList rStr)
(cond
   ((=(car Args) "PLOT")
    (vlax-for l (vla-get-Layers
           (vla-get-ActiveDocument
             (vlax-get-acad-object)))
      (if(=(vla-get-LayerOn l):vlax-false)
(setq lList(cons(vla-get-Name l)lList))
); end if
      ); end vlax-for
    (if lList
      (progn
(setq rStr "==== LAYERS OFF ====")
(foreach l(reverse lList)
   (setq rStr(strcat rStr "\n" l))
   ); end foreach
(alert rStr)
); end progn
      ); end if
   ); end condition
   ); end cond
(princ)
); end of PlotAlert

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

很好的一个ASMI-一如既往的一流。
 
但是为什么你必须使用(汽车Args)?

jbborge 发表于 2022-7-6 15:47:24

阿斯米,我真诚地表达我的感激。。。谢谢你,先生!
也谢谢你尝试李!你们今天过得很愉快。

Lee Mac 发表于 2022-7-6 15:57:28

谢谢jbborge-你今天也很愉快

ASMI 发表于 2022-7-6 15:59:19

 
你们能站在断点并在窗口中寻找Args值吗?它会回答你的问题。

ASMI 发表于 2022-7-6 16:03:30

 
谢谢你的好话

Lee Mac 发表于 2022-7-6 16:13:12

 
对不起,你把我弄丢了?
页: [1] 2
查看完整版本: ...通知我的简单例程