프로그램
캐드 분류

유료로 리습수정해주실수 있나요?

컨텐츠 정보

  • 211 조회
  • 4 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

제가 작업하는 내용은
폴더안에 캐드도면파일이 30~100개정도 있습니다.
도면들을 전부열어서 폭파를시키고 저장을해야합니다.
현재는 한개도면을열어서 Ctrl+a 한후에 X엔터 이런식으로 도면하나하나를 폭파합니다.

첨부한리습은 폴더를지정하면 폴더안의 여러도면들을 하나하나열면서 퍼지해주는 리습입니다.
첨부한리습을 수정하여 퍼지가아닌 도면전체를 폭파하는것으로 수정해주실수 있나요?
수정안되면 새로제작해주셔도 됩니다.
작업이 어려울것같아서 유료로 의뢰드립니다.
리습제작 가능하신분 계시면 비용및 가능시간을 쪽지로 보내주시면 감사하겠습니다.
  이메일주소입니다: 007bsc@naver.com

;;;CADALYST 03/05 Tip2023: PurgeFiles.lsp Directory Clean Up (c) Andrzej Gumula
 
;;; [c]2004 Andrzej Gumula, Katowice, Poland
;;; e-mail: a.gumula@wp.pl
;;; This routine purge dwg files from selected folder
 
(vl-load-com)
(defun c:PUAU (/ FilesList DwgPath SubDir Files File)
(defun GetFolder (/ Dir Item Path)
 (cond
  ((setq Dir (vlax-invoke (vlax-get-or-create-object "Shell.Application") 'browseforfolder 0 "Select folder with DWG files:" 1 ""))
   (cond
    ((not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-invoke-method (list Dir 'Items))))
     (setq Item (vlax-invoke-method (vlax-invoke-method Dir 'Items) 'Item))
     (setq Path (vla-get-path Item))
     (if (not (member (substr Path (strlen Path) 1) (list "/" "\")))
      (setq Path (strcat Path "\"))
     );end if
    )
   );end cond
  )
 );end cond
 Path
);end GetFolder
 
(defun vl-findfile (Location / DirList Path AllPath)
 (MakeDirList Location)
 (setq DirList (cons Location DirList))
 (foreach Elem DirList
  (if (setq Path (vl-directory-files Elem "*.dwg"))
   (foreach Item Path (setq AllPath (cons (strcat Elem "/" Item)  AllPath)))
  );end if
 )
 (reverse AllPath)
);end vl-findfile
(defun MakeDirList (Arg / TmpList)
 (setq TmpList (cddr (vl-directory-files Arg nil -1)))
 (cond
  (TmpList
   (setq DirList (append DirList (mapcar '(lambda (z) (strcat Arg "/" z)) TmpList)))
   (foreach Item TmpList (MakeDirList (strcat Arg "/" Item)))
  )
 );end cond
);end MakeDirList
(if (not FileSystemObject)
  (setq FileSystemObject (vla-getInterfaceObject (vlax-get-acad-object) "Scripting.FileSystemObject"))
);end if
(cond
((= (getvar "SDI") 0)
(cond
 ((setq DwgPath (GetFolder))
  (initget "Yes No")
  (setq Subdir (cond ((getkword "nLooking for subfolders? No,[Yes]: "))
       (T "Yes")))
  (if (equal SubDir "Yes")
   (setq Files (vl-findfile (substr DwgPath 1 (1- (strlen DwgPath)))))
   (setq Files (mapcar '(lambda (x) (strcat dwgpath x))(vl-directory-files DwgPath "*.dwg" 1)))
  );end if
  (setq Files (mapcar 'strcase Files))
  (cond
    (Files
     (vlax-for & (vla-get-documents (vlax-get-acad-object )) (setq FilesList (cons (strcase (vla-get-fullname &)) FilesList)))
     (foreach & Files
      (cond
 ((not (member & FilesList ))
         (cond
   ((/= (logand (vlax-get-property (vlax-invoke-method FileSystemObject 'getfile &) 'Attributes) 1) 1)
    (cond
      ((setq File (vla-open (vla-get-documents (vlax-get-acad-object)) &))
       (prompt (strcat "nPurge " & ". Please wait…"))
              (vla-purgeall File)
              (vla-AuditInfo File T)
       (prompt (strcat "nSave and close " &))
       (vla-save File)
       (vla-close File)
       (vlax-release-object File)
      )
      (T (prompt (strcat "nCannot open " & "nDrawing file was created by an incompatible version. ")))
    );end cond
   )
   (T (prompt (strcat & " is read-only. Purge canceled. ")))
  );end cond
 )
 (T (prompt (strcat & " is open now. Purge canceled. ")))
      );end cond
     );end foreach
    )
    (T (prompt "nNothing files found to purge. "))
  );end cond
 )
 (T (prompt "nNothing selected. "))
);end cond
)
(T (prompt "nThe routine is not available in SDI mode. "))
);end cond
(princ)
);end c:PurgeFile
(prompt "nLoaded new command PurgeFiles. ")
(prompt "n[c]2004 Andrzej Gumula. ")
(princ)







관련자료

댓글 4 / 1 페이지

Sharp4님의 댓글

100개정도의 도면을 열어서 explode 후 저장이라… 스크립트짜서 돌리면 간단할텐데요. 굳이 리습까지쓸 필요가있나요? 더군다나 유료로?

상큼메론90님의 댓글

emoticon

도면을 열고 작업하고 다시 저장, 닫기 이런 작업은 스크립트도 좋은 방법중 하나 입니다.

예전에 쓴 글인데, 스크립트 참조해 보세요

;;

경안단초님의 댓글

안녕하세요..예전에 만들어주신 리습 항상고맙게 잘 사용중입니다. 올려주신자료는 이미 찾아놓았습니다..ㅎ –감사합니다– 

전체 6,983 / 1 페이지
번호
제목
이름

최근글


새댓글


알림 0