be_bo 发表于 2022-7-6 10:13:49

从pa中减去文件名

我正在使用LSP将CAD打印为PDF。
以下是完整文件名路径的代码:
 
(setq pdf_名称(GetField“指定要绘制的文件名*.pdf”(getvar“SAVENAME”)“pdf”5))
 
i、 e.-i:\cadd\项目\计划。pdf
 
只捕获文件夹路径的代码是什么?换句话说,我如何从这个表达式中减去文件名,然后只获得文件夹名?
 
i、 e.-i:\cadd\项目\
 
非常感谢。

jvillarreal 发表于 2022-7-6 10:17:44

(getvar’dwgprefix)

be_bo 发表于 2022-7-6 10:20:32

这将获得包含DWG文件的文件夹的路径。
我正在将PDF文件保存到不同的文件夹中。
我的lisp将调用一个对话框,用户可以浏览PDF文件并将其保存到自己选择的文件夹中。
我需要获取此文件夹的路径,以便打开此文件夹。
所以,我需要从这个表达式中减去一个文件名,只得到文件夹名。

VVA 发表于 2022-7-6 10:25:55


(vl-load-com)
(setq path "i:\\cadd\\project\\Plan.pdf")
(setq file (VL-FILENAME-BASE path))
(setq dir (VL-FILENAME-DIRECTORY path))
(setq ext (VL-FILENAME-EXTENSION path))

pBe 发表于 2022-7-6 10:29:05

有多种方法可以检索文件夹路径。。。
 
但是既然你已经有了变量pdf\u的名字
 

(substr pdf_name 1 (- (strlen pdf_name)(strlen (getvar "dwgname"))))

 
 
你打败了我

be_bo 发表于 2022-7-6 10:32:18

这是我必须玩的东西,但我做到了!
非常感谢。
спасибо, земляк!!

be_bo 发表于 2022-7-6 10:35:27

这是一个即插即用的东西。
非常感谢。

be_bo 发表于 2022-7-6 10:38:45

谢谢你们两位及时有效的帮助!

Lee Mac 发表于 2022-7-6 10:39:18

 
请记住,这不是通用的,因为它假设文件名的长度与当前图形文件名的长度相同*只是让你意识到*
 
无论如何,有些已经发布,但这里还有一些:
 

(car (fnsplitl <filename>))

(vl-filename-directory <filename>)

(substr <filename> 1 (vl-string-position 92 <filename> 0 t)) ;; assumes "\\" used

(substr <filename> 1 (vl-string-position 92 (vl-string-translate "/" "\\" <filename>) 0 t))

pBe 发表于 2022-7-6 10:42:58

 
乔治,你说得对
 
(substr <filename> 1 (vl-string-position 92 <filename> 0 t)) ;;;;; Lee Mac 2010


 
这个很酷
页: [1] 2
查看完整版本: 从pa中减去文件名