Вопрос по "purge"
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вопрос по "purge"

Вопрос по "purge"

Ответ
Поиск в этой теме
Непрочитано 01.02.2006, 16:33 #1
Вопрос по "purge"
pers2
 
Конструктор
 
Москва
Регистрация: 18.02.2005
Сообщений: 126

Привет! Подскажите, а существует ли возможность пропургенить (в смысле применить команду "purge" или "очистить") большое кол-во файлов (примерно тысячи три) быстро и не каждый в отдельности.
Просмотров: 4143
 
Непрочитано 01.02.2006, 16:39
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,410


Можно. Поищи здесь и на autocad.ru - решения были.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.02.2006, 17:42
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Вот лисп с cadalyst

Код:
[Выделить все]
;;;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:PurgeFiles (/ 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)
	      (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)
http://new.cadalyst.com/code/browsey...ullyear=2005#5
VVA вне форума  
 
Непрочитано 01.02.2006, 18:19
#4
Romanich

Robot и Хобот
 
Регистрация: 29.08.2003
Abu Dhabi
Сообщений: 940
Отправить сообщение для Romanich с помощью Skype™


а еще есть прога PURGEM 2000.
Последняя версия 3.1.5 вроде
http://www.absolutecompsolutions.com...000_about_form
__________________
Robot и Хобот
Romanich вне форума  
 
Непрочитано 02.02.2006, 13:03
#5
Vook


 
Регистрация: 18.11.2004
Сообщений: 76


Скриптами делается все - без всякого лиспа
Vook вне форума  
 
Автор темы   Непрочитано 03.02.2006, 19:57
#6
pers2

Конструктор
 
Регистрация: 18.02.2005
Москва
Сообщений: 126


Спасибо всем! А может кто подскажет ещё и куда и как текст с липсом толкать, чтоб заработало??
pers2 вне форума  
 
Непрочитано 04.02.2006, 12:03
#7
Залётный


 
Регистрация: 15.04.2005
Сообщений: 243


Цитата:
Сообщение от pers2
Спасибо всем! А может кто подскажет ещё и куда и как текст с липсом толкать, чтоб заработало??
А нужен ли лисп?
Как сказал:
Цитата:
Сообщение от Vook
Скриптами делается все - без всякого лиспа
и не только пурген.

Вопрос как запускать скрипт?
Я полагаю, что EZSCRIPT-PRO (не путать с Autodesk(овским) SRIPTPRO) один из лучших генераторов скриптов:
http://www.angelfire.com/clone/ezscript/ezscript.htm
он к тому же бесплатный.
Залётный вне форума  
 
Непрочитано 06.02.2006, 10:34
#8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Спасибо всем! А может кто подскажет ещё и куда и как текст с липсом толкать, чтоб заработало??
1.Сохрани код в файле PurgeFiles.lsp
2. _appload указать файл PurgeFiles.lsp
3. В командной строке ввести PurgeFiles
VVA вне форума  
 
Автор темы   Непрочитано 10.02.2006, 19:17
#9
pers2

Конструктор
 
Регистрация: 18.02.2005
Москва
Сообщений: 126


VVA - Огрмное спасибо.....
Только все равно, если файл снова открыть и нечего не менять, то если команду purge активировать из меню, есть что пургенить... :cry: а может и руки кривоваты, но....
pers2 вне форума  
 
Непрочитано 11.02.2006, 00:27
#10
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Вобще говоря, довольно нормальное и даже обыденое явление, когда после первого _.purge можно выполнить второй и даже третий. Интуитивно, по вышеизложенному коду, попробовать строку
Код:
[Выделить все]
(vla-purgeall File)
удвоить или утроить.
vk вне форума  
 
Непрочитано 21.05.2013, 15:04
#11
Денис52


 
Регистрация: 26.04.2013
Сообщений: 4


Цитата:
Сообщение от vk Посмотреть сообщение
Вобще говоря, довольно нормальное и даже обыденое явление, когда после первого _.purge можно выполнить второй и даже третий. Интуитивно, по вышеизложенному коду, попробовать строку
Код:
[Выделить все]
(vla-purgeall File)
удвоить или утроить.
куда вставить данную строку?
Денис52 вне форума  
 
Непрочитано 21.05.2013, 16:22
1 | #12
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


Денис52, в этом лиспе найди эту строчку и повтори ее, добавив в лисп
__________________
Kiev, Ukraine
sasha_lif вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Вопрос по "purge"

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск