beliit.com
Форумы Проектант
ПОИСК ПО ФОРУМАМ
перед созданием новых тем используйте поиск,
возможно ответ на Ваш вопрос уже есть на форумах

Расширенный поиск
 
  • Всего пользователей - 21993
  • Всего тем - 31026
  • Всего сообщений - 288050
Страниц: [1] 2  Все   Вниз
ВЕРСИЯ ДЛЯ ПЕЧАТИ

AutoCAD. Пакетная очистка файлов чертежей

Количество просмотров - 18325
(ссылка на эту тему)
Temniydrakon
Участник форумов


Сейчас отсутствует Сейчас отсутствует
country
Сообщение #1 : 31 Января 2019 года, 16:38
(ссылка на это сообщение)

Здравствуйте

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

Мастерская СПДС
Сейчас отсутствует Сейчас отсутствует
 
Сообщение #2 : 31 Января 2019 года, 17:10
(ссылка на это сообщение)

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

Конструктор (Волгоград, Россия)
Supermaksik
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #3 : 31 Января 2019 года, 19:37
(ссылка на это сообщение)

Попробуйте Drawing Purge от Ajilal Vijayan.

Инженер-электрик (Вологда, Россия)
Евгений Л
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #4 : 01 Февраля 2019 года, 05:48
(ссылка на это сообщение)

Вы хотите, чтобы программа сама распознавала - где нужное, а где ненужное?

Инженер-технолог (Костанай, Казахстан)
Temniydrakon
Участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #5 : 01 Февраля 2019 года, 13:26
(ссылка на это сообщение)


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


autocad 2016 sp1
мусор - проски графика, неудаляемые блоки, геометрические зависимости, несогласованные слои, может еще что-то чего я не знаю
примеры прилагаю(3 не влез - 17 Мб))

----- добавлено 01 Февраля 2019 года, 13:27 -----


----- добавлено 01 Февраля 2019 года, 13:32 -----
Вы хотите, чтобы программа сама распознавала - где нужное, а где ненужное?

В идеале да, но я понимаю что нюансов много) поэтому какое-то универсальное решение, хорошо если подойдет для чистки 70-80% чертежей
* 1.dwg
(10160.06 Кб)  [скачать]  [загрузок: 120]
* 2.dwg
(6909.55 Кб)  [скачать]  [загрузок: 65]
Антониони
****
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #6 : 02 Февраля 2019 года, 19:21
(ссылка на это сообщение)

1. Переконвертил в 2007
2. Скопировал в новый файл
3. Purge (очистить)
* 1_1.dwg
(219.09 Кб)  [скачать]  [загрузок: 75]

Проектировщик КИП (Самара, Россия)
doctorRaz
***
Куратор

Мастерская СПДС
Сейчас отсутствует Сейчас отсутствует
 
Сообщение #7 : 02 Февраля 2019 года, 20:59
(ссылка на это сообщение)

    Вы хотите, чтобы программа сама распознавала - где нужное, а где ненужное?

    хех)) конечно программа знать не может, что нам нужно...
    Например flatten или overkill, могут и делов наделать, но на то мы и человеки, что бы решать когда и что делать программе))
    В идеале да, но я понимаю что нюансов много) поэтому какое-то универсальное решение, хорошо если подойдет для чистки 70-80% чертежей

    Такое решение есть уже давно
    bat+scr
    Плюс такого подхода...
    1. *.bat - позволяет производить пакетную обработку файлов (в т.ч. и во вложенных каталогах)
    2.*.scr - позволяет выполнять команды АК в открытом файле напрямую, либо подгружать лиспы *.dvb,  NETсборки и выполнять команды из них.
    3. Нет никакого программирования, все просто и прозрачно, из инструментов нужны интернет с гуглом и блокнот)))
    4. Пользователь всегда может добавить нужные ему сейчас команды в скрипт, либо закомментировать ненужные.
    -------------
    Минусы конечно есть... нужно разбираться и понимать, как это работает.
    Кому лениво, есть AutoScript, ScriptPro так же этим вопросом занимался крыс и другие Гуру AutoCAD, но если мы не хотим ни от кого зависеть, то лучше процесс взять в свои руки
    Итак поехали...
    --------------
    Сам скрипт, максимально упростил
    (setvar "LAYEREVAL" 0)(setvar "LAYEREVALCTL" 0)(setvar "LAYERNOTIFY" 0) - процедура лисп, согласовывает слои
    EXPLODEALLPROXY -  разбивает прокси объекты (разработка  А. Ривилиса, NET сборку можно скачать с его странички, один раз загрузить в АК, потом будет подгружаться сам при вызове команды.)
    (load "d:\\!clean\\clean.LSP") - подгружаем лисп программу в текущий чертеж.
    ВАЖНО!! путь необходимо изменить на свой.
    DR - команда из подгруженной выше лисп программы (от уважаемого крыс и VVA) удаляет словари которые не АК, делает очистку чертежа (purge), делает проверку чертежа (audit)
    WBOUT - команда из подгруженного лисп, сохраняет ВЕСЬ ЧЕРТЕЖ  ПБЛОК (wblock) в папку ТЕМП
    _qsave - сохраняемся
    _QUIT - закрываемся
    [/list]
    Код:
    (setvar "LAYEREVAL" 0)(setvar "LAYEREVALCTL" 0)(setvar "LAYERNOTIFY" 0)
    EXPLODEALLPROXY
    (load "d:\\!clean\\clean.LSP")
    DR
    WBOUT
    _qsave
    _QUIT

    В этот скрипт каждый по желанию и необходимости по аналогии может добавить нужные лично ему команды и (или) процедуры.
    -----------------
    собственно *.bat файл
    В цикле поочередно перебираем файлы с расширением *dwg и параметром запуска этот путь передаем АК.
    Параметр /r (рекурсия) читать файлы в подпапках, если убрать будет открывать файлы только в текущем каталоге.
    /b "d:\!clean\clean.scr" - путь к файлу сценария, который разобрали выше.
    ВАЖНО необходимо путь изменить на свой, путь и имя файла не должен содержать символов кириллицы!!!!
    ВАЖНО! путь к AutoCAD нужно изменить на свой
    ВАЖНО профиль  АК /p "Spds 12" нужно изменить на свой
    т.к. WBOUT положил ПБЛОК в папку темп, надо его оттуда вернуть в исходную директорию, этим и занимается строка
    move /Y "%temp%\%%~nxA" "%%A"
    pause - ниче не делает, вернее не дает закрыть окно консоли, чисто потом посмотреть чего этот батник делал.
    Код:
    @ECHO OFF
    FOR /r %%A IN (*dwg) DO (
    echo Processing %%A
    "c:\Program Files\Autodesk\AutoCAD 2016\acad.exe" "%%A" /language "ru-RU" /product "ACAD" /p "Spds 12" /nologo /b "d:\!clean\clean.scr"
    echo Moving "%%A"
    move /Y "%temp%\%%~nxA" "%%A"
    )
    pause

    ------------------
    если АК старше 2015, т.е. 2014,2013 и т.д. команда purge не сможет очистить файл от непривязанных данных (DGN)
    ---------
    Как использовать..
    Распаковываем архив, папку !clean закидываем в любое удобное место (см. рекомендации по кириллице выше)
    В файлах чистка.bat и clean.scr исправляем пути в соответствии с местными условиями.
    Закидываем файл чистка.bat в директорию в которой будем чистить dwg, запускаем и идем пить кофе)))
    Думаю излишне напоминать, что стоит попробовать на небольшом количестве файлов, так ли все работает и не удаляет чего лишнего)). В любом случае оригиналы из  *.BAK никуда не делись))
    Ну и код и идея As Is, пользователь применяет на свой страх и риск.
    ------
    хех объемненько получилось, ну форум жэж, что непонятно спрашиваем.
    один раз настроить и потом вычищать 100500 файлов автоматом... думаю стоит того))
    * чистка.zip
    (1.29 Кб)  [скачать]  [загрузок: 595]

    Конструктор (Волгоград, Россия)
    Антониони
    ****
    Активный участник форумов


    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #8 : 02 Февраля 2019 года, 22:38
    (ссылка на это сообщение)

    EXPLODEALLPROXY -  разбивает прокси объекты (разработка  А. Ривилиса, NET сборку можно скачать с его странички, один раз загрузить в АК, потом будет подгружаться сам при вызове команды.)

    Насколько я помню, после этой команды рекомендуется удалить прокси и провести проверку
    _REMOVEALLPROXY
    _AUDIT

    Проектировщик КИП (Самара, Россия)
    doctorRaz
    ***
    Куратор

    Мастерская СПДС
    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #9 : 03 Февраля 2019 года, 07:51
    (ссылка на это сообщение)

    Насколько я помню, после этой команды рекомендуется удалить прокси и провести проверку
    _REMOVEALLPROXY
    _AUDIT

    согласен, удаление прокси после разбивки можно добавить на всякий случай,
    проверка чертежа в скрипте есть...
    скрипт с батником выше это удочка и леска с крючком
    каждый сможет поймать свою рыбу.
    ЗЫ в моем боевом есть еще  superflatten и overkill, но другим они могут принести больше вреда, чем пользы

    Конструктор (Волгоград, Россия)
    Temniydrakon
    Участник форумов


    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #10 : 04 Февраля 2019 года, 15:12
    (ссылка на это сообщение)

     DoctorRaz, пакетно очистил пару десятков файлов,  скрипт отработал на ура, спасибо огромное))
    Лекс
    ***
    Активный участник форумов


    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #11 : 04 Февраля 2019 года, 22:11
    (ссылка на это сообщение)

    DoctorRaz, мощное решение. Замечу лишь, что Drawing Purge от Ajilal Vijayan также умеет выполнять пакетную глубокую очистку файлов, только с прокси-графикой ничего не делает.

    Инженер-технолог (Омск, Россия)
    doctorRaz
    ***
    Куратор

    Мастерская СПДС
    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #12 : 05 Февраля 2019 года, 09:25
    (ссылка на это сообщение)

    Кстати, начиная с версии AutoCAD 2013, программа имеет еще и консольный вариант c:\Program Files\Autodesk\AutoCAD 2018\accoreconsole.exe
    Что дает нам это знание?
    если в батнике из #7 заменить строку
    Код:
    "c:\Program Files\Autodesk\AutoCAD 2018\acad.exe" "%%A" /language "ru-RU" /product "ACAD" /p "Spds 12" /nologo /b "z:\clean_DWG\cleanConsole.scr"

    на
    Код:
    "c:\Program Files\Autodesk\AutoCAD 2018\accoreconsole.exe" /i "%%A" /s "z:\clean_DWG\cleanConsole.scr" /l "en-US"

    естественно поправив пути к автокаду и скрипту на свои
    то обработка десяти файлов из  сообщения #5  (пять №1, пять №2) сокращается с 10 минут (на моей машине) до одной!!!!
    но есть и ложки дегтя:
    1. EXPLODEALLPROXY - работать в консоли не будет, по крайней мере мне не удалось,
    upd 18.03.19 таки будет если сборке ExplodeProxy_ххххх*.arx заменить расширение на *.crx и разочек подгрузить в АК
    но  учитывая, что консольная версия не подгружает вертикалки, то возможно в этом случае от разбивки прокси будет больше вреда, чем пользы.
    2. не работают лиспы и команды которые предполагают выбор объектов чертежа (например SuperFlatten)
    --------------
    тем не менее по быстрому  пакетно очистить несколько чертежей от:
    -неиспользуемых объектов (PURGE),
    -непривязанных данных (DGN),
    -словарей сторонних приложений (DR),
    -неудаляемых блоков (ПБЛОК)
    вполне годное решение, тем более, что запустив чистку из консоли вполне можно продолжить заниматься своими делам, открываемые окна перед глазами не мельтешат))
    ---------------
    в скрипт добавил:
    -включает и размораживает все слои,
    -включает маскировки,
    -отдельный прогон PURGE (DR вычищает не все)
    -лисп очистки от неиспользуемых ссылок на чертежи и рисунки (в консоли ругается, но чистит)
    --------------
    в батник добавил вывод общего времени очистки (вдруг, кто не поверит, ну и самому интересно  было))))
    ------------------
    Важно!!! не забываем поправить пути в файлах *.BAT и *.SCR на свои.
    ---------------
    upd  
    Рис_ 1.jpg
     
    * Рис_ 1.jpg
    (252.54 Кб, 866x524)  [скачать]  [загрузок: 6430]
    * clean_DWG.zip
    (33.62 Кб)  [скачать]  [загрузок: 361]

    Конструктор (Волгоград, Россия)
    Эш
    Участник форумов


    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #13 : 13 Марта 2020 года, 16:38
    (ссылка на это сообщение)

    Здравствуйте.
    Возникла схожая проблема, файлы, которые должны весить не более 200-300кило, занимают по 1,8-2метра, не менее.
    Нашёл вашу тему. Вроде бы прописал пути. Но видимо что-то не так.. Может получится на вскидку подсказать, в каком месте допустил ошибку?

    ----- добавлено 13 Марта 2020 года, 16:43 -----


    ----- добавлено 13 Марта 2020 года, 16:45 -----
    На самом деле сложность у меня вызвала строка
    Цитата
    "c:Program FilesAutodeskAutoCAD 2016acad.exe" "%%A" /language "ru-RU" /product "ACAD" /p "Spds 12" /nologo /b "d:!cleanclean.scr"



    ----- добавлено 13 Марта 2020 года, 16:48 -----
    У меня получилось:
    "C:\Program Files\Autodesk\AutoCAD 2017\acad.exe" "%%A" /language "ru-RU" /product "ACAD" /p "Spds 12" /nologo /b "C:\Users\Anna\Desktop\clean_DWG\clean_DWG\cleanFull.scr"
    При запуске выдает сообщение об ошибке, скрин ниже
    2020-03-13_16-38-59.png
     
    * 2020-03-13_16-38-59.png
    (21.01 Кб, 540x376)  [скачать]  [загрузок: 5130]

    Инженер ( ? , Россия)
    doctorRaz
    ***
    Куратор

    Мастерская СПДС
    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #14 : 13 Марта 2020 года, 19:02
    (ссылка на это сообщение)

    скрин ниже

    Двойной слэш перед именем файла скрипта.. с чего бы это?
    Неработающий батник прикрепите к сообщению

    Конструктор (Волгоград, Россия)
    Эш
    Участник форумов


    Сейчас отсутствует Сейчас отсутствует
     
    Сообщение #15 : 16 Марта 2020 года, 16:26
    (ссылка на это сообщение)

    Всё верно, двойной слэш моя ошибка!
    Но столкнулся с такой проблемой, папку со сравнительно лёгкими файлами (десяток файлов с небольшим содержанием, но весом 1,8..2,5мб каждый) чистит на ура! Остаётся 80-100кб за файл.
    А вот если туда, в папку, сунуть файлик к примеру на 4,5мб, но обширный по содержанию (куча листов, блоков и т.д.), то автокад зависает напрочь. Почти час пил чай. Не знаю что произошло, но файл вырос до 8мб..
    Взял и вручную прогнал по алгоритму описанному в cleanFull.scr, от 4,5мб осталось 1,8мб. Грешу на слабый рабочий комп.
    В любом случае спасибо!

    Инженер ( ? , Россия)
    Страниц: [1] 2  Все   Вверх
    ВЕРСИЯ ДЛЯ ПЕЧАТИ



    Сейчас Вы - Гость на форумах «Проектант». Гости не могут писать сообщения и создавать новые темы.
    Преодолейте несложную формальность - зарегистрируйтесь! И у Вас появится много больше возможностей на форумах «Проектант».


    Здравствуйте, Гость
    Сейчас Вы присутствуете на форумах в статусе Гостя.
    Для начала общения надо зарегистрироваться или пройти авторизацию:
    Вам не пришло письмо с кодом активации?
     
     
      (забыли пароль?)  
       

    если Вы не зарегистрированы, то
    пройдите регистрацию
    Последние сообщения на форуме «Программное обеспечение Autodesk»
    автор: Vikkkkktor
    Вчера в 22:48

    автор: Маркос
    16 Апреля 2024 года, 09:38

    автор: Trust Me
    09 Апреля 2024 года, 21:02

    автор: Антониони
    19 Марта 2024 года, 07:08

    автор: Mclaud 72
    09 Марта 2024 года, 00:51

    автор: Posetitel
    27 Февраля 2024 года, 14:19

    автор: Mike_Moke
    26 Февраля 2024 года, 15:10

    автор: Файруза
    26 Февраля 2024 года, 14:12

    автор: Val
    17 Ноября 2023 года, 07:52

    автор: shalva
    13 Ноября 2023 года, 17:06

    автор: kollega_
    29 Сентября 2023 года, 09:05

    автор: Антониони
    12 Мая 2023 года, 14:01

    автор: Настачка
    06 Мая 2023 года, 18:27

    12 Апреля 2023 года, 08:38

    автор: Антониони
    31 Марта 2023 года, 07:53


    Сейчас на форуме:
    Сейчас на форумах: гостей - 521, пользователей - 7
    Имена присутствующих пользователей:
    Evdbor, Ivan D, Чистильщик, Андрей_888, Mav, Алексей У., РоманC
    Контактные данные| Партнёрская программа | Подробная статистика
    Настройка форумов © «Проектант» | Конфиденциальность данных
    Powered by SMF 1.1.23 | SMF © 2017, Simple Machines