(изменено: Yuriy, 4 мая 2011г. 22:00:40)

Тема: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

Command: AUDIT  - проверяет и исправляет ошибки открытого файла
Command: RECOVER - проверяет и исправляет ошибки открываемого файла
Command: RECOVERALL - проверяет и исправляет ошибки указанного файла и всех вставленных в него файлов

Имеется ли в AutoCAD Architecture команда или быстрый способ для проверки и исправления файлов всего проекта :?:

(изменено: Vitaly, 4 мая 2011г. 16:36:48)

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

:D....

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

:)  :)  :)
другого ответа и не ожидал

значит только програмным путем...

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

Юра, RECOVERALL я посадил на F5 и завёл для себя и других привычку пользоваться ею при открытии и в ходе работы по смыслу, например перед  тем, как воспользоваться ссылкой и т.п.

PS может лиспик какой есть, чтоб в цикле фалы проверять...?

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

Vitaly пишет:

PS может лиспик какой есть, чтоб в цикле фалы проверять...?

готового пока нет только некоторые заготовки
надеюсь все таки удастся все собрать и реализовать данную задачку...

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

Насколько я знаю, _.audit не будет работать для нетекущего документа. Поэтому придется писать скрипт.
ИМХО, как всегда.

(изменено: Yuriy, 6 мая 2011г. 08:43:42)

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

список dwg файлов текущего проекта получил
скрипт (.scr) програмно вызвать получилось

застрял на том что в скрипте путь к файлу должен быть вида

"H:\Y-dp---wk---dpl\wk-wk-dp---VS\SPA-Lembolovo---AA-project---dp-2010-06-17\Sheets\SPA\Узлы-детали\стекло\расстекловка-план купола.dwg"

а не

"H:\\Y-dp---wk---dpl\\wk-wk-dp---VS\\SPA-Lembolovo---AA-project---dp-2010-06-17\\Sheets\\SPA\\Узлы-детали\\стекло\\расстекловка-план купола.dwg"

есть ли штатная лисповская ф-ция поиска и замены в строке чтобы быстро заменить "\\" на "\"  :?:

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

scr пишется автоматом, надеюсь? Если да, то там и так нормально заменяется \\ на \ (насколько я помню лисп ;))

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

Кулик Алексей aka kpblc пишет:

scr пишется автоматом, надеюсь?

пока еще нет (( но будет если цикл заработает ))

Кулик Алексей aka kpblc пишет:

и так нормально заменяется \\ на \

если можно чуть подробней

(изменено: Yuriy, 6 мая 2011г. 10:53:10)

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

там и так нормально заменяется \\ на \ (насколько я помню лисп

Алексей, это имеется ввиду -

Command: (princ "P:\\Lembolovo\\House\\Lembolovo")
P:\Lembolovo\House\Lembolovo

:?:

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

В общем-то да. ПРи этом все едино - печатать в ком.строку или в файл, результат будет один и тот же.

(изменено: Yuriy, 8 мая 2011г. 09:00:30)

Re: команда проверки и исправления ошибок В С Е Х Ф А Й Л О В П Р О Е К Т А

Итак, первый блин  :)



; программа проверки dwg файлов текущего проекта командой  Audit c исправлением ошибок
; разместить в общедоступной папке файлы  Fil---obr-3.lsp,   Fil_obr-3a---start.scr,
(defun c:test ()
   (setq _tmp (strcat  "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Recent Project list"  ))
   (setq _tmp (vl-registry-read _tmp (car(acad_strlsort (vl-registry-descendents _tmp "" )))))
   (setq _tmp (vl-filename-directory _tmp))
   (princ "\nПапка проекта - ") (princ _tmp)
   (princ "\n----------------------------------------")
   (setq _spF (GetFolders (list _tmp))) ; список файлов
   (setq _spF ; список dwg файлов  
     (vl-remove-if '(lambda (xxx) (or (vl-file-directory-p XXX) (null (wcmatch  (strcase XXX T) "*.dwg*")) )) _spF))
   (vl-propagate '_spf)   ; список файлов 
   (setq _i-spf (length _spf)) ; номер текущего файла в списке
   (command "_qsave")
   (command "_script" "Fil_obr-3a---start.scr")
(princ))

(defun GetFolders (p)
 ;; By ElpanovEvgeniy
 ;; (GetFolders '("C:\\Program Files\\AutoCAD 2004\\Sample"))
 ;|
 Function of search of all folders,
 inside of the root folders specified in the list.
 
 Arguments:
 P - the list of root folders.
 For example '("C:\\Program Files") or ' ("C:" "D:" "E:")

 
|;
 (if p
  (append
   p
   (GetFolders
    (apply
     (function append)
     (mapcar
      (function (lambda (b)
                 (mapcar (function (lambda (a) (strcat b "\\" a)))
                         (vl-remove ".." (vl-remove "." (vl-directory-files b nil-1)))
                 ) ;_  mapcar
                ) ;_  lambda
      ) ;_  function
      p
     ) ;_  mapcar
    ) ;_  apply
   ) ;_  GetFolders
  ) ;_  append
 ) ;_  if
) ;_  defun

; код файла  - Fil---obr-3.lsp
(defun fil---obr-3 ()
   (print (nth _i-spf _spf))
   (setq  _i-spf (1- _i-spf))
   (vl-propagate '_i-spf) ; номер текущего файла в списке
   (setq _file  (nth _i-spf _spf))
   (print _i-spf)
); defun


содержимое файла Fil_obr-3a---start.scr

(load "fil---obr-3")
(fil---obr-3)
._open
(princ _file)
._audit
_Y
._qsave
._script
Fil_obr-3a---start

Цикл обработки списка файлов работает
Проблема пока в появляющихся иногда окнах автокада типа
- сделано в предыдущей версии
- Customization file 'aca.cuix' is write protected.
и т.п.
при этом программа останавливается, но после нажатия на OK продолжается...


можно ли как-то одним махом подавить подобные запросы автокада :?:

PS
В программе использовались:
- способ доступа к папке текущего проекта Алексея Кулик
- функция GetFolders Евгения Елпанова