|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
"Пакетная" замена Мтекста в блоке
Регистрация: 11.05.2011
Сообщений: 10
|
||
Просмотров: 9466
|
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Werner, выложи для примера один чертеж где необходимо заменить Mtext и укажи имя или имена блоков в которых надо заменить Mtext (а также укажи какой Mtext надо заменить и на что)
__________________
cadtools |
|||
![]() |
|
||||
Цитата:
![]() у меня где-то был написан код пакетной обработки чертежей по указанному каталогу (с подкаталогами если требуется), либо по указанной юзером подшивке (оба варианта на выбор)... Так же был написан код обработки текстовых примитивов (с использованием регулярных выражений) + атрибутов блоков + выносок + размеров. Правда всё это написано было на .Net и под AutoCAD 2009. Могу порыться, поискать, если у топикстартера автокад 2009 и установлен .Net Framework 3.5 SP1.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 11.05.2011 в 17:10. |
||||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Цитата:
Попробуй загрузить этот лисп в Startup Suite в меню Tools->Load Application при открывании отдельного файла лисп будет автовыполняться Код:
Последний раз редактировалось Олег (jr.), 13.05.2011 в 01:42. |
|||
![]() |
|
||||
Регистрация: 11.05.2011
Сообщений: 10
|
Цитата:
![]() ..Чертежи сделаны в формате AutoCAD 2010, файлы разложены по каталогам, подшивок нет - всё в пространстве модели. Единственное что - мне нужно отредактировать вхождения блока, а не атрибуты (если я ничего не напутал)... |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Цитата:
Олег (jr.), а почему пакетно не получиться? Например если через ObjectDBX по анологии с похожим примером для переименования блоков Нужно решение (программа) для массового переименования всех блоков
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 11.05.2011
Сообщений: 10
|
hwd, отправлял вчера ответ, но почему-то не нашёл его сегодня...
Я не Salo65, и не знаю, радоваться или нет) Я от его способа как раз начинаю сходить с ума ![]() Цитата:
Олег (jr.), спасибо! А возможно ли открывать и сохранять с задержкой файлы из определенной папки, например, в другом лиспе? Тогда бы и этот лисп выполнился... Последний раз редактировалось Werner, 12.05.2011 в 09:24. |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Цитата:
так она не работает с его чертежом мобыть блок корявый или еще какие неучтенные дела, хотя она работает как надо (с 2006) с другими чертежами плюс почему-то с этим чертежом надо вызывать РЕГЕН в конце, а ObjectDBX не откликается на работу с экраном как известно (напр. ты не сможешь использовать entsel, ssget etc) |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Цитата:
Олег (jr.), вот я и не могу тоже попробывать именно с чертежом автора, так как у меня ACAD 2008 и его чертеж не открывается (так как на мою просьбу перевыложить чертеж в версии не выше 2008 автор не откликнулся, может Ты если не сложно выложишь его файл в версии 2008). Тем более ты сам говоришь, что с другими чертежами у Тебя ObjectDBX работает как надо. Что касается РЕГЕНа, то ObjectDBX работает как Ты сам прекрасно знаешь в неактивном режиме (т. е. чертежеи не будут открываться), а помот при открытии они по идеи сами регеняться?
__________________
cadtools |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Werner, для файла в формате 7-го АСАDа, который Ты выложил вроде все сработало
Код:
Вызов: (change-mtext-in-blocks (list "Штам АС" "Штам АС.С") "АС" "КМ" "*№*") Выбираем папку с файлами (только один уровень вложенности, т. е. прога переберет файлы только в выбранной папке, но не в подпапках) Соответсвенно если будут др. блоки или др. текст все легко поменять во входных параметрах, например: (change-mtext-in-blocks (list "Блок 1" "Блок 2" ...) "Вася" "Петя" "*Разработчик*")
__________________
cadtools |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Цитата:
До - 504 320 байт После - 459 424 байт так что как выдишь даже чуть меньше стал
__________________
cadtools |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
давай сначала проверь на одном файле Example_2008.dwg, который Ты мне выкладывал, посмори что там получается. И выложи еще какой-нибудь свой файл (напоминаю что у меня ACAD 2008) со значениями размера до и после, а я его у себя попробую.
__________________
cadtools |
|||
![]() |
|
||||
Регистрация: 11.05.2011
Сообщений: 10
|
Для файлов example и example_2008 пробовал пять раз (заменял файлы на исходные), первые три раза - разный результат о_0. А последние два - размеры файлов вообще не изменялись.... 0_0
Для 461: 2113кБ/3088/кБ Для 461_2008: 1636кБ/1892кБ Для 461 и 461_2008- результаты близкие к указанным при повторении опыта) |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Werner,
461_2008.dwg до - 1 669 056 байт после - 1 628 896 байт Так что я не знаю чем помочь.
__________________
cadtools |
|||
![]() |
|
||||
Цитата:
|
||||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Цитата:
в нем ничего не получалось На версии 2008 все методы прекрасно работают, но с ObjectDBX теряются PreView-хи Может лучше напрямую (см. добавленный код) |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Про потерю PreView-хи я даже и не знал.
Ну просто если чертежей до фига, смотреть как они все открываються и закрываются, мне кажеться будет дольше работать чем если в тихую, а так вообще тоже вариант. Просто когда речь идет о пакетной обработки кучи чертежей у меня руки так и чешуться использовать ObjectDBX (спасибо Кулик Алексей aka kpblc, который вот здесь говорит что авторами идеи являетесь Вы и Н. Н. Полещук, если конечно же "тамошний" Олег jr. и Вы одно и тоже лицо) если конечно возможно, т. е. если не надо ипользовать интерактивные и командные методы. Цитата:
__________________
cadtools |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Я ж говорю ObjectDBX работает с неактивным документом поэтому
он ничего не знает что и как раcположено на экране (откуда и создается Preview) он просто типо сканирует базу данных чертежа и работает с ее объектами и работает c их указателями P.S. It's me ![]() |
|||
![]() |
|
||||
геология, геодезия Регистрация: 29.05.2009
Хабаровск
Сообщений: 185
|
Для меня вопрос закрыт. Решение проблемы замены значений атрибутов нашел у Lee McDonnell'a. (лисп Batch Find & Replace Text). Я пикнуть не успел как BFind заменил мне во всех чертежах на компьютере (пробовал не разобравшись с настройками потом пришлось исправлять) выбранные значения атрибутов в блоках на другие. Причем так же можно менять и тексты (времени не было разобраться но это там есть). Offtop: А вообще, Велком Ту http://www.lee-mac.com/ там очень много хорошего и разного.
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Замена текстового стиля | VVA | Готовые программы | 323 | 03.09.2025 12:20 |
Как получить vla-объект, который находится в блоке или как с помощью Lisp поменять видимость в дин. блоке? | Shraybicus | LISP | 12 | 28.12.2010 15:45 |
Замена сразу всех значений в блоке | Deliverance | AutoCAD | 15 | 26.09.2010 14:58 |
при работе в блоке вдруг рисуется линия вне блока,из-за которой не сохраняет изменения в блоке | Макля | AutoCAD | 4 | 24.06.2010 12:10 |
Замена текста мтекста и атрибутов с помощью lsp и dcl | МИХАИЛCAD | Программирование | 8 | 19.02.2010 13:36 |