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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Изменение нескольких текстовых примитивов.

Изменение нескольких текстовых примитивов.

Ответ
Поиск в этой теме
Непрочитано 24.09.2014, 09:41 #1
Изменение нескольких текстовых примитивов.
Gornyak
 
Регистрация: 20.03.2014
Сообщений: 4

Добрый день! Столкнулся с проблемой "вселенского масштаба". На чертеже имеется много-много чисел написанных однострочным текстом (каждая цифра - отдельный примитив) Нужно к каждой цифре дописать "Нк=". По отдельности изменять каждый примитив у меня уйдет неделя. Можно ли это сделать как-нибудь быстрей? Спасибо.
Просмотров: 2820
 
Непрочитано 24.09.2014, 09:49
#2
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


В поиск по форуму "автонумерация", "нумерация". Лиспов полно на автозамену. Какой-то да устроит
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 24.09.2014, 10:27
#3
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от Gornyak Посмотреть сообщение
Добрый день! Столкнулся с проблемой "вселенского масштаба". На чертеже имеется много-много чисел написанных однострочным текстом (каждая цифра - отдельный примитив) Нужно к каждой цифре дописать "Нк=". По отдельности изменять каждый примитив у меня уйдет неделя. Можно ли это сделать как-нибудь быстрей? Спасибо.
Могу предложить лисп, который преабразует текст в атрибут блока, а потом в редакторе блоков добавить нужный текст.
Лисп не мой, автор Лиспа мне не известен.
Вложения
Тип файла: lsp txt2blk.lsp (2.3 Кб, 30 просмотров)
Valery Brelovsky вне форума  
 
Непрочитано 24.09.2014, 11:11
#4
Кулик Алексей aka kpblc
Moderator

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


Зачем так-то??? Зачем преобразовывать тексты в атрибуты блоков (которые, кстати, еще и расставить надо будет)?

----- добавлено через 42 сек. -----
Вопрос задан в разделе "AutoCAD", поэтому ответ (наверняка) будет только один: руками. Программно можно сделать намного быстрее и проще, но это вопрос в другую ветку.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 24.09.2014, 11:17
#5
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
но это вопрос в другую ветку.
Автор просто новичок. Перенаправь его просто (перемести т.е.). Хотя, может уже набрел поиском, перебирает варианты.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 24.09.2014, 11:22
#6
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Зачем так-то??? Зачем преобразовывать тексты в атрибуты блоков (которые, кстати, еще и расставить надо будет)?
Блоки формируются на том месте где текст, так что блоки раставлять не нужно и значение атрибутот будет соответствовать числам, Потом только NK= к ним в редакторе блоков добавить нужно и в общемто всё.

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Вопрос задан в разделе "AutoCAD", поэтому ответ (наверняка) будет только один: руками.
Можно ещё попробовать функцией найти и заменить. Не известно в каком виде цифры и как их отсортировать что бы получить нужный и правильный результат.
Valery Brelovsky вне форума  
 
Автор темы   Непрочитано 24.09.2014, 11:37
#7
Gornyak


 
Регистрация: 20.03.2014
Сообщений: 4


Valery Brelovsky, вид у цифр самый обычный двух-,трехзначные цифры некоторые с одним знаком после запятой, однострочный текст. На одном чертеже (а таких чертежей не мало) около 300 примитивов и к каждому надо добавить Нк=, а с атрибутами блоков я вообще никогда не работал и не знаю как и с чем их "едят". Лисп загрузил, а дальше что...
Gornyak вне форума  
 
Непрочитано 24.09.2014, 12:02
#8
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от Gornyak Посмотреть сообщение
а дальше что...
набираешь в ком. строке txt2blk И отвечаешь на вопросы. Первый от спрашивает имя блока (Block name назнчаеш ему имя потом Имя для атрибута (Tag name: к примеру NK)
потом на какой слой поместить отрибут.Target layer for block/atttribute: 0 а потом выбор объектов Select objects: . Выбираешь необходимые тексты потом ВВод и получаешь блоки с атрибутами. Затем выбираешь один блок и заходишь в редактор блоком и добавляешь отдельно нужный текст. Почему отдельно, имеется не редактируешь тот абтибут что получилчя, а пишешь новый текст и размещаешь его возле значения атрибута как он должен быть. Затем сохраняешь и в каждом блоке получаешь добавку Nk= и соответствующее значение текста атрибута.
Valery Brelovsky вне форума  
 
Непрочитано 24.09.2014, 12:19
#9
trir


 
Регистрация: 18.12.2010
Сообщений: 5,108


А я делал через dataextraction, потом правил в Excel'е и там же делал пакетный файл, который создавал новые примитивы...
trir вне форума  
 
Непрочитано 24.09.2014, 12:51
#10
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от trir Посмотреть сообщение
А я делал через dataextraction, потом правил в Excel'е и там же делал пакетный файл, который создавал новые примитивы...
Это старый Лисп. Раньше кроме дорог ещё готовил планы меживания для министерства строительства. А там были свои требования к файлам всё в полилиниях и блоках. А высоты насъёмках были текстами, и нужно было переводить в блоки. Вот этим лиспом я это решал. Держу его на случай если в Цивил отметки загрузить а с текстами возится нет желания. Но пока редко. В основном геодезия приходит подходящая можно использовать срразу.
Valery Brelovsky вне форума  
 
Автор темы   Непрочитано 24.09.2014, 13:21
#11
Gornyak


 
Регистрация: 20.03.2014
Сообщений: 4


Valery Brelovsky, большое Вам спасибо! Вот только захожу в редактор блоков и там дописываю к значению 38 Нк= и получаю Нк=38 сохраняю и меняется только этот блок. Остальные без изменения.
Gornyak вне форума  
 
Непрочитано 24.09.2014, 13:22
#12
Nike

Шаражпроектхалтурмонтаж
 
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,013


http://dwg.ru/dnl/1929
Nike вне форума  
 
Автор темы   Непрочитано 24.09.2014, 13:26
#13
Gornyak


 
Регистрация: 20.03.2014
Сообщений: 4


Valery Brelovsky, Я не внимательно прочитал. Я заходил в редактор атрибутов, а не блоков. Сейчас сделал всё по правилам и УРАААА!!! Все получилось. Вы ГЕНИЙ!!!
Gornyak вне форума  
 
Непрочитано 24.09.2014, 13:33
#14
Valery Brelovsky

Инженер дорожник
 
Регистрация: 22.10.2007
Израиль
Сообщений: 1,859


Цитата:
Сообщение от Gornyak Посмотреть сообщение
Вы ГЕНИЙ!!!
К гениальности ту нет ни какого отношения. Просто поделился информацией. Но порадоваться за вас можно, что всётаки получилось.
Valery Brelovsky вне форума  
 
Непрочитано 24.09.2014, 13:37
#15
Кулик Алексей aka kpblc
Moderator

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


Код:
[Выделить все]
 (vl-load-com)
(defun c:prefix2text (/ adoc selset prefix)
  (if (and (= (type (setq selset (vl-catch-all-apply
                                   (function
                                     (lambda ()
                                       (ssget "_:L" '((0 . "*TEXT")))
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                                   ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'pickset
              ) ;_ end of =
           (= (type (setq prefix (vl-catch-all-apply
                                   (function
                                     (lambda ()
                                       (getstring "\nPrefix <Cancel> : ")
                                       ) ;_ end of lambda
                                     ) ;_ end of function
                                   ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'str
              ) ;_ end of =
           ) ;_ end of and
    (progn
      (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
      (foreach ent (vl-remove-if
                     (function
                       (lambda (x)
                         (or (not (wcmatch (vla-get-textstring x) "#*"))
                             (wcmatch (strcase (vla-get-textstring x)) (strcase (strcat prefix "*")))
                             ) ;_ end of or
                         ) ;_ end of lambda
                       ) ;_ end of function
                     (mapcar (function vlax-ename->vla-object)
                             ((lambda (/ tab item)
                                (repeat (setq tab  nil
                                              item (sslength selset)
                                              ) ;_ end setq
                                  (setq tab (cons (ssname selset (setq item (1- item))) tab))
                                  ) ;_ end of repeat
                                ) ;_ end of lambda
                              )
                             ) ;_ end of mapcar
                     ) ;_ end of vl-remove-if
        (vla-put-textstring ent (strcat prefix (vla-get-textstring ent)))
        ) ;_ end of foreach
      (vla-endundomark adoc)
      ) ;_ end of progn
    ) ;_ end of if
  (princ)
  ) ;_ end of defun

(princ "\nType \"prefix2text\" in command string")
Offtop: Хреново болеть - пока в себя придешь...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Изменение нескольких текстовых примитивов.

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение формата текстовых блоков Joslen_bomon AutoCAD 2 03.09.2010 11:53
Вопрос: изменение свойств участка последовательно соединённых примитивов. Tonic Программирование 19 09.10.2009 14:25
Изменение параметров примитивов составляющих сложный блок. Theodor Программирование 5 19.04.2009 21:29
Сортировка текстовых примитивов CB Программирование 6 11.12.2007 15:44