这两天折腾批量修改文件信息的小程序;需要指定一个空路径保存修改后的图纸。查了一圈autolisp的函数没找到合适的方案。后面网上找到个方案;现将代码记录如下:
;;;获得指定文件夹路径
(defun c:get_directory()
(vl-load-com)
(command "cmdecho" 0)
(setq sh (vla-getInterfaceObject (vlax-get-acad-object) "Shell.Application" ));创建一个shell应用,接收程序ID并试图将其作为进程内服务器加载到 AutoCAD 中
(setq folder (vlax-invoke-method sh 'BrowseForFolder 0 "" 0 )) ;调用activex方法 创建一个对话框,使用户可以选择一个文件夹,然后返回所选文件夹的Folder对象。
(vlax-release-object sh);释放进程
(setq folderobject (vlax-get-property folder 'Self));获取shell对象的self特征
(setq result (vlax-get-property FolderObject 'Path));获取文件夹路径
(princ "该指定路径为:")(princ result)
(print )
)
效果演示:
)