这两天给逼急了弄的两个小东东
(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) 在安装文件时用得着吧
非递归返回指定目录下所有子目录
(出处: 乐筑天下CAD社区)
没明白 这么好的东东没人识货???这个必须顶啊 这个必须顶,赞! 这么好的东东没人识货???这个必须顶啊
大侠的程序很好哈
(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)
谢谢楼主分享,辛苦了! 这个必须顶,赞!
页:
[1]
2