pzweng 发表于 2024-5-31 09:35:34

利用lisp批量插入文件的问题

本帖最后由 pzweng 于 2024-5-31 10:37 编辑

想把一个文件夹里的dwg合并到一个DWG文档里,发现文件名有问题,(findfile name) 返回nil
不知道如何通过lisp能实现,在此寻求大家的帮助


附上两个dwg文档





奇怪了,直接上传dwg附件文件名会变,我打包上传了

黄翔 发表于 2024-5-31 12:27:51

命令: (setq fs1 (cadr fs))
"2205014-A000-05A?框架.DWG"
命令: (vl-string->listfs1)
(50 50 48 53 48 49 52 45 65 48 48 48 45 48 53 65 63 191 242 188 220 46 68 87 71)
命令: (vl-string->list"2205014-A000-05A?框架.DWG")
(50 50 48 53 48 49 52 45 65 48 48 48 45 48 53 65 63 191 242 188 220 46 68 87 71)
命令: (vl-string->list"?")
(63)
命令: (vl-string->list" ")
(32)
这个就是个非法文件名

pzweng 发表于 2024-5-31 09:56:48

liuhe 发表于 2024-5-31 09:50
name是完整文件路径,不是文件名

(setq pf (getfiled "选取文件" "*" "dwg" 8))
(setq path (car (fnsplitl pf)))
(setq fs (vl-directory-files path (strcat "*." "dwg") 1))
(findfile (strcat path (car fs)));这里返回nil

pzweng 发表于 2024-5-31 12:33:16

黄翔 发表于 2024-5-31 12:27
命令: (setq fs1 (cadr fs))
"2205014-A000-05A?框架.DWG"
命令: (vl-string->listfs1)


insert命令却可以插入,现在是在寻求解决办法,问题是已知道了

liuhe 发表于 2024-5-31 09:50:00

name是完整文件路径,不是文件名

黄翔 发表于 2024-5-31 10:08:34

(strcat path (car fs))是不是要改成
(strcat path "\\" (car fs))要看你的路径后面带不带"\\"

pzweng 发表于 2024-5-31 10:16:19

黄翔 发表于 2024-5-31 10:08
(strcat path (car fs))是不是要改成
(strcat path "\\" (car fs))要看你的路径后面带不带"\\"

不是这个问题,是文件名的问题

黄翔 发表于 2024-5-31 10:23:09

有啥问题一切正常.

自贡黄明儒 发表于 2024-5-31 10:23:40

文件名中有空格??

pzweng 发表于 2024-5-31 10:29:29

自贡黄明儒 发表于 2024-5-31 10:23
文件名中有空格??

还不是空格,用insert插入后获取得到是块名有“?"号,这是这个符号导致无法用lisp实现

pzweng 发表于 2024-5-31 10:30:58

黄翔 发表于 2024-5-31 10:23
有啥问题一切正常.

你改了文件名吧,我把文件名复制到vlide里是这样的:
2205014-B000-01A?框架.DWG
里面有个问号

pzweng 发表于 2024-5-31 10:38:33

黄翔 发表于 2024-5-31 10:23
有啥问题一切正常.

不好意思,直接上传DWG会改掉文件名,我打包上传了,烦请再次下次
页: [1] 2
查看完整版本: 利用lisp批量插入文件的问题