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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как оптом сохранить все чертежи в формате 14-го автокада?

Как оптом сохранить все чертежи в формате 14-го автокада?

Ответ
Поиск в этой теме
Непрочитано 28.09.2004, 09:04
Как оптом сохранить все чертежи в формате 14-го автокада?
Соня
 
Пермь
Регистрация: 14.01.2004
Сообщений: 220

Как оптом сохранить все чертежи в формате 14-го автокада?
я их открыла и каждый -"сохранить как" в формате 14-го автокада. а у меня их около сотни- мало того, что автокад захлебывается, так еще и надоело до чертиков(

Если кому интересно чем это я занимаюсь:
есть файлы 10-го автокада, шрифты в 2002 не читаются. Для конвертора надо файлы 14-го автокада.. я перевожу 10 в 14 и потом в 2000.
Просмотров: 13991
 
Непрочитано 21.04.2010, 17:33
#21
Dym


 
Регистрация: 27.09.2005
Двинскъ
Сообщений: 586
Отправить сообщение для Dym с помощью Skype™


люди, подправьте кто сможет прогу для чистки (Purge) всех чертежей в указанной директории так, что б сохраняла в 2004.
Dym вне форума  
 
Непрочитано 21.04.2010, 19:55
#22
Кулик Алексей aka kpblc
Moderator

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


Такое?
Код:
[Выделить все]
(defun psf (/ documentscollection unpurgedfilelist activedocument acadobject unpurged filelist index path x)

  (vl-load-com) ;Загрузить расширение
  (setq acadobject (vlax-get-acad-object)) ;получить объект Application
  (setq activedocument (vla-get-activedocument acadobject)) ;Получить указатель на активный документ
  (setq documentscollection (vla-get-documents acadobject)) ;получить указатель на коллекцию документов

  (setq path (vl-filename-directory (getfiled "Выберете любой чертеж в папке" "" "dwg" 16)))
          ;Получить путь к  очищаемой папке
  (alert
    "!!!Внимание!!!\n
          Процесс чистки может занять много времени.\n
          В целях ускорения процесса сессия будет невидима\n
          Пожалуйста дождитесь завершения\n
	  Нажмите ОК для продолжения"
    )     ;выдать предупреждение
  (vlax-put-property acadobject "Visible" :vlax-false) ;убрать сеанс с экрана

  (setq filelist (vl-directory-files path "*.dwg" 1)) ;получить список файлов в директории
  (if (not (null filelist)) ; если найден хоть один файл
    (progn
      (setq filelist (mapcar '(lambda (x) (strcat path "\\" x)) filelist)) ;получить список полных путей к файлам
      (setq index 0) ;инициализировать индекс
      (setq unpurged 0) ;инициализировать счетчик неочищеных файлов
      (setq unpurgedfilelist "") ;Инициализировать строку - список неочищеных
      (repeat (length filelist) ;цикл
        (setq activedocument
               (vl-catch-all-apply 'vla-open (list documentscollection (nth index filelist))) ;открыть файл
              ) ;end setq
        (if (not (vl-catch-all-error-p activedocument)) ;если при открытии не возникло ошибок
          (progn

            (if (= (vlax-get-property activedocument "ReadOnly") :vlax-true)
          ;если чертеж открыт только для чтения
              (progn ;если чертеж нельзя изменять
                (setq unpurged (1+ unpurged)) ;инкримент счетчика неочищеных файлов
                (setq unpurgedfilelist (strcat "\n" (nth index filelist) unpurgedfilelist))
          ; добавить строку с путем к файлу
                (vlax-invoke-method activedocument "Close" :vlax-false) ;закрыть чертеж без сохранения
                ) ;end progn
              (progn ;если чертеж можно изменять
                (vlax-invoke-method activedocument "Purgeall") ;чистить
                (vlax-invoke-method activedocument "Purgeall") ;чистить
                (vlax-invoke-method activedocument "Purgeall") ;чистить
                (vlax-invoke-method activedocument "SaveAs" ac2004_dwg) ; сохранить в формате 2004
                (vlax-invoke-method activedocument "Close") ;закрыть чертеж
                ) ;end progn
              ) ;end if
            ) ;end progn

          (setq unpurged (1+ unpurged)) ;если файл не открылся - нкримент счетчика неочищеных файлов
          ) ;end if
        (setq index (1+ index)) ;перейти к следующему файлу
        ) ;_ end of repeat

      (vlax-put-property acadobject "Visible" :vlax-true) ; сделать акад видимым

      (alert
        (strcat "Процесс чистки успешно завершен.\n" ;выдать сообщение
                (if (not (null unpurgedfilelist))
                  (strcat " Неочищеных файлов: " (itoa unpurged) "\n" unpurgedfilelist)
                  "\n"
                  ) ;_ end of if
                ) ;end strcat
        ) ;end alert
      )   ;end progn
    (progn
      (vlax-put-property acadobject "Visible" :vlax-true) ; сделать акад видимым
      (alert "\n Не найдено ни одного файла") ; если в каталоге нет ни одного файла - сообщить об этом
      )   ;end progn
    )     ;end if
  (princ)
  ) ;_ end of defun
А вот вариант с очисткой зарегистрированных приложений и попыткой аудита:
Код:
[Выделить все]
(defun psf (/ documentscollection unpurgedfilelist activedocument acadobject unpurged filelist index path x)

  (vl-load-com) ;Загрузить расширение
  (setq acadobject (vlax-get-acad-object)) ;получить объект Application
  (setq activedocument (vla-get-activedocument acadobject)) ;Получить указатель на активный документ
  (setq documentscollection (vla-get-documents acadobject)) ;получить указатель на коллекцию документов

  (setq path (vl-filename-directory (getfiled "Выберете любой чертеж в папке" "" "dwg" 16)))
          ;Получить путь к  очищаемой папке
  (alert
    "!!!Внимание!!!\n
          Процесс чистки может занять много времени.\n
          В целях ускорения процесса сессия будет невидима\n
          Пожалуйста дождитесь завершения\n
	  Нажмите ОК для продолжения"
    )     ;выдать предупреждение
  (vlax-put-property acadobject "Visible" :vlax-false) ;убрать сеанс с экрана

  (setq filelist (vl-directory-files path "*.dwg" 1)) ;получить список файлов в директории
  (if (not (null filelist)) ; если найден хоть один файл
    (progn
      (setq filelist (mapcar '(lambda (x) (strcat path "\\" x)) filelist)) ;получить список полных путей к файлам
      (setq index 0) ;инициализировать индекс
      (setq unpurged 0) ;инициализировать счетчик неочищеных файлов
      (setq unpurgedfilelist "") ;Инициализировать строку - список неочищеных
      (repeat (length filelist) ;цикл
        (setq activedocument
               (vl-catch-all-apply 'vla-open (list documentscollection (nth index filelist))) ;открыть файл
              ) ;end setq
        (if (not (vl-catch-all-error-p activedocument)) ;если при открытии не возникло ошибок
          (progn

            (if (= (vlax-get-property activedocument "ReadOnly") :vlax-true)
          ;если чертеж открыт только для чтения
              (progn ;если чертеж нельзя изменять
                (setq unpurged (1+ unpurged)) ;инкримент счетчика неочищеных файлов
                (setq unpurgedfilelist (strcat "\n" (nth index filelist) unpurgedfilelist))
          ; добавить строку с путем к файлу
                (vlax-invoke-method activedocument "Close" :vlax-false) ;закрыть чертеж без сохранения
                ) ;end progn
              (progn ;если чертеж можно изменять
                (repeat 3
                  (vla-purgeall activedocument)
                  ) ;_ end of repeat
                (vlax-for app (vla-get-registeredapplications activedocument)
                  (vl-catch-all-error-p
                    (function
                      (lambda ()
                        (vla-delete app)
                        ) ;_ end of lambda
                      ) ;_ end of function
                    ) ;_ end of vl-catch-all-error-p
                  ) ;_ end of vlax-for
                (vl-catch-all-apply
                  (function
                    (lambda ()
                      (vla-auditinfo activedocument :vlax-true)
                      ) ;_ end of lambda
                    ) ;_ end of function
                  ) ;_ end of vl-catch-all-apply
                (vla-saveas activedocument (vla-get-fullname activedocument) ac2004_dwg)
                (vla-close activedocument)
                ) ;end progn
              ) ;end if
            ) ;end progn

          (setq unpurged (1+ unpurged)) ;если файл не открылся - нкримент счетчика неочищеных файлов
          ) ;end if
        (setq index (1+ index)) ;перейти к следующему файлу
        ) ;_ end of repeat

      (vlax-put-property acadobject "Visible" :vlax-true) ; сделать акад видимым

      (alert
        (strcat "Процесс чистки успешно завершен.\n" ;выдать сообщение
                (if (not (null unpurgedfilelist))
                  (strcat " Неочищеных файлов: " (itoa unpurged) "\n" unpurgedfilelist)
                  "\n"
                  ) ;_ end of if
                ) ;end strcat
        ) ;end alert
      )   ;end progn
    (progn
      (vlax-put-property acadobject "Visible" :vlax-true) ; сделать акад видимым
      (alert "\n Не найдено ни одного файла") ; если в каталоге нет ни одного файла - сообщить об этом
      )   ;end progn
    )     ;end if
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 21.04.2010 в 20:00.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.03.2011, 00:09
#23
SLADE

проектировщик-новобранец
 
Регистрация: 14.09.2005
Minsk
Сообщений: 324


Не стал плодить новую тему, проблема похожая
Работаю через внешние ссылку, прыгаю с файла к файлу, корректирую.

Как сделать оптовое сохранение всех открытых файлов в ACADе ??
SLADE вне форума  
 
Непрочитано 06.03.2011, 12:56
#24
VVA

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


Цитата:
Сообщение от SLADE Посмотреть сообщение
Как сделать оптовое сохранение всех открытых файлов в ACADе ??
Express menu -> File tools -> Save All Drawings (SAVEALL)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 06.03.2011, 20:08
#25
SLADE

проектировщик-новобранец
 
Регистрация: 14.09.2005
Minsk
Сообщений: 324


Володя, спасибо
SLADE вне форума  
 
Непрочитано 07.03.2011, 05:39
#26
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Offtop: Mожет, VVA тщательно скрывает свое настоящее имя, а ты его выдал....
Vova вне форума  
 
Непрочитано 20.03.2011, 14:59
#27
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 22,997
<phrase 1=


Цитата:
Сообщение от Vova Посмотреть сообщение
Offtop: Mожет, VVA тщательно скрывает свое настоящее имя, а ты его выдал....
О да... очень тщательно
http://dwg.ru/pub/9
См. подпись
Солидворкер вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как оптом сохранить все чертежи в формате 14-го автокада?

Размещение рекламы