highrez2 发表于 2022-7-5 22:53:18

Lisp查找区域

正在寻找搜索数千个dwg以查看其中是否包含区域的解决方案。如果是,则显示此列表或保存该列表以供以后使用。

MSasu 发表于 2022-7-5 23:07:27

使用BAT文件创建要调查的文件列表,其中包含以下语句:
DIR /b *.DWG > MyDrawingsList.SCR
从中生成如下脚本(每个文件一行)-调整彩色部分:
_OPEN "C:\MyDrawings\Drawing1st.dwg" (if (ssget "_X" '((0 . "REGION"))) (progn (setq fis (open "C:\\RegionQueryResults.txt" "a")) (write-line "Drawings1t.dwg" fis) (close fis))) _CLOSE
_OPEN "C:\MyDrawings\Drawing2nd.dwg" (if (ssget "_X" '((0 . "REGION"))) (progn (setq fis (open "C:\\RegionQueryResults.txt" "a")) (write-line "Drawing2nd.dwg" fis) (close fis))) _CLOSE
;end of script
使用Excel加速脚本生成。

highrez2 发表于 2022-7-5 23:15:26

谢谢
BAT文件生成了SCR文件,但它看起来只会搜索它所在的目录。。。是这样吗?我可以用//SERVER\u NAME/替换DIR吗?我如何处理搜索子文件夹?
代码:
//SERVER_NAME/ /b *.DWG > MyDrawingsList.SCR

Lee Mac 发表于 2022-7-5 23:29:24

请参阅此参考:
 
http://www.robvanderwoude.com/ntdir.php
 
/s开关是您所需要的,即:
 
dir "\\SERVER_NAME\*.lsp" /s /b > mydrawingslist.scr

highrez2 发表于 2022-7-5 23:41:34

谢谢,这个列表很好用。
 
我的列表相当大,有2726行(哎哟),如何导出Excel文件来创建SCR文件?
 
或者有没有其他方法来报告巫婆文件中有区域?

Lee Mac 发表于 2022-7-5 23:46:17

要提供替代方法,请加载此函数,然后加载并运行以下内容:
(defun c:findregions ( / f )
   (setq f "C:\\RegionResults.txt") ;; Output file
   (LM:odbx
      '(lambda ( x / r )
         (vl-catch-all-apply
            '(lambda nil
                   (vlax-for l (vla-get-layouts x)
                     (vlax-for o (vla-get-block l)
                           (if (= "AcDbRegion" (vla-get-objectname o))
                               (progn (setq r t) (exit))
                           )
                     )
                   )
               )
         )
         (if r
               (if (setq d (open f "a"))
                   (progn (write-line (vla-get-name x) d) (close d))
                   (prompt (strcat "\nUnable to open " f))
               )
         )
       )
       nil nil
   )
   (if (setq f (findfile f))
       (startapp "notepad" f)
       (prompt "\nNo regions found in any drawing.")
   )
   (princ)
)
(vl-load-com) (princ)

highrez2 发表于 2022-7-5 23:56:40

再次感谢李,一旦第一种方法完成,我会尝试一下。
页: [1]
查看完整版本: Lisp查找区域