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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Замена названий блоков, типов линий

Замена названий блоков, типов линий

Ответ
Поиск в этой теме
Непрочитано 01.06.2010, 14:42 #1
Замена названий блоков, типов линий
АлексЮстасу
 
топограф, технолог
 
Москва
Регистрация: 24.05.2009
Сообщений: 3,031

Как заменить быстро и без ошибок названия сразу всех блоков и типов линий?
Допустим, есть множество чужих или своих старых файлов, в которых система названий блоков и типов линий была другая.
А наименований блоков и типов линий может быть (в общем случае) примерно 800-900.
Естественно, что в любом случае создается таблица соответствий старых и новых названий.
Но вручную заменять названия и чрезвычайно долго, и будет много ошибок.
Есть ли какое-нибудь программное средство делать такую замену?

Сначала я думал сохранять эти файлы в dxf, и заменять какой-нибудь программкой замены текста. Но, как ни странно, подходящей просто не обнаружил.
Просмотров: 5605
 
Непрочитано 03.06.2010, 10:14
#2
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Для блоков так можно:
Код:
[Выделить все]
(foreach item (list (cons "Block1" "New_Block1")
		    (cons "Block2" "New_Block2")
		    (cons "Block3" "New_Block3")
	      )
  (if (tblsearch "BLOCK" (car item))
    (vl-cmdf "_.-rename" "_B" (car item) (cdr item) "")
  )
)
Список соответствий можно пополнять, добавляя при необходимости нечто типа (cons "Block4" "New_Block4") и т.д.

Добавлено:
Ну и в общем-то для типов линий аналогично.
Код:
[Выделить все]
(foreach item (list (cons "LType1" "New_LType1")
		    (cons "LType2" "New_LType2")
		    (cons "LType3" "New_LType3")
	      )
  (if (tblsearch "LTYPE" (car item))
    (vl-cmdf "_.-rename" "_LT" (car item) (cdr item) "")
  )
)
Makswell вне форума  
 
Непрочитано 03.06.2010, 10:25
#3
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Я бы только на всякий случай добавил проверку на отсутствие блока или типа линии с новым именем
Код:
[Выделить все]
(foreach item (list (cons "Block1" "New_Block1")
		    (cons "Block2" "New_Block2")
		    (cons "Block3" "New_Block3")
	      )
  (if (and (tblsearch "BLOCK" (car item))
           (not (tblsearch "BLOCK" (cdr item)))
           )
    (command "_.-rename" "_B" (car item) (cdr item) "")
  )
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.06.2010, 16:19
#4
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


О! Спасибо, Makswell, спасибо VVA! Попробую.
На всякий случай: могут быть проблемы с числом строк
(cons "BlockN" "New_BlockN") ?
Их может быть до 800.

И возможно подобное с подписями - Text, с мультилиниями и с штриховками - Pattrrn? Т.е. аналогично заменить содержание подписей, названия мультилиний, и штриховок по спискам соответствий?

Если бы нашлась программка замены собственно наборов символов, то все это можно было бы сделать в файле dxf, просто заменяя сами эти наборы символов. И было бы неважно - названия ли это блоков и т.п. или содержание текста.
АлексЮстасу вне форума  
 
Непрочитано 04.06.2010, 08:00
#5
Кулик Алексей aka kpblc
Moderator

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


Открыть блокнотом или Notepad++, а там Ctrl+H - и вперед, понеслась душа в рай.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 04.06.2010, 11:21
#6
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Открыть блокнотом или Notepad++, а там Ctrl+H - и вперед, понеслась душа в рай.
800 замен*30 файлов=24000 раз*10 действий(указать окно файла соответствий,найти, скопировать, указать окно изменяемого файла, вставить*2)=почти 70 часов чистой работы. Неизбежно множество технических ошибок, которые непонятно как находить. Повторить весь процесс пару-тройку раз?

Makswell, VVA - простите, я не продвинут в лиспах. Пожалуйста, подскажите как превратить Ваши тексты в работающие программы.
АлексЮстасу вне форума  
 
Непрочитано 04.06.2010, 17:54
#7
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Ну и на ф*га это все надо?
gomer вне форума  
 
Автор темы   Непрочитано 04.06.2010, 18:21
#8
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от gomer Посмотреть сообщение
Ну и на ф*га это все надо?
Вообще-то об "на ф*га" в целом написано в первом посте...

1. Допустим, Вам нужно слить данные, полученные из разных источников, а потом работать с этими данными, как с единым целым.
А у разных источников этих данных одни и те же блоки, одни и те же типы линий и т.п. называются по-разному.
Создаете список соответствий названий, прога приводит названия блоков и т.п. к единому знаменателю - данные можно сливать со своими, и сразу работать не как с помойкой (в части единства блоков и т.п.).
2. Допустим, заказчик требует сдать работу с его блоками, типами и т.п., со своими названиями. К которым нужно еще привыкнуть, переделывать панели инструментов, какие-то проги, где названия каких-то блоков, типов линий и т.п. прошиты. А Вы выполняете все в привычных блоках и т.п., а потом их переименовываете, и кидаете в файл заказчика, где есть описания всех его блоков и т.п. И у Вас волшебным образом все становится в виде, требуемом заказчиком.

Если у Вас три блока и десяток типов линий или вообще не стоит вопрос о единстве данных из разных файлов, то, конечно, Вам это все ни к чему.
АлексЮстасу вне форума  
 
Непрочитано 04.06.2010, 20:44
#9
Victor


 
Регистрация: 14.06.2009
Бат-Ям
Сообщений: 295


Так не получится. Допустим у ваших блоков в первых атрибутах есть значения, а у заказчика эти значения в третьих атрибутах. У нас профессиональный программист не может толком решить такую задачу.
Victor вне форума  
 
Автор темы   Непрочитано 04.06.2010, 21:51
#10
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,031


Цитата:
Сообщение от Victor Посмотреть сообщение
Так не получится. Допустим у ваших блоков в первых атрибутах есть значения, а у заказчика эти значения в третьих атрибутах. У нас профессиональный программист не может толком решить такую задачу.
Да, панацеи не получится.
Я пока погружен в обычные блоки без атрибутов, типы линий и т.п. - для них вполне работает.

Пока получилось так:
1. Есть бесплатная программка uvFilesCorrector из http://www.uvsoftium.ru/, позволяющая за один раз делать любое мыслимое число замен одних наборов символов на другие. Причем, в любом мыслимом числе файлов сразу.
2. Составляем файл со списком что на что заменять. Например, список старых и нужных названий блоков, типов линий и т.п. Или старых и новых содержаний подписей. В том числе, для переводов подписей на другие языки.
3. Сохраняем нужные файлы dwg в dxf - в которых нужно заменить содержание подписей, названия блоков, типов линий, мультилиний, перевести подписи.
4. Запускаем uvFilesCorrector, пересохраняем полученные файлы dxf в dwg.

Главный недостаток: конечно же программа замены текста не разбирает, где название блока, а где - содержание подписи или часть какого-нибудь служебного слова файла dxf.

Поэтому, безусловно, если б был лисп для "раздельного питания" названиями блоков и т.п., а также содержания текстов, то было бы гораздо лучше. И при двух удобствах: список замен читался бы из файла, а не вписывался в текст лиспа, и можно было бы пакетно обрабатывать множество файлов.
Кстати, есть знакомый переводчик, который все время мучается с переводом текстов, вписывая врукопашную...

Последний раз редактировалось АлексЮстасу, 08.06.2010 в 14:04. Причина: программку нашел
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Замена названий блоков, типов линий

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
Аннотивность типов линий ArchitectV AutoCAD 16 02.11.2017 18:06
Проба создать функцию по добавлению в чертеж своих стилей, типов линий... CAHTEXHuK Программирование 9 01.06.2010 16:40
Сохранение и изменение типов линий Lef AutoCAD 9 09.12.2007 13:52
Как изменять толщину линий и цвет линий для блоков? Highmax AutoCAD 1 08.03.2005 06:56