tjuzkj 发表于 2010-12-21 12:24:50

如何用lisp直接打开dwg文件

我现在编程遇到一个问题,我要打开某目录下的dwg文件,
我想有没有办法通过lisp,直接打开这些文件,而不是通过open文件选择框打开这些文件.

qcw911 发表于 2010-12-21 12:41:24

本帖最后由 qcw911 于 2010-12-21 12:41 编辑

建议楼主先看看近期的帖子

(defun c:fd()
(setq path (vl-registry-read "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\win_path" "win_path"))
(if(= nil path)
      (progn
          (setq path (AddBS(Get_Folder)))
          (vl-registry-write "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\win_path")
          (vl-registry-write "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\win_path" "win_path" path)
          (setq path (vl-registry-read "HKEY_CURRENT_USER\\Software\\Autodesk\\AutoCAD\\win_path" "win_path"))
      )
)
   (setq dwg (getstring "\n請輸入文件名:"))
;;;   (setq path "D:\\temp\\")
   (if (and (/= "" dwg)(findfile (strcat path dwg ".dwg")))
       (vla-open (vla-get-documents(vlax-get-acad-object)) (strcat path dwg ".dwg"))
       (alert "沒有該文件")
   )
(princ "\n--------<<命令:FD >>---------")
(princ)
)
(defun Get_Folder( / path_object shell)
      (setq shell (Vlax-Get-Or-Create-Object "Shell.Application" ))
      (if (setq path_object (vlax-invoke shell 'BrowseForFolder 0 "" 0 0))
                (vlax-get (vlax-get path_object 'Self) 'Path)
      )
)

;;;==================================================================
;;; (AddBS cPath) 按需添加反斜杠符到路径中。
;;;------------------------------------------------------------------
;;; 参数:
;;;   cPath使用路径。
;;;------------------------------------------------------------------
;;; 返回:
;;;   cPath 添加了反斜杠符的路径
;;; 示例:(setq a "C:\\MyFolder")
;;;      (AddBS a) ;
;;;               返回 "C:\\MyFolder\\"
;;;==================================================================

(defun AddBS (cPath)
(if(not (= (substr cPath (strlen cPath)) "\\"))
    (strcat cPath "\\")
      cPath
    ) ;_ end of if
)

Andyhon 发表于 2010-12-21 12:42:07

先参考一下:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=75760
页: [1]
查看完整版本: 如何用lisp直接打开dwg文件