llsheng_73 发表于 2013-12-14 20:55:00

这两天给逼急了弄的两个小东东

(defun addsearchs(folderlst);;将folderlst里边的全路径目录添加到cad搜索支持
(setenv"ACAD"(strcat(getenv "ACAD")(apply'strcat(mapcar'(lambda(x)(strcat";"x))folderlst))))
)
;;folderlst应该包括盘,比如下边这样的表("E:\\Game\\WULIN" "E:\\Game\\WULIN\\733" "D:\\WULIN\\734" "E:\\Game\\WULIN\\735" "E:\\Game\\WULIN\\DXYVTG")
;;把目录添加到CAD的搜索支持里边后,要通过vla-add block的方法插入图形文件就好办了(defun xdirectory(folder / a b);;;指定目录folder下的所有子目录
   (if(setq b(if(wcmatch folder",*/,*\\")folder(strcat folder"\\"))a(cddr(vl-directory-files b nil -1)))
   (cons folder(apply'append(mapcar'(lambda(x)(xdirectory(strcat b x)))a)))
   (list folder)))
下边这个不是我自己写的,只是改了一个可以选择的处理方式,比如对嵌套坐标点表和别的嵌套表我们通常希望的处理结果要有所不同,当然两种处理方法都有好多源码,其中不乏好贴,但结合在一起的没怎么看到
(defun ListAll(tlst f / aaa lst);;f为t时全部压平,nil时保留一层
(defun aaa (tlst)
    (foreach b tlst
      (if(if f(listp b)(and(listp b)(listp(car b))))(aaa b)(setq lst(cons b lst)))))
(if(listp tlst)(if(setq lst (aaa tlst))(reverse lst)))
)
;;(ListAll'(0 1(a b(c d) e f)(g h) 4 5)nil)==>(0 1 (A B (C D) E F) (G H) 4 5)
;;(ListAll'(0 1(a b(c d) e f)(g h) 4 5)t)===>(0 1 A B C D E F G H 4 5)
;;;(ListAll'(0 1((a b)((c d)(e f)))((g h) 4 5))nil)===>(0 1 (A B) (C D) (E F) (G H) 4 5)

caogis 发表于 2015-8-31 19:09:00

在安装文件时用得着吧

llsheng_73 发表于 2022-7-5 17:12:00


非递归返回指定目录下所有子目录
(出处: 乐筑天下CAD社区)

yuan4399 发表于 2018-12-2 10:41:00

没明白

ysq101 发表于 2014-2-24 18:00:00

这么好的东东没人识货???这个必须顶啊

自贡黄明儒 发表于 2014-2-24 18:10:00

这个必须顶,赞!

mjz521yy 发表于 2014-2-25 12:56:00

这么好的东东没人识货???这个必须顶啊

Kye 发表于 2014-5-19 20:22:00


大侠的程序很好哈
(defun addsearchs(folderlst);;将folderlst里边的全路径目录添加到cad搜索支持
(setenv "ACAD" (strcat(getenv "ACAD")(apply'strcat(mapcar'(lambda(x)(strcat";"x))folderlst))))
)
;;________________________________________
(setq folderlst '("E:\\Game\\WULIN" "E:\\Game\\WULIN\\733" "D:\\WULIN\\734" "E:\\Game\\WULIN\\735" ))
(addsearchs folderlst)

清风明月名字 发表于 2014-5-20 11:13:00

谢谢楼主分享,辛苦了!

love1030312 发表于 2014-6-12 22:18:00

这个必须顶,赞!
页: [1] 2
查看完整版本: 这两天给逼急了弄的两个小东东