comcu 发表于 2022-7-6 14:31:23

文件支持路径

有没有办法设置文件支持路径,使您输入的路径不到块所在的最后一个文件夹?
 
基本上,我有20个文件夹在一个叫做cad块的文件夹中
 
路径示例如下
 
p \公司名称\绘图室\设计\工具选项板\ cad块\结构
p \公司名称\绘图室\设计\工具选项板\ cad块\固定件-Teks
p\company name\drawing office\design\tool palettes\cad blocks\Fixings-Scws
p \公司名称\绘图室\设计\工具选项板\ cad块\硅胶密封件




 
有没有办法只走一条路
 
p \公司名称\绘图室\设计\工具选项板\ cad块
 
 
然后autocad将在其余文件夹中搜索块?
 
非常感谢,
 
科林

lpseifert 发表于 2022-7-6 14:46:16

我认为你是索尔·科林;AFIK Autocad的支持路径必须明确,它不会搜索子目录。

SLW210 发表于 2022-7-6 14:56:47

最简单的解决方案是将所有块放在Cad块文件夹中,而忽略子文件夹。

VovKa 发表于 2022-7-6 15:04:04

尽管如此,你仍然可以自动化你的工作

(vl-load-com)
(defun Test (Path / SupportPath FilesObj)
(setq FilesObj (vla-get-Files (vla-get-Preferences (vlax-get-acad-object))))
(setq SupportPath (strcat (vla-get-SupportPath FilesObj) ";"))
(foreach Folder (vl-remove-if-not
          'vl-file-directory-p
          (mapcar (function (lambda (f) (strcat Path "\\" f)))
                  (cddr (vl-directory-files Path))
          )
          )
   (if        (not (vl-string-search (strcat Folder ";") SupportPath))
   (setq SupportPath (strcat SupportPath (strcat Folder ";")))
   )
)
(vla-put-SupportPath FilesObj SupportPath)
(vlax-release-object FilesObj)
(princ)
)
(test "P:\\company name\\drawing office\\design\\tool palettes\\cad blocks")

需要测试!

BIGAL 发表于 2022-7-6 15:10:33

我制作了一个包含所有块的mnu,然后可以直接从屏幕上拾取,路径是硬编码的,所以没有问题,包括ech块的幻灯片图像,以便轻松拾取。
 
[沟槽]
^C^C(openblk S:/ACADSTDS/CIVIL STANDARDS/CGG101”)
 
需要更多代码

ssg 发表于 2022-7-6 15:18:26

 
VovKa似乎对vla xxxx函数很在行!这对许多情况都有效。但我有一个简单的例程,结果是一样的:

;;;Add Full Search Path for all sub directories in s
(defun add_fsp(s / dL x)
(setq dL (vl-remove "." (vl-remove ".." (vl-directory-files s "*.*" -1))))
(foreach x dL (setenv "ACAD" (strcat (getenv "ACAD") ";" s "\\" x)))
)

VovKa 发表于 2022-7-6 15:29:22

尼斯ssg
我没有怀疑Acad足够聪明,可以检查给定的支持路径是否已经存在

alrob 发表于 2022-7-6 15:39:07

我不是一个程序员,只是一个用户,你能给我介绍一下这个过程吗。此外,我使用的是08版
页: [1]
查看完整版本: 文件支持路径