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

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

Поиск и замена текста

Ответ
Поиск в этой теме
Непрочитано 11.11.2009, 22:49 #1
Поиск и замена текста
TechNick
 
Инженер
 
Нижний Новгород
Регистрация: 19.04.2006
Сообщений: 15

Добрый день. Такой вопросик очень нужно решить.
На чертеже существует около тысячи однострочных текстов с подписями марок дорожного ограждения видов:
1. 11ДО-ММ.2(564)У2
2. 11ДО-ММ.2(256)У3
3. 11ДО-ММ.2(64)У4
4. 11ДО-ММ.2(98)У5

Где текст в скобках указывает протяженность и везде разный. Надо преобразовать к такому виду соответственно:
1. 11ДО/190-0.75(0.15)-3.0-0.9(564)
2. 11ДО/250-0.75(0.15)-2.0-0.9(256)
3. 11ДО/300-0.75(0.15)-4.0-0.9(64)
4. 11ДО/350-0.75(0.15)-4.0-1.25(98)
Как это сделать наиболее быстро ума не приложу. Помогите кто знает
Просмотров: 106392
 
Непрочитано 11.11.2009, 23:11
#2
Кулик Алексей aka kpblc
Moderator

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


В поиск !
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.11.2009, 00:07
#3
Nike

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


Программа замены фрагментов текста:
Код:
[Выделить все]
;-============-; 
    ;- Text  Find -; 
    ;-    *~*     -; 
    ;  Written by -; 
    ; Mark Mercier ; 
    ;   05-06-09   ; 
    ;-============-; 

(defun tfind2fun (inputF inputR caseSn / goto goWhile strinF strinR selSet selTxt searep case count error) 
    ; 01 Create selection set. GOTO 02 if success, or GOTO 08 if fail 
    ; 02 Check passed input. If both nil, GOTO 03. If first string and second nil, GOTO 06. If both strings, GOTO 07. Otherwise, return error and GOTO 08 
    ; 03 Display menus and obtain data from user. If Search, GOTO 04. If Replace, GOTO 05 
    ; 04 Search option selected. Prompt user for single search term. GOTO 06 
    ; 05 Replace option selected. Prompt user for search term and replace term. GOTO 07 
    ; 06 One string has been passed. Assume automatic search. GOTO FINISH 
    ; 07 Two strings have been passed. Assume automatic replace. GOTO FINISH 
    ; 08 FINISH. Return errors or messages if needed. 
  (vl-load-com) 
  (setq goTo 1) 
  (setq goWhile 1) 
  (setq count 0) 
  (if (not (mlml (list caseSn) (list 0 1))) 
    (progn (setq goWhile nil) (princ "\nCase selection not recognized.")) 
  ) ;_ end of if 
  (if (= caseSn 0) 
    (setq case "N") 
    (setq case "Y") 
  ) ;_ end of if 
  (while goWhile 
    (cond 
      ((= goTo 1) 
       (if (setq selSet (extTxtPt (ssget "X"))) 
         (setq goTo 2) 
         (setq error "\nSelection set not found." 
               goTo  8 
         ) ;_ end of setq 
       ) ;_ end of if 
      ) 
      ((= goTo 2) 
    ; Check input, pass to whatever. 
       (cond 
         ((and (= inputF nil) (= inputR nil)) 
          (setq goTo 3) 
         ) 
         ((and (= (type inputF) 'STR) (= inputR nil)) 
          (setq strinF inputF) 
          (setq goTo 6) 
         ) 
         ((and (= (type inputF) 'STR) (= (type inputR) 'STR)) 
          (setq strinF inputF) 
          (setq strinR inputR) 
          (setq goTo 7) 
         ) 
         (t 
          (setq error "\nPassed arguments are not accepted.") 
          (setq goTo 8) 
         ) 
       ) ;_ end of cond 
      ) 
      ((= goTo 3) 
    ; Obtain desired option from user 
       (while (not 
                (mlml (list (setq searep (strcase (getstring nil "\nSelect option [Find/Replace/Quit/Case]: ")))) 
                      (list "F" "FIND" "R" "REPLACE" "Q" "QUIT" "C" "CASE") 
                ) ;_ end of mlml 
              ) ;_ end of not 
       ) ;_ end of while 
       (cond 
         ((mlml (list searep) (list "F" "FIND")) 
          (setq goTo 4) 
         ) 
         ((mlml (list searep) (list "R" "REPLACE")) 
          (setq goTo 5) 
         ) 
         ((mlml (list searep) (list "Q" "QUIT")) 
          (setq goTo 8) 
         ) 
         ((mlml (list searep) (list "C" "CASE")) 
          (while (not (mlml (list (setq case (strcase (getstring nil "\nCase sensitive? [Yes/No]: ")))) 
                            (list "Y" "YES" "N" "NO") 
                      ) ;_ end of mlml 
                 ) ;_ end of not 
          ) ;_ end of while 
         ) 
       ) ;_ end of cond 
      ) 
      ((= goTo 4) 
    ; Obtain search string from user, set to strinF 
       (while (eq "" (setq strinF (getstring t "\nEnter search term: ")))) 
       (setq goTo 6) 
      ) 
      ((= goTo 5) 
    ; Obtain search string and replace string from user, set to strinF and strinR respectively 
       (while (eq "" (setq strinF (getstring t "\nEnter find term: ")))) 
       (while (eq "" (setq strinR (getstring t "\nEnter replace term: ")))) 
       (setq goTo 7) 
      ) 
      ((= goTo 6) 
    ; Search drawing for strinF 
       (cond 
         ((mlml (list case) (list "Y" "YES")) 
    ; Compare using (vl-string-search strinF input), view selection 
    ; use "while" to get all search occurances 
          (foreach selVar selSet 
            (if (vl-string-search strinF (nth 0 selVar)) 
              (progn 
                (setq count (1+ count)) 
                (if (/= (getvar "ctab") (caddr selVar)) 
                  (command "ctab" (caddr selVar)) 
                ) ;_ end of if 
                (command "zoom" "c" (trans (cadr selVar) 0 1) (* 32 (nth 3 selVar))) 
                (getstring "\nPress 'Enter' to continue: ") 
              ) ;_ end of progn 
            ) ;_ end of if 
          ) ;_ end of foreach 
         ) 
         ((mlml (list case) (list "N" "NO")) 
    ; Compare using (vl-string-search (strcase strinF) (strcase input)), view selection 
    ; use "while" to get all search occurances 
          (foreach selVar selSet 
            (if (vl-string-search (strcase strinF) (strcase (nth 0 selVar))) 
              (progn 
                (setq count (1+ count)) 
                (if (/= (getvar "ctab") (caddr selVar)) 
                  (command "ctab" (caddr selVar)) 
                ) ;_ end of if 
                (command "zoom" "c" (trans (cadr selVar) 0 1) (* 32 (nth 3 selVar))) 
                (getstring "\nPress 'Enter' to continue: ") 
              ) ;_ end of progn 
            ) ;_ end of if 
          ) ;_ end of foreach 
         ) 
       ) ;_ end of cond 
       (if (= count 0) 
         (setq error "\nNo matches found.") 
         (setq error (strcat (itoa count) " matches found.")) 
       ) ;_ end of if 
       (setq goTo 8) 
      ) 
      ((= goTo 7) 
    ; Replace strinF with strinR 
       (cond 
         ((mlml (list case) (list "Y" "YES")) 
    ; Compare using (vl-search-string strinF input), modify using (vl-string-subst) within a while loop 
          (foreach selVar selSet 
            (setq selTxt (nth 0 selVar)) 
            (setq seaLoc 0) 
            (while (setq seaLoc (vl-string-search strinF selTxt seaLoc)) 
              (setq selTxt (vl-string-subst strinR strinF selTxt seaLoc)) 
              (setq seaLoc (+ seaLoc (strlen strinR))) 
              (setq count (1+ count)) 
            ) ;_ end of while 
            (vla-put-textstring (vlax-ename->vla-object (nth 4 selVar)) selTxt) 
          ) ;_ end of foreach 
         ) 
         ((mlml (list case) (list "N" "NO")) 
    ; Compare using (vl-string-search (strcase strinF) (strcase input)), modify using (vl-string-subst) within a while loop 
          (foreach selVar selSet 
            (setq selTxt (nth 0 selVar)) 
            (setq seaLoc 0) 
            (while (setq seaLoc (vl-string-search (strcase strinF) (strcase selTxt) seaLoc)) 
              (setq selTxt (strcat (substr selTxt 1 seaLoc) strinR (substr selTxt (+ 1 seaLoc (strlen strinF))))) 
              (setq seaLoc (+ seaLoc (strlen strinR))) 
              (setq count (1+ count)) 
            ) ;_ end of while 
            (vla-put-textstring (vlax-ename->vla-object (nth 4 selVar)) selTxt) 
          ) ;_ end of foreach 
         ) 
       ) ;_ end of cond 
       (if (= count 0) 
         (setq error "\nNo occurances found.") 
         (setq error (strcat (itoa count) " occurances modified.")) 
       ) ;_ end of if 
       (setq goTo 8) 
      ) 
      ((= goTo 8) 
       (if error 
         (princ error) 
       ) ;_ end of if 
       (setq goWhile nil) 
      ) 
    ) ;_ end of cond 
  ) ;_ end of while 
  (princ) 
) ;_ end of defun 

(defun mlml (inSMLChar inSMLStri / returnVarMS toCheck chkWith) 
  (setq returnVarMS nil) 
  (if (and (= (type inSMLChar) 'list) 
           (= (type inSMLStri) 'list) 
      ) ;_ end of and 
    (progn 
      (foreach toCheck inSMLStri 
        (foreach chkWith inSMLChar 
          (if (eq toCheck chkWith) 
            (setq returnVarMS t) 
          ) ;_ end of if 
        ) ;_ end of foreach 
      ) ;_ end of foreach 
    ) ;/progn 
  ) ;_ end of if 
  returnVarMS 
)   ; Checks a list to see if a member of that list is the same as a member of another list. Returns T or nil 

(defun extTxtPt (ssList / subVar getEnt entTyp entTxt entPnt entLay entHgt grp66 entAtt getEntAtt entAttTyp uniLst) 
  (setq uniLst nil) 
  (setq subVar 0) 
  (if ssList 
    (repeat (sslength ssList) 
      (setq getEnt (entget (cadr (car (ssnamex ssList subVar))))) 
      (setq entTyp (cdr (assoc 0 getEnt))) 
      (cond 
        ((or (= entTyp "TEXT") (= entTyp "MTEXT")) 
         (setq entTxt (cdr (assoc 1 getEnt))) 
         (setq entPnt (cdr (assoc 10 getEnt))) 
         (setq entHgt (cdr (assoc 40 getEnt))) 
         (setq entLay (cdr (assoc 410 getEnt))) 
         (setq entNam (cdr (assoc -1 getEnt))) 

         (setq uniLst (append uniLst (list (list entTxt entPnt entLay entHgt entNam)))) 
        ) 
        ((= entTyp "INSERT") 
         (setq grp66 (assoc 66 getEnt)) 
         (if grp66 
           (progn 
             (setq entAtt (entnext (cdr (assoc -1 getEnt)))) 
             (setq getEntAtt (entget entAtt)) 
             (setq entAttTyp (cdr (assoc 0 getEntAtt))) 
           ) ;_ end of progn 
         ) ;_ end of if 
         (while (= entAttTyp "ATTRIB") 
           (setq entTxt (cdr (assoc 1 getEntAtt))) 
           (setq entPnt (cdr (assoc 10 getEntAtt))) 
           (setq entHgt (cdr (assoc 40 getEntAtt))) 
           (setq entLay (cdr (assoc 410 getEntAtt))) 
           (setq entNam (cdr (assoc -1 getEntAtt))) 

           (setq uniLst (append uniLst (list (list entTxt entPnt entLay entHgt entNam)))) 

    ; Get next entity. 
           (setq entAtt (entnext (cdr (assoc -1 getEntAtt)))) 

    ; Get ent and ent type 
           (setq getEntAtt (entget entAtt)) 
           (setq entAttTyp (cdr (assoc 0 getEntAtt))) 
         ) ;_ end of while 
        ) 
        (t 
        ) 
      ) ;_ end of cond 
      (setq subVar (1+ subVar)) 
    ) ;_ end of repeat 
  ) ;_ end of if 
  uniLst 
)   ; Return list of all text-based objects (Text, MText, Attribute) in the current drawing
Работает так:
Код:
[Выделить все]
(tfind2fun "старый текст" "новый текст" 1)
где ключик <1> - с учетом регистра, а если <2> - без учета регистра, Создавай по каждому фрагменту команду замены, например:

Код:
[Выделить все]
(tfind2fun "11ДО-ММ.2(564)У2" "11ДО/190-0.75(0.15)-3.0-0.9(564)" 1)
(tfind2fun "11ДО-ММ.2(256)У3" "11ДО/250-0.75(0.15)-2.0-0.9(256)" 1)
и вперед!
Nike вне форума  
 
Непрочитано 12.11.2009, 08:35
#4
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Что-то есть у меня подозрение, что автор хотел немного другого:
у него есть:
Цитата:
Сообщение от TechNick Посмотреть сообщение
1. 11ДО-ММ.2(564)У2
2. 11ДО-ММ.2(256)У3
3. 11ДО-ММ.2(64)У4
4. 11ДО-ММ.2(98)У5
Надо чтобы
1) "У#" в конце удалилось
2) "-ММ.2" заменилось на:
  • "/190-0.75(0.15)-3.0-0.9" если У2 в конце
  • "/250-0.75(0.15)-2.0-0.9" если У3 в конце
  • "/300-0.75(0.15)-4.0-0.9" если У4 в конце
  • "/350-0.75(0.15)-4.0-1.25" если У5 в конце
TechNick, так?
Do$ вне форума  
 
Автор темы   Непрочитано 12.11.2009, 09:43
#5
TechNick

Инженер
 
Регистрация: 19.04.2006
Нижний Новгород
Сообщений: 15
<phrase 1=


Да именно так. У# не нужны, а вот числа в скобках нужно оставить так как их гигантское колличество вариантов в чертеже, заменив только середину строки
TechNick вне форума  
 
Непрочитано 12.11.2009, 10:29
#6
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Программу нужно искать или писать. На 98% уверен, что стандартными средствами не решить.
Предлагаю поискать в темах внизу (похожие темы), если ничего не найдется - описать как можно подробнее, как предполагается использовать программу, выложить файл-пример (если возможно).
Ключевые вопросы примерно такие:
  • Каким образом выбирать текст? (Варианты: вручную по одному/рамкой/предварительным _qselect и т.п., автоматически - по слою/цвету/размеру/содержанию и т.п.)
  • Замена производится только в однострочном тексте или еще в многострочном, в атрибутах блока и т.п.?
  • Что будет являться индикацией удачного завершения работы программы? (Варианты: весь измененный текст выделяется цветом/переносится в новый слой с оригинальным именем/ничего не происходит/выводится сообщение "столько-то текстов было изменено"...)
Чем больше информации - тем больше шансов получить то, что нужно
Do$ вне форума  
 
Непрочитано 12.11.2009, 10:39
1 | #7
Nike

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


тогда так, без всяких программ

Для У2:

1. Выбрать все тексты, содержащие фрагмент "У2" (по маске):

Сервис/Быстрый выбор (_qselect)
- Применить: ко всему чертежу
- Тип объектов: текст
- Свойство: Содержимое
- Оператор: * Поиск с глобальными символами
- Значение: *У2
ОК

2. Поиск и замена "-ММ.2" на "/190-0.75(0.15)-3.0-0.9"; "У2" на "" в выделенных текстах:

Правка/Найти (_find)
- Найти: "-ММ.2"
- Заменить: "/190-0.75(0.15)-3.0-0.9"
- Область поиска: Выбранные объекты
Заменить все
(не закрывая окно поиска)
- Найти: "У2"
- Заменить: ""
- Область поиска: Выбранные объекты
Заменить все

Повторить п1,2 для У3,У4,У5

Последний раз редактировалось Nike, 12.11.2009 в 10:46.
Nike вне форума  
 
Непрочитано 12.11.2009, 11:29
1 | #8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Действительно работает!
Подозревал, что _find это умеет, оказалось, что нужно только в настройках покопаться
Миниатюры
Нажмите на изображение для увеличения
Название: find_replace.jpg
Просмотров: 3042
Размер:	42.9 Кб
ID:	28713  
Do$ вне форума  
 
Непрочитано 12.11.2009, 11:47
#9
Nike

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


А я с удивлением обнаружил, что в _qselect можно делать выбор по маске
Миниатюры
Нажмите на изображение для увеличения
Название: qselect.jpg
Просмотров: 2600
Размер:	42.1 Кб
ID:	28714  
Nike вне форума  
 
Автор темы   Непрочитано 12.11.2009, 21:31
#10
TechNick

Инженер
 
Регистрация: 19.04.2006
Нижний Новгород
Сообщений: 15
<phrase 1=


Цитата:
Сообщение от Nike Посмотреть сообщение
тогда так, без всяких программ Для У2: 1. Выбрать все тексты, содержащие фрагмент "У2" (по маске): Сервис/Быстрый выбор (_qselect) - Применить: ко всему чертежу - Тип объектов: текст - Свойство: Содержимое - Оператор: * Поиск с глобальными символами - Значение: *У2 ОК 2. Поиск и замена "-ММ.2" на "/190-0.75(0.15)-3.0-0.9"; "У2" на "" в выделенных текстах: Правка/Найти (_find) - Найти: "-ММ.2" - Заменить: "/190-0.75(0.15)-3.0-0.9" - Область поиска: Выбранные объекты Заменить все (не закрывая окно поиска) - Найти: "У2" - Заменить: "" - Область поиска: Выбранные объекты Заменить все Повторить п1,2 для У3,У4,У5
Супер. Спасибо.
Как-то не догадался использовать одновременно функцию быстрый выбор и поиск. Возьмём на вооружение. Ещё раз благодарю
TechNick вне форума  
 
Непрочитано 12.11.2009, 23:05
#11
Nike

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


Цитата:
Сообщение от TechNick Посмотреть сообщение
Супер. Спасибо.
Как-то не догадался использовать одновременно функцию быстрый выбор и поиск. Возьмём на вооружение. Ещё раз благодарю
Один инженер - хорошо, а два - лучше!
Nike вне форума  
 
Непрочитано 17.11.2009, 11:13
#12
Миксер


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


Доброго времени суток.
Подскажите ,а можно как нибуть в автокаде найти интервал чисел скажем от 3 до 9 ?
Миксер вне форума  
 
Непрочитано 17.11.2009, 13:05
#13
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Миксер, ИМХО вопрос не очень понятен.
E-degtyarev вне форума  
 
Непрочитано 17.11.2009, 13:37
#14
Миксер


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


Вот у меня в автокаде набор разных чисел....от 1 до 200 и не по одному числу , а мне нужны все от 3до 12 для их редактирования.Можно сделать их быстрый поиск (выделение этого интервала)?
Миксер вне форума  
 
Непрочитано 17.11.2009, 13:42
#15
Кулик Алексей aka kpblc
Moderator

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


А "числа" - это что? Атрибуты? Блоки? Однострочные тексты? Многострочные тексты? Элементы выносок? Значения ячеек таблицы или нескольких таблиц? Многострочные тексты без форматирования? Многострочные тексты с принудительным форматированием?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.11.2009, 14:23
#16
Миксер


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


Каждая цыфра- однострочный текст
Миксер вне форума  
 
Непрочитано 17.11.2009, 14:48
#17
Кулик Алексей aka kpblc
Moderator

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


попробуй так:
Миниатюры
Нажмите на изображение для увеличения
Название: qselect_text.png
Просмотров: 2091
Размер:	8.8 Кб
ID:	29040  
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.11.2009, 15:22
#18
Миксер


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


не получается, если я правильно понял....не выделяет вообще ничего из набора цыфр
Миксер вне форума  
 
Непрочитано 17.11.2009, 15:25
#19
Nike

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
попробуй так:
Миниатюры
По-моему, эта фигня с цифрами не работает, только с буквами
Nike вне форума  
 
Непрочитано 17.11.2009, 15:32
#20
Миксер


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


Работает...спасибо ...а можете объяснить ,что значит написанное в строке value? ...Так как порой мне приходится выделять скажем цыфры от 100 до 150
Миксер вне форума  
 
Непрочитано 17.11.2009, 15:36
#21
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Работает, но придется делать по отдельности: сперва [3-9], потом ставить галочку "добавить в существующий набор" и 1[0-2]
Update: Обманул, все прекрасно работает и вместе
Do$ вне форума  
 
Непрочитано 17.11.2009, 15:36
1 | #22
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Nike Посмотреть сообщение
По-моему, эта фигня с цифрами не работает, только с буквами
Нда? Только что проверил.
P.S. Вы там ничего не пропустили? Например, запятую?
Вложения
Тип файла: rar qselect_text_wmatch.rar (602.5 Кб, 437 просмотров)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.11.2009, 15:58
#23
Nike

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Нда? Только что проверил.
P.S. Вы там ничего не пропустили? Например, запятую?
Действительно, работает
вроде запятую не пропустили. Цифры наверна пропустили
Nike вне форума  
 
Непрочитано 17.11.2009, 22:58
#24
Миксер


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


Ответьте пожалуйста, как задать ...чтобы автокад нашёл интервал скажем от 113 до 200?
я не уловил откуда взялись такие цыфры в строке value
Миксер вне форума  
 
Непрочитано 17.11.2009, 23:00
#25
Кулик Алексей aka kpblc
Moderator

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


смотри справку по лисповой функции wcmatch
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.11.2009, 00:05
#26
Миксер


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


Спасибо огромное, Вы мне очень помогли.
Миксер вне форума  
 
Непрочитано 19.11.2009, 10:02
#27
zayyaz

связь
 
Регистрация: 26.01.2007
Красноярск
Сообщений: 56
<phrase 1=


цифры (дробные) - однострочный текст, все на одном слое...

как их можно свести в таблицу? горизонтальную или вертикальную , без разницы..
или не таблицу.... да хоть в текстовый документ... но в идеале в ексель сразу отправить
__________________
не z и не z будешь...
zayyaz вне форума  
 
Непрочитано 26.11.2009, 15:47
#28
Sirius2w

Проектировщик ТХ
 
Регистрация: 16.11.2009
Сообщений: 139
Отправить сообщение для Sirius2w с помощью Skype™


Помогите пожалуйста
у меня акад 2007 лицензионный, при использовании стандартной команды "поиск/замена" пытаюсь отредактировать значения атрибутов блоков, но команда их полностью игнорирует, может есть какое-то решение? Поиском пользовался - ничего не нашел по этому вопросу
Sirius2w вне форума  
 
Непрочитано 26.11.2009, 15:52
#29
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Sirius2w, а в настройки команды заглядывал?
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 677
Размер:	38.8 Кб
ID:	29623  
Хмурый вне форума  
 
Непрочитано 26.11.2009, 15:57
#30
Sirius2w

Проектировщик ТХ
 
Регистрация: 16.11.2009
Сообщений: 139
Отправить сообщение для Sirius2w с помощью Skype™


Цитата:
Сообщение от Хмурый Посмотреть сообщение
Sirius2w, а в настройки команды заглядывал?
В самую первую очередь, до того как задать вопрос
Sirius2w вне форума  
 
Непрочитано 26.11.2009, 16:02
#31
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


А вручную атрибуты редактируются?
Хмурый вне форума  
 
Непрочитано 26.11.2009, 16:04
#32
Sirius2w

Проектировщик ТХ
 
Регистрация: 16.11.2009
Сообщений: 139
Отправить сообщение для Sirius2w с помощью Skype™


Да, но только по одному - долго их редактировать у меня их сотни
Sirius2w вне форума  
 
Непрочитано 26.11.2009, 16:06
#33
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


ПОИСК находит блоки с нужными атрибутами, но замена не работает?
Хмурый вне форума  
 
Непрочитано 26.11.2009, 16:26
#34
Sirius2w

Проектировщик ТХ
 
Регистрация: 16.11.2009
Сообщений: 139
Отправить сообщение для Sirius2w с помощью Skype™


Быстрый поиск вообще не находит атрибутов
если в быстром поиске указать "вхождения блока" в списке для выбора параметра поиска нет "атрибут"
через правку=поиск как на твоем скрине - атрибуты не находит вообще
Sirius2w вне форума  
 
Непрочитано 26.11.2009, 16:46
#35
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Sirius2w, а в этом файле версии 2007 поиск проведи.
Вложения
Тип файла: dwg
DWG 2007
Drawing2.dwg (66.6 Кб, 2165 просмотров)
Хмурый вне форума  
 
Непрочитано 26.11.2009, 20:29
#36
Sirius2w

Проектировщик ТХ
 
Регистрация: 16.11.2009
Сообщений: 139
Отправить сообщение для Sirius2w с помощью Skype™


Спасибо, все работает в 2010 ))) а в 2007 чет через раз :-( незнаю почему ну всеравно спасибо за помощь
Sirius2w вне форума  
 
Непрочитано 26.11.2009, 21:57
#37
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от TechNick Посмотреть сообщение
На чертеже существует около тысячи однострочных текстов с подписями марок дорожного ограждения видов:
А кроме этих слов что-нибудь еще есть на чертеже? Мне кажется, даже на А1 столько букв не поместиться....
Vova вне форума  
 
Непрочитано 07.12.2009, 01:07 Прога работает !!!
#38
oleg_marshinov


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


Nike, спасибо, весь инет облазил, вместе с экселем убойная просто прога для перемаркировки
oleg_marshinov вне форума  
 
Непрочитано 07.12.2009, 10:21
#39
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


а эта задача решаема?
есть текст 8*-14-6??-4
нужно заменить на 8N-14-6QW-4
как Acad заставить воспринимать символы * и ? именно так, а не как управляющие символы??
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 07.12.2009, 11:13
#40
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Перед ними попробуй поставить обратный апостроф.
Do$ вне форума  
 
Непрочитано 07.12.2009, 11:22
#41
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


zenon, снять галку
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 828
Размер:	43.5 Кб
ID:	30133  Нажмите на изображение для увеличения
Название: Безымянный1.jpg
Просмотров: 506
Размер:	55.0 Кб
ID:	30134  

Последний раз редактировалось Хмурый, 07.12.2009 в 11:28.
Хмурый вне форума  
 
Непрочитано 07.12.2009, 11:57
#42
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Хмурый, это конечно хорошо, но в 2008 сего нет.
Do$, спасибо сработало
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 18.12.2009, 17:41
#43
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,914


У меня беда немного другая.
Есть блоки с атрибутами. Нужно к началу каждого атрибута массово добавить одинаковый текст; текущие значения атрибутов начинаются с цифр, 1-2-3-значные, некоторые разделены точками и/или дефисом. Стандартными средствами, я так понимаю, это не делается?

Последний раз редактировалось engngr, 18.12.2009 в 17:48. Причина: добавка
engngr вне форума  
 
Непрочитано 18.12.2009, 17:50
#44
Nike

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


engngr
выкладывай пример
Nike вне форума  
 
Непрочитано 18.12.2009, 21:27 пример
#45
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,914


Например.
Имеем значения атрибута "1", "27" и т.д., требуется превратить "1", "27" в "К1-1", "К1-27".
exmpl.dwg
engngr вне форума  
 
Непрочитано 18.12.2009, 23:04
#46
Nike

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


Стандартными скорее всего никак.
А вот этот нумератор запросто сможет
Nike вне форума  
 
Непрочитано 27.07.2010, 12:31
#47
geerakl


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


нужно в чертежах поменять все даты: допустим - "02.06.09" , "22.05.07" .... на "27.07.10" . Существуют ли какие нибуть пиременные знаки ? например заменить "**.**.**" на "27.07.10"
geerakl вне форума  
 
Непрочитано 27.07.2010, 12:57
#48
Кулик Алексей aka kpblc
Moderator

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


Попробуй менять [0-9][0-9].[0-9][0-9].[0-9][0-9] на 27.07.10. В 2008 прокатило.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.07.2010, 16:45
#49
geerakl


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


Таки да работает, спасибо.
geerakl вне форума  
 
Непрочитано 13.09.2010, 09:17
#50
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


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

Вопрос по каманде "поиск/замена".

В АКАД 2006 все работало супер - ищешь в чертеже уплминание, напр., "Задв1.1", поиск находит такой текст, потом "Зуммировать" - и можноизменить масштаб чертежа, чтобы найти, в каком именно месте чертежа находится искомый текст "Задв1.1". То есть в 2006 диалоговое окно "Поиск и замена" не было модальным (не исчезало, но позволяло щелкать по чертежу). В АКАД 2009 окно "Поиск и замена" являетс модальным, как я понимаю. Или у меня что-то не так с настройками???
Надеюсь, понятно изложил )))
А вообще, если есть такая программка по поиску текста, чтобы и зуммировала объект поиска и давала потом посмотреть его расположение на чертеже - буду рад ссылке на нее ;-)
Frigate вне форума  
 
Непрочитано 13.09.2010, 09:23
#51
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Frigate, сервис пак на AutoCAD следует установить.
Хмурый вне форума  
 
Непрочитано 14.09.2010, 11:49
#52
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


Хмурый ,

как я понимаю, паки ставятся только на официальную версию с лицензией, да? ;-) Или может не только? Тогда подскажи где такой достать Не хочется еще и АКАД2006 себе ставить, чтобы вылавливать в чертежах нужный текст... Ну или программирование еще остается, как вариант...
Frigate вне форума  
 
Непрочитано 14.09.2010, 12:06
#53
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Frigate, все сервис паки находятся на официальном сайте Autodesk
Хмурый вне форума  
 
Непрочитано 10.11.2010, 08:22
#54
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Приветствую.
Вопрос по замене текста в мультивыносках.
К примеру есть пять позиций на чертеже 1,2,3,4,5. Потом добавляются еще две позиции, и они должны встать после позиции 2, т.е. позиции 3,4,5 должны превратится в 5,6,7 соответственно.
Возможно ли такое?
Акад 2011

В теме была ссылка на нумератор, но он не работает с мультивыносками.
К тому же там выбор объектов нужно проводить вручную(хотя с этим пока не рабирался)
Astartes вне форума  
 
Непрочитано 10.11.2010, 08:27
#55
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


возможно. следует делать последовательно.
команда _find и начиать поиск и замену с верхней позиции (5 заменить на 7, 4- на 6, 3-на 5). Текст искать только в размерах
Хмурый вне форума  
 
Непрочитано 10.11.2010, 08:43
#56
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Хмурый, Ну это же я простой пример привел из 5 позиций. ))
Мне надо именно что бы как в упомянутом выше нумераторе.
Т.е. я через qselect выделяю позиции с 3 по 5 [3-5] и далее с помощью чего то (лиспа) увеличиваю их значения на 2.
Astartes вне форума  
 
Непрочитано 10.11.2010, 08:53
#57
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Astartes, попроси AlexV подработать код нумератора для изменения мультивыносок
Хмурый вне форума  
 
Непрочитано 10.11.2010, 09:00
#58
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Хмурый, Ну я отписал вопрос автору нумератора, если не ответит то попрошу Алекса.

Автор нумератора сказал что у него нет времени.
Если у кого будет время и желание доработайте пожалуйста.
Или на основе этого нумератора другой лисп сделать.
Нужно к числам в мультивыноске прибавлять и отнимать любое число, и чтобы выбор можно было делать через qselect.
Спасибо.

Последний раз редактировалось Astartes, 11.11.2010 в 06:03.
Astartes вне форума  
 
Непрочитано 11.11.2010, 08:53
1 | #59
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Astartes Посмотреть сообщение
Хмурый, Ну я отписал вопрос автору нумератора, если не ответит то попрошу Алекса.

Автор нумератора сказал что у него нет времени.
Если у кого будет время и желание доработайте пожалуйста.
Или на основе этого нумератора другой лисп сделать.
Нужно к числам в мультивыноске прибавлять и отнимать любое число, и чтобы выбор можно было делать через qselect.
Спасибо.
Особо с кодом не разбирался, просто вставил обработку мультивыносок.. По крайней мере по замене/суффиксам/префиксам вроде работает.. Остальные возможности не смотрел..

Цитата:
К тому же там выбор объектов нужно проводить вручную(хотя с этим пока не рабирался)
Дописывать еще фильтры выбора чтоль по значениям? Да ну его.. Выбирай объекты через qselect, потом применяй к ним какую-либо команду (_move например) и сбрасывай. Потом запускай макрос и на запрос выбора объектов в ком. строке пиши "_p" (ну или "т" в русском автокаде)
Вложения
Тип файла: zip Number.zip (35.4 Кб, 213 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!

Последний раз редактировалось AlexV, 11.11.2010 в 08:58.
AlexV вне форума  
 
Непрочитано 11.11.2010, 10:27
#60
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


AlexV, спасибо большое работает то что мне нужно.
А по поводу выбора, ага действительно можно и так.
Спасибо еще раз.
Astartes вне форума  
 
Непрочитано 23.09.2011, 12:10
#61
Pavel23


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


Всем привет, кто откликнется, темка старая однако...
Пользовался лиспом tfind2fun, работает отлично, но есть один баг, прога сносит многострочные атрибуты, оставляет только первую строку.
Редактировал чертеж старенький, основные надписи - блоки с многострочными атрибутами, почикал все.
Ни кто не знает, как с этим феноменом бороться???
Pavel23 вне форума  
 
Непрочитано 23.09.2011, 21:08
#62
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Pavel23 Посмотреть сообщение
Редактировал чертеж старенький, основные надписи - блоки с многострочными атрибутами,
Кажется, м. атрибуты появились в 2008....
Хотя да, действительно старенький, 4 автокада назад
По существу-надо-бы связаться с автором проги, потому что другой программист не бyдет исправлять, пока есть надежда найти автора
Vova вне форума  
 
Непрочитано 24.09.2011, 09:38
#63
Pavel23


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


A кто у нас автор, в тексте проги нашел только Mark Mercier, и где его искать...
Pavel23 вне форума  
 
Непрочитано 25.10.2011, 12:04
1 | #64
r6311


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


Цитата:
Сообщение от engngr Посмотреть сообщение
Например.
Имеем значения атрибута "1", "27" и т.д., требуется превратить "1", "27" в "К1-1", "К1-27".
Вложение 30805
Тут кто-то на форуме писал, что по сути требуется к определённому виду записи добавить что либо. У меня была подобная ситуация когда к более чем тысячи отметок требовалось дописать в конце ноль, замечание нормоконтроля))
Конечно для поиска решения данной проблемы я потратил времени больше чем если бы правил всё в ручную, но а как иначе то))
В общем требовалось найти все отметки вроде 150,02 и прочих, и заменить её на 150,020.
Стандартными средствами autocad сделать этого не получилось, но нашёл выход, и довольно быстро всё это делается.
Быстрым выбором выделил все мультивыноски (именно там были отметки прописаны), остальное удалил, чтобы не мешалось. Далее сохранил чертёж в dxf формат (dxf это если кто не знает просто текстовый документ и его можно открыть в блокноте или ворде). Как раз в ворде я его и открыл, и вот его средствами произвёл замену. Сохранил и готово))

При замене в ворде в поле "Найти" писал: 1??,??
а в поле "Заменить на": ^&0

^& - означает искомый текст, 0 - злополучный ноль, который надо дописать
r6311 вне форума  
 
Непрочитано 25.09.2012, 12:08
#65
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


AlexV, Нужна ваша помощь. Перестал работать нумератор подправленный вами вот здесь (http://forum.dwg.ru/showpost.php?p=651998&postcount=59)
Я перешел на Акад 2012 64 бита, виндовс 7. Вот какое сообщение выскакивает, когда я пытаюсь запустить команду (см. приложение).
Не знаете в чем может быть дело?
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 300
Размер:	280.4 Кб
ID:	87483  
Вложения
Тип файла: zip Number.zip (35.4 Кб, 73 просмотров)

Последний раз редактировалось Astartes, 25.09.2012 в 12:18.
Astartes вне форума  
 
Непрочитано 25.09.2012, 12:53
#66
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Astartes Посмотреть сообщение
AlexV, Нужна ваша помощь. Перестал работать нумератор подправленный вами вот здесь (http://forum.dwg.ru/showpost.php?p=651998&postcount=59)
Я перешел на Акад 2012 64 бита, виндовс 7. Вот какое сообщение выскакивает, когда я пытаюсь запустить команду (см. приложение).
Не знаете в чем может быть дело?
Ну, в А2013 64b подправил, вроде работает, по крайней мере форма вылазит, и тексты обрабатываются. Насчет 2012 64b не уверен..
Вложения
Тип файла: zip Number.zip (34.1 Кб, 112 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 25.09.2012, 13:12
#67
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


AlexV, Да, к сожалению в 2012 64 не работает. Ругается уже в другом месте. Неужели 2013 и 2012 так сильно отличаются.
Миниатюры
Нажмите на изображение для увеличения
Название: Ошибка.jpg
Просмотров: 135
Размер:	307.0 Кб
ID:	87486  
Astartes вне форума  
 
Непрочитано 25.09.2012, 17:25
#68
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Astartes Посмотреть сообщение
AlexV, Да, к сожалению в 2012 64 не работает. Ругается уже в другом месте. Неужели 2013 и 2012 так сильно отличаются.
Ну, VBA и в том и в том уже пятое колесо "то лапы ломит, то хвост отваливается".. У меня А2012 64 битный есть, но вба на нем не стоит, - че то по личным самоощущщениям, добавляет он в этой версии изрядное количество косяков, глюков и тормозов (по крайней мере, на моей машине)..
...А ругаетси, наверное, у тебя потому, что я в 2013 сохранил файл. Попробуй в редакторе VBA в референсах подключить Autocad 2012 Type Library
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 1608
Размер:	113.0 Кб
ID:	87510  
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 26.09.2012, 05:13
#69
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


AlexV, Обратно, огромная благодарность тебе. Все заработало.

Вопрос по поводу косяков. Я правильно понял, что при установке Vba-enabler для автокада, он весьма вероятно добавляет в работу автокада косяков даже, если не пользуешься Vba?
Astartes вне форума  
 
Непрочитано 26.09.2012, 08:59
#70
Кулик Алексей aka kpblc
Moderator

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


Не уверен, что ссылка прокатит, поэтому цитирую:
Цитата:
Сообщение от BDima
После обновления компа столкнулся с проблемой - катастрофически долго думает после команды сохранить. Решается удалением программы VBA enabler. Но без VBA туговато приходится - многим командам, на нем написанным не нашел замены. На рабочем компе Autocad той же версии, тока 32х битный - проблем нет, хотя и железо там уже староватое - тот же файл сохраняет вполне приемлемо по времени. Пробовал на 2011 и 2013 версиях - одинаково неприятно. Кто-нибудь сталкивался с такой проблемой?
ЗЫ
В процессе работы никаких нареканий не возникает, даже автосохранение проходит хоть и не так быстро, но вполне терпимо, а вот главная кнопка вводит CAD в ступор.
Цитата:
Сообщение от kpblc
Если ОС 64 бита, то такое вполне предсказуемо: VBA до сих пор работает в 32-разрядном варианте. Вроде как Autodesk собирается обновить VBA, но каков будет результат - неизвестно. В любом случае такое можно ждать не раньше 2014 версии...
P.S. А что за программы-то? Может, их как-то можно переписать, например, на VB.NET? Благо подобные уроки вроде как лежали на официальном сайте...
P.P.S. Блин, когда ж я-то перейду на .NET??
---
Добавлено: во, нашел: http://www.autodesk.ru/adsk/servlet/...36&id=18077292
Цитата:
Сообщение от BDima
как то странно - VBA взят с оф сайта и неужели у всех такой же косяк.
Собственно не программы, а простые команды типа fieltotext, нумератор и еще куча всякой нужной мелочи. Может конечно для них и есть альтернатива, да просто весь рабочий процесс уже отлажен - а тут такая неприятность.
Честно говоря далек я от творчества написания лиспов и всяческих языков программирования - тупо пользую чужие разработки, отвечающие моим требованиям.
За ссылку спасибо - желание все же присутствует вникнуть в глубины и овладеть тайнами, да времени не хватает, а может лень.
Цитата:
Сообщение от kpblc
А если попробовать оставить VBA Enabler, но при этом не подгружать ни один dvb-проект, а также выгрузить дополнительные меню - тогда тоже тормоза?
Цитата:
Сообщение от BDima
Ага, действительно, пока ничего из .dvb не загружено - работает нормально. А если совсем удалить VBA enabler - еще быстрее. То есть думаете выход один - отказаться от использования VBA?
Цитата:
Сообщение от kpblc
DVB-модуль можно выгрузить так же, как он и загружался: _.appload -> найти в списке имя модуля -> Unload / Выгрузить.
В LISP есть функция vla-unloaddvb <Имя выгружаемого dvb-модуля>
В VBA: ThisDrawing.Application.UnloadDVB <Имя выгружаемого dvb-модуля>
В .NET, кажется, тоже что-то подобное было. Но тут не уверен.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.09.2012, 09:37
#71
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Astartes Посмотреть сообщение
AlexV, Обратно, огромная благодарность тебе. Все заработало.
Вопрос по поводу косяков. Я правильно понял, что при установке Vba-enabler для автокада, он весьма вероятно добавляет в работу автокада косяков даже, если не пользуешься Vba?
Именно так. Не знаю, у всех ли так, а у меня - на 64b системе, если установлен vba, - со временем начинается глюк с системными окнами автокада ("сохранить" в частности) - при вызове команды акад виснет на несколько минут.
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 26.09.2012, 10:24
#72
SteelBrother

Проектировщик
 
Регистрация: 14.08.2011
Екатеринбург
Сообщений: 58
<phrase 1=


Вроде как в теме этот линк не видел:
http://lee-mac.com/bfind.html
может кому пригодится, давно пользуюсь, очень удобное приложение на лиспе.
SteelBrother вне форума  
 
Непрочитано 31.10.2013, 13:25
#73
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


Приветствую.
Есть мультивыноска с текстом и символом. Точнее с цифрой и символом, к примеру 3*, 9*.
Мне нужно найти все мультивыноски со звездочками.
Набираю в команде find - #'* (решетка, апостроф, звезда). Но не находит ничего.
Я ведь правильно задаю критерий запроса. Решетка, это одиночная цифра, апостроф отменяет "роль" звезды как спецсимвола и делает его обычным символом. Или не так.
Пробовал ставить разные галочки в расширенных настойках поиска, но все равно ничего не находит.
Автокад 2013 русский.

Последний раз редактировалось Astartes, 01.11.2013 в 05:08.
Astartes вне форума  
 
Непрочитано 31.10.2013, 13:54
#74
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Astartes, а если _find (найти) ->*
__________________
Как-то так.
sertor вне форума  
 
Непрочитано 31.10.2013, 14:39
#75
pan

добрый человек
 
Регистрация: 23.02.2004
Глушь
Сообщений: 971


Цитата:
Сообщение от Astartes Посмотреть сообщение
Набираю в команде find - #'* (решетка, апостроф, звезда). Но не находит ничего.
У тебя не апостроф. Вот апостроф `
__________________
Правильно сформулированный вопрос содержит 90% ответа.
pan вне форума  
 
Непрочитано 01.11.2013, 05:11
#76
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 824


sertor, Тогда он найдет вообще все мультивыноски где есть хоть какие то символы.

pan, Спасибо. Все работает.
__________________
AutoCad 2011 -> AutoCad 2013 -> AutoCad 2016 -> AutoCad 2011 -> AutoCad 2022
Astartes вне форума  
 
Непрочитано 19.03.2014, 14:01
#77
jon73


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


Добрый день! КТО НИБУДЬ сталкивался с задачей суперсложности? на планах есть номера экспликаций в многостр тексте (пр. 001, 002, и т.д. ) отдельно есть таблица в экселе где каждому номеру эксликации помещения присвоены напротив значения воздухообменов (пр. 001- 750м3/ч; 002 - 10м3/ч) . ВОЗМОЖНО ли средствами автокада выполнить автозамену оптом выделив все тексты экспликаций и чтобы вместо них (или рядом) нарисовались тексты второго столбца соответственно , НО в текущих местах где стоит текст экспликаций на планах.??? Простите за мои фантазии... лень - двигатель прогресса!

таблицу экселя можно перевести в автокадовскую табл. путем вставки "объек автокада"
jon73 вне форума  
 
Непрочитано 19.03.2014, 14:06
#78
Bull

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


Если конкретно про данный пример, то ничего сложного. _find ищет и заменяет везде. Даже настраивается. Заменить "001" на "001-750куб.м." не проблема. А если надо, чтобы при этом читалось значение из экселя, думаю, это невозможно. Если только умельцы тут хитрый лиспик не сделают. Но это надо в "программирование" писать.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.03.2014, 14:07
#79
jon73


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


А если таких помещений 500 шт мне 500 раз вводить команду поиск и замена?
jon73 вне форума  
 
Непрочитано 19.03.2014, 14:12
#80
Bull

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


так помещений или номеров? _find заменит за раз везде, где найдется текст для замены - кнопка там есть соответствующая.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.03.2014, 14:14
#81
jon73


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


В помещениях стоит номер по экспликации. и таких помещений и номеров больше 500 шт и надо каждому этому номеру дописать (или заменить) соответствующее значение из таблицы только оптом.
jon73 вне форума  
 
Непрочитано 19.03.2014, 14:20
#82
Bull

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


Тогда тебе точно надо открыть тему в "программирование". Если это вообще реализуемо.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.03.2014, 15:15
#83
jon73


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


Частично решил свою проблему.... оказывается можно в меню экспресс извлекать все атрибуты всех блоков в таблицу в ТХТ, затем эту таблицу можно в экселе подзаменить а затем вновь экспортировать в автокад!!! во как !!! только надо теперь научится многострочный текст разбросанный по плану преобразовать в множество блоков , ну и научится в этом файле ТХТ делать нужную замену... уже радует что выход есть! надо было чтобы архитекторы экспликацию делали в блоках с атрибутом
jon73 вне форума  
 
Непрочитано 19.03.2014, 15:24
#84
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,437
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от jon73 Посмотреть сообщение
уже радует что выход есть
Мда... уж... через одно место к гландам. Не судьба было исходники приложить чтобы сразу понятно было что делать ?
maratovich вне форума  
 
Непрочитано 19.03.2014, 15:26
#85
Bull

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


Цитата:
Сообщение от jon73 Посмотреть сообщение
затем эту таблицу можно в экселе подзаменить
Вы думаете, там проще автоматом 500 типов переименовать?
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 19.03.2014, 15:43
#86
jon73


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


Пример выложить в автокаде пока не могу, это только в голове мысли. но представить себе поле отдельных многострочных текстов - легко .. а файл ТХТ преобразовать в эксель легко оказывается , а ну уж в экселе я смогу сделать оптом автозамену этих чисел на свои (там проще работать с базами данных). в итоге все отдельные многострочные тексты быстро заменятся на мои значения! то есть во всех помещения будут стоять мои цифры которые у меня уже есть в таблице экселя

----- добавлено через ~1 мин. -----
Осталась одна проблема как эти многострочные отдельно стоящие тексты преобразовать в атрибуты блоков....
Вложения
Тип файла: pdf пример выгрузки файла — Блокнот.pdf (44.0 Кб, 96 просмотров)
jon73 вне форума  
 
Непрочитано 09.04.2014, 09:54
#87
dr-vart


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


Господа, как прописать в строке замены искомый текст. Нужно к искомому тексту добавить символ. Искомый текст это 4 цифры в разной последовательности.
dr-vart вне форума  
 
Непрочитано 09.04.2014, 10:08
#88
Bull

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


Цитата:
Сообщение от dr-vart Посмотреть сообщение
Искомый текст это 4 цифры в разной последовательности.
Конкретные цифры в разной последовательности одним махом никак. Только последовательно... Да и неконкретные тоже вроде никак. Воспринимается только конкретный символ ASCII или произвольный (*) без разделения на цифры и буквы
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 09.04.2014, 10:31
#89
dr-vart


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


Дело в том, что найти эти 4-х значные цифры получается "одним махом", а вот заменить их на теже цифры + "К".... неужели нет спец. символа обозначающего искомый текст..

----- добавлено через ~2 мин. -----
одна поправка! Цифры конкретные только в том, что они от 1 до 9 )). Вобщем это 4-х значные числа и #### их прекрасно находит
dr-vart вне форума  
 
Непрочитано 09.04.2014, 10:51
#90
Bull

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


Блин, я и забыл, что "#" это цифры. А вот заменить штатными средствами никак. Но тут на форуме несколько лиспов для нумерации и добавления символов были. Поищи.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 05.12.2014, 17:30
#91
RAD24


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


Здравствуйте! Подскажите пожалуйста. У меня есть множество мтекстов (текстов) пример "Г1 110Пэ" , "Г1 63Пэ" Как заменить цвет части текста? Нужно что бы буквы "Г1" и "Пэ" были синими а цифры "110", "63" были черные. Возможно ли это?
RAD24 вне форума  
 
Непрочитано 06.12.2014, 12:43
#92
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


В старых версиях (до 2009, кажется) можно было, причем штатными средствами. Начиная с 2010 эта возможность выпилена
Обсуждалось тут
В современных версиях - только средствами самописных приложений (в поиск) или Toolpack'а (в нем команда DSTP_MTFNDREP)
kp+ вне форума  
 
Непрочитано 15.12.2014, 23:30
#93
pik


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


Доброго времени суток!
У меня вопрос по поиску и замене текста 1. В мультивыносках, 2. просто однострочный или многострочный текст.
Вопрос следующего характера. Есть текст, например в мультивыноске, сверху полки слово "Пример" под полкой такое же слово "Пример" как заменить второе слово? Поиск и замена меняет оба слова.
Либо есть однострочный текст со словом "Пример", но где то он выделен зеленым цветом и его необходимо поменять на другое слово. Поиск и замена меняет полностью весь текст со словом "Пример". Можно как-то решить данный вопрос?
Спасибо!
pik вне форума  
 
Непрочитано 16.12.2014, 09:36
#94
CaMoCAD


 
Регистрация: 25.03.2008
Зелик
Сообщений: 1,599


Цитата:
Сообщение от pik Посмотреть сообщение
Есть текст, например в мультивыноске, сверху полки слово "Пример" под полкой такое же слово "Пример" как заменить второе слово? ...
Либо есть однострочный текст со словом "Пример", но где то он выделен зеленым цветом и его необходимо поменять на другое слово. Поиск и замена меняет полностью весь текст со словом "Пример"
Никаких "например" тут быть не может. Четко определитесь с критериями. Поиск может отличить выноску от Мтекста, нужно лишь снять галку. Как отличить нижнюю строчку от верхней - не знаю. Поменять только зеленый текст можно предварительно выделив его быстровыбором и установив в поиске опцию не "по всему файлу", а "только из выбранного".
__________________
* Буква "ё" не используется в тексте исключительно в связи с требованиями ЕСКД.
CaMoCAD вне форума  
 
Непрочитано 16.12.2014, 10:28
#95
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от CaMoCAD Посмотреть сообщение
Как отличить нижнюю строчку от верхней - не знаю
Первая строка "Пример\p". Вторая: "\pПример". Но .... см #92
kp+ вне форума  
 
Непрочитано 16.12.2014, 13:48
#96
pik


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Первая строка "Пример\p". Вторая: "\pПример". Но .... см #92
Не ищет он с параметром \p я уже пытался.

Цитата:
Сообщение от CaMoCAD Посмотреть сообщение
Никаких "например" тут быть не может. Четко определитесь с критериями.
С каким критерием? В выноске текст (например сверху "Диаметр трубы DN 20 "\p"Диаметр трубы DN 20 " надо поменять на "Диаметр трубы DN 20 "\p"Палка копалка длинная 100 см") сверху и снизу надо поменять тот что снизу. Или я что-то не понимаю?
pik вне форума  
 
Непрочитано 16.12.2014, 14:10
#97
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от pik Посмотреть сообщение
Не ищет он с параметром \p я уже пытался.
Повторюсь: возможность поиска кодов форматирования и других непечатаемых символов штатными средствами выпилена начиная с версии 2010.
Решение:
1) написать свое приложение;
2) найти готовое самописное приложение поиском по форуму;
3) найти Toolpack, там команда DSTP_MTFNDREP
kp+ вне форума  
 
Непрочитано 16.12.2014, 14:12
#98
pik


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Повторюсь: возможность поиска кодов форматирования и других непечатаемых символов штатными средствами выпилена начиная с версии 2010.
Решение:
1) написать свое приложение;
2) найти готовое самописное приложение поиском по форуму;
3) найти Toolpack, там команда DSTP_MTFNDREP
Спасибо! Сейчас будем искать согласно Вашим указаниям!
pik вне форума  
 
Непрочитано 16.12.2014, 14:31
#99
CaMoCAD


 
Регистрация: 25.03.2008
Зелик
Сообщений: 1,599


Цитата:
Сообщение от pik Посмотреть сообщение
С каким критерием? В выноске текст (например сверху "Диаметр трубы DN 20 "\p"Диаметр трубы DN 20 " надо поменять на "Диаметр трубы DN 20 "\p"Палка копалка длинная 100 см") сверху и снизу надо поменять тот что снизу. Или я что-то не понимаю?
Нет, это у меня в голове опилки. И такие длинные предложения меня только расстраивают. Попробуйте прочитать сами.
С каким критерием, - решать Вам. Для выносок - один способ, для зеленых текстов - другой. Универсального способа нет.
__________________
* Буква "ё" не используется в тексте исключительно в связи с требованиями ЕСКД.
CaMoCAD вне форума  
 
Непрочитано 14.04.2015, 10:00
#100
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Доброго времени суток. У меня есть Project Studio. Также имеется на чертеже очень очень много выносок, их тип объекта "Обозначение элемента", имеется там один нужный мне параметр: "Текст нижний" и там написано %%c20 А500, то есть диаметр 20 А500, вопрос: возможно ли какими нибудь чудесными методами, добавить ко всем этим А500, букву "С" дабы получить А500С. Пробовал _find, он не находит текст в таком типе объекта. Может есть какой-то иначе метод?
erikbond вне форума  
 
Непрочитано 14.04.2015, 10:11
#101
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от erikbond Посмотреть сообщение
Доброго времени суток. У меня есть Project Studio. Также имеется на чертеже очень очень много выносок, их тип объекта "Обозначение элемента", имеется там один нужный мне параметр: "Текст нижний" и там написано %%c20 А500, то есть диаметр 20 А500, вопрос: возможно ли какими нибудь чудесными методами, добавить ко всем этим А500, букву "С" дабы получить А500С. Пробовал _find, он не находит текст в таком типе объекта. Может есть какой-то иначе метод?
_find не работает с "не автокадовскими" объектами. Поэтому надо использовать инструменты приложения, в котором эти объекты создавались, либо разбивать объекты на примитивы. В СПДС CS есть spfind, в проджекте небось тоже чего-нибудь аналогичное есть. Хотя, насколько я помню, там выноски могут быть параметрические и связанные с объектами..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 14.04.2015, 10:14
#102
erikbond

Инженер-конструктор-LEGO
 
Регистрация: 22.05.2011
Ульяновск
Сообщений: 806


Цитата:
Сообщение от AlexV Посмотреть сообщение
там выноски могут быть параметрические и связанные с объектами..
Это да, они связаны с объектом, там два типа, один "Маркировка" (которую таскать по всему чертежу можно), а другой как раз мой "Обозначение элемента". Ладно, будем думать и искать кнопки.
erikbond вне форума  
 
Непрочитано 28.04.2015, 14:59
#103
DaiverCAD

Геодезист
 
Регистрация: 07.12.2007
Краснодар
Сообщений: 43


Ребят, подскажите пожалуйста как можно сделать замену, а точнее добавить в существующий текст нужные значения. Вообщем имеем много цифр в одно строчном формате ( 1, 2, 3,....155) нужно к каждой цифре добавить индекс например получить K1,K2....и т.д.
Пробовал через найти и заменить. В поле найти вписывал * (или *.*), в поле заменить K* (или K.*)
Но чет ничего не вышло или не находит- пишет ничего не найдено. Либо меняет конкретно на "K*"
Подскажите как правильно задать маску для поиска и замены.
Автокад полный 2013.
DaiverCAD вне форума  
 
Непрочитано 28.04.2015, 15:09
#104
Bull

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


DaiverCAD, плохо искал. Тут уже лиспы выкладывали такие.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 29.04.2015, 07:49
#105
DaiverCAD

Геодезист
 
Регистрация: 07.12.2007
Краснодар
Сообщений: 43


Цитата:
Сообщение от Bull Посмотреть сообщение
Тут уже лиспы выкладывали такие
Надеялся что можно обойтись стандартными средствами автокада (найти/заменить). Лисп так лисп, найду конечно.
DaiverCAD вне форума  
 
Непрочитано 29.04.2015, 08:47
| 1 #106
trir


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


Как не хватает RegEx
trir вне форума  
 
Непрочитано 02.05.2015, 08:51
#107
DaiverCAD

Геодезист
 
Регистрация: 07.12.2007
Краснодар
Сообщений: 43


Цитата:
Сообщение от trir Посмотреть сообщение
Как не хватает RegEx
Вроде бы намеки на что то подобное есть в автокаде, но у меня не получилось применить.
http://exchange.autodesk.com/autocad...5a7b7-7aa4.htm
Вроде бы раздел автокада по ссылке.
DaiverCAD вне форума  
 
Непрочитано 06.05.2015, 22:09
#108
mihamster

Геодезист
 
Регистрация: 09.11.2014
Сообщений: 7


есть лисп который добавляет префикс и суффикс к выбранному тексту.
но он работает только со стандартными акадовскими text mtext..
если текст записывается просто в отдельной характеристикой, то лисп просто поменять под эту характеристику.
Код:
[Выделить все]
(defun c:dobavit-v-txt (/ prefiks-txt sufiks-txt spisok harkt-primitiva i)
 (initget 1)
 (setq prefiks-txt (getstring T "префикс: "))
 (initget 1)
 (setq sufiks-txt (getstring T "суффикс: "))
 (princ)
 (setq spisok (ssget '((0 . "*text"))))
 (setq i 0)
 (while (< i (sslength spisok))
 (setq harkt-primitiva (entget (ssname spisok i)))
 (setq soderzhimoe (cons 1 (strcat prefiks-txt (cdr (assoc 1 harkt-primitiva)) sufiks-txt)))
 (setq harkt-primitiva (subst soderzhimoe (assoc 1 harkt-primitiva) harkt-primitiva))
 (entmod harkt-primitiva)
 (setq i (1+ i))
 )
 (princ)
)
mihamster вне форума  
 
Непрочитано 02.06.2015, 10:16
#109
pentaone


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


Не подскажите как можно осуществить поиск и замену текста в мультивыносках?
Стандартная команда ПОИСК (_find) отказывается искать
pentaone вне форума  
 
Непрочитано 02.06.2015, 11:14
#110
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Цитата:
Сообщение от pentaone Посмотреть сообщение
Не подскажите как можно осуществить поиск и замену текста в мультивыносках?
Стандартная команда ПОИСК (_find) отказывается искать
А соответствующая галочка стоит в настройках поиска?
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 425
Размер:	77.5 Кб
ID:	150970  
Хмурый вне форума  
 
Непрочитано 02.06.2015, 11:40
#111
pentaone


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


Да, стоит. Специально на нее внимание обратил, правда написано текст размера или выноски, а о мультивыноски не слова

----- добавлено через ~4 мин. -----
Хотя промониторив данную тему нашел сообщения о том, что командой ПОИСК все таки можно выполнить поиск и замену текста в мультивыноске, но у меня почему то отказывается искать(
pentaone вне форума  
 
Непрочитано 02.06.2015, 12:18
#112
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Цитата:
Сообщение от pentaone Посмотреть сообщение
Да, стоит. Специально на нее внимание обратил, правда написано текст размера или выноски, а о мультивыноски не слова

----- добавлено через ~4 мин. -----
Хотя промониторив данную тему нашел сообщения о том, что командой ПОИСК все таки можно выполнить поиск и замену текста в мультивыноске, но у меня почему то отказывается искать(
фрагмент файла с выносками приложи
Хмурый вне форума  
 
Непрочитано 02.06.2015, 13:06
#113
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Цитата:
Сообщение от pentaone Посмотреть сообщение
о том, что командой ПОИСК
Так, к слову... Нет такой команды в рус. версии. Есть НАЙТИ
__________________
Как-то так.
sertor вне форума  
 
Непрочитано 02.06.2015, 16:47
#114
pentaone


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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
фрагмент файла с выносками приложи
Файл рабочий, поэтому не представляется возможности его выложить.
Правда я заметил, если в новом файле если создать мультивыноски и воспользоваться командой найти, все прекрасно работает, значит проблема в файле

----- добавлено через 22 сек. -----
Цитата:
Сообщение от sertor Посмотреть сообщение
Так, к слову... Нет такой команды в рус. версии. Есть НАЙТИ
Точно
pentaone вне форума  
 
Непрочитано 02.06.2015, 17:01
#115
Кулик Алексей aka kpblc
Moderator

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


Поскольку ошибка в одном файле, советую проверить его на ошибки или через _.wblock создать его копию.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2015, 18:52
#116
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Цитата:
Сообщение от pentaone Посмотреть сообщение
Файл рабочий, поэтому не представляется возможности его выложить.
не прошу-же весь файл, а только фрагмент. "Сохранить как", лишнее удалить (всё , кроме выносок), _purge и выкладывай
PS а "найти" или "поиск" неважно, как обозвать. и так и так, бывало, от версии к версии

Последний раз редактировалось Хмурый, 02.06.2015 в 18:59.
Хмурый вне форума  
 
Непрочитано 15.01.2016, 10:54 Поиск вхождений полей в чертеже
#117
allar8


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


Стандартная команда поиска в Аutocad не может искать вхождения полей в чертеже - пробовал по коду поля искать - не ищет, ну и по значению поля тоже не ищет. Можно как-нибудь решить данную проблему?
allar8 вне форума  
 
Непрочитано 15.01.2016, 14:30
#118
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


allar8, попробуйте командой Фильтр. У меня работает (по Значению текста).
__________________
Как-то так.
sertor вне форума  
 
Непрочитано 17.01.2016, 15:57
#119
allar8


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


Цитата:
Сообщение от sertor Посмотреть сообщение
allar8, попробуйте командой Фильтр. У меня работает (по Значению текста).
Как, я понял данную команду нужно использовать с предварительным выбором всех объектов. С обычным текстом работает, а вот с полями все равно не выбирает у меня, может не так пользуюсь командой?

Последний раз редактировалось allar8, 17.01.2016 в 16:14.
allar8 вне форума  
 
Непрочитано 17.01.2016, 18:40
1 | #120
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


allar8
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1.png
Просмотров: 299
Размер:	15.2 Кб
ID:	163796  Нажмите на изображение для увеличения
Название: Image 2.png
Просмотров: 240
Размер:	20.7 Кб
ID:	163797  
__________________
Как-то так.
sertor вне форума  
 
Непрочитано 17.01.2016, 20:19
#121
allar8


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


Цитата:
Сообщение от sertor Посмотреть сообщение
allar8
Да вроде работает, но выбирает только МТЕКСТ, однострочный почему-то не выбирает
allar8 вне форума  
 
Непрочитано 05.04.2016, 17:05 Тормозит поиск в больших файлах dwg
#122
allar8


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


С этим наверное многие сталкивались. Народ, можно как нибудь ускорить выход из диалогового окна поиска в Автокад? - в файлах с большим количеством элементов - очень долго закрывается диалоговое окно поиска. Или может есть какое нибудь расширение для автокада по этой теме. Вроде СПДСовское расширение содержит в своем составе нетормозной поиск, но уставновка СПДС "портит" автокадовские файлы - т.е. на машинах без СПДС такие файлы открываются некорректно. По этой причине установка СПДС - не подходит
allar8 вне форума  
 
Непрочитано 06.04.2016, 04:50
1 | #123
Gmk17

САПРовод
 
Регистрация: 22.01.2013
Красноярск
Сообщений: 290


Тормозит не поиск, а последующая регенерация. Смотрим командную строку:
Код:
[Выделить все]
Команда: _find Выполняется регенерация модели.
А скорость регенерации зависит только от аппаратного ускорения и от версии Автокада (например 2014 примерно в два раза быстрее чем 2012).
Можно выполнять поиск/замену, находясь в пустом листе (без видовых экранов). Тогда ничего не будет тормозить

Цитата:
Сообщение от allar8 Посмотреть сообщение
но уставновка СПДС "портит" автокадовские файлы - т.е. на машинах без СПДС такие файлы открываются некорректно.
С чего вы взяли, что СПДС чего-то портит? Если не добавлять СПДС-объекты, то ничего в файле не изменится.
И вообще, единственное, что нужно для корректного открытия файлов с СПДС-объектами - это шрифт CS_Gost2304.shx, который уже должен быть у всех, имхо.
Опять же, СПДС GraphiCS Enabler никто не отменял.

Последний раз редактировалось Gmk17, 06.04.2016 в 04:56.
Gmk17 вне форума  
 
Непрочитано 06.04.2016, 08:40
1 | #124
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Gmk17 Посмотреть сообщение
А скорость регенерации зависит только от аппаратного ускорения и от версии Автокада (например 2014 примерно в два раза быстрее чем 2012).
По-моему, еще и REGENMODE может добавить / убавить тормозов.
Цитата:
Сообщение от Gmk17 Посмотреть сообщение
Если не добавлять СПДС-объекты, то ничего в файле не изменится.
Не совсем так: во-первых, приложение регистрируется. Во-вторых, часть неграфических прокси все-таки добавляется (можешь проверить, создав пустой файл с СПДС, и потом открыв этот файл в абсолютно чистом ACAD). В-третих, часть настроек тоже меняется (насколько я помню, текстовые / размерные стили, еще что-то). Но это при использовании "полноценного" СПДС GraphiCS. Что будет при работе с Enabler'ом - не знаю, не сталкивался.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.04.2016, 09:07
#125
allar8


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


Цитата:
Сообщение от Gmk17 Посмотреть сообщение
Опять же, СПДС GraphiCS Enabler никто не отменял.
Это конечно хорошо, но когда заказчикам отдаешь автокадовский файл, то в этом случае ему еще и инструкцию и дистрибутив или сслылку на СПДС GraphiCS Enabler нужно отправлять. На мой взгляд для заказчика это будет слишком сложно. Вобщем я не сторонник СПДС GraphiCS. А так конечно спасибо за ответы.

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По-моему, еще и REGENMODE может добавить / убавить тормозов.
Попробовал 0 поставить - не помогло.
В общем как я понимаю проблему с тормозами выхода из диалогового окна поиска не решить без СПДС GraphiCS?
allar8 вне форума  
 
Непрочитано 06.04.2016, 09:14
#126
Gmk17

САПРовод
 
Регистрация: 22.01.2013
Красноярск
Сообщений: 290


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Не совсем так: во-первых, приложение регистрируется. Во-вторых, часть неграфических прокси все-таки добавляется (можешь проверить, создав пустой файл с СПДС, и потом открыв этот файл в абсолютно чистом ACAD). В-третих, часть настроек тоже меняется (насколько я помню, текстовые / размерные стили, еще что-то). Но это при использовании "полноценного" СПДС GraphiCS. Что будет при работе с Enabler'ом - не знаю, не сталкивался.
Согласен. Но это всё никак не "портит" существующие файлы и они не могут потом некорректно открываться на компе без СПДС.
Автоматическое создание и активацию стилей СПДС можно легко отключить. Enabler вообще безвреден.

Всё это из серии - "...ты просто не умеешь их готовить".

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
В общем как я понимаю проблему с тормозами выхода из диалогового окна поиска не решить без СПДС GraphiCS?
Решена: 16 Gb оперативы, Core i7, SSD-винт

----- добавлено через ~6 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
На мой взгляд для заказчика это будет слишком сложно.
А Автокад для него не сложно? Отдавай PDF.
Еще раз - если ты не создал ни одного СПДС-объекта, то не нужен заказчику Enabler/

Я надеюсь ты ему не DWG отдаёшь, а формируешь комплект?

Последний раз редактировалось Gmk17, 06.04.2016 в 09:21.
Gmk17 вне форума  
 
Непрочитано 06.04.2016, 09:27
#127
allar8


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


Цитата:
Сообщение от Gmk17 Посмотреть сообщение
Можно выполнять поиск/замену, находясь в пустом листе (без видовых экранов). Тогда ничего не будет тормозить
Попробовал такой метод - согласен для поиска замены - подойдет, но когда нужно просто найти объекты на чертеже то происходит возврат в пространство модели и опять выход тормозит
allar8 вне форума  
 
Непрочитано 06.04.2016, 09:29
#128
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Gmk17 Посмотреть сообщение
Всё это из серии - "...ты просто не умеешь их готовить".
Кто бы спорил, но не я
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.04.2016, 09:33
#129
allar8


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


Цитата:
Сообщение от Gmk17 Посмотреть сообщение
Решена: 16 Gb оперативы, Core i7, SSD-винт
Вот это именно то что мне и нужно

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от Gmk17 Посмотреть сообщение
А Автокад для него не сложно? Отдавай PDF.
Еще раз - если ты не создал ни одного СПДС-объекта, то не нужен заказчику Enabler/

Я надеюсь ты ему не DWG отдаёшь, а формируешь комплект?
Да я для примера привел - иногда и в ТЗ требуют кстати в Акаде. А вообще даже в пределах одной организации каждому объяснять про Enabler? вобщем повторюсь был у нас плачевный опыт уже с СПДС GraphiCS
allar8 вне форума  
 
Непрочитано 06.04.2016, 09:44
#130
Gmk17

САПРовод
 
Регистрация: 22.01.2013
Красноярск
Сообщений: 290


Цитата:
Сообщение от allar8 Посмотреть сообщение
А вообще даже в пределах одной организации каждому объяснять про Enabler?
Не надо ничего никому объяснять. Админ тихо всем поставил и всё работает само.
Цитата:
Сообщение от allar8 Посмотреть сообщение
был у нас плачевный опыт уже с СПДС GraphiCS
ну возвращайтесь на кульманы, чё... Логика та же.
Gmk17 вне форума  
 
Непрочитано 06.04.2016, 09:47
#131
allar8


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


Цитата:
Сообщение от Gmk17 Посмотреть сообщение
Решена: 16 Gb оперативы, Core i7, SSD-винт
Да кстати СПДС GraphiCS как то без этого обходится. Там походу отключена регенерация на поиске или там вообще другой принцип?
allar8 вне форума  
 
Непрочитано 06.04.2016, 09:50
#132
Gmk17

САПРовод
 
Регистрация: 22.01.2013
Красноярск
Сообщений: 290


Так я же сразу сказал, что не в самом поиске дело, а в регенерации после него.
Gmk17 вне форума  
 
Непрочитано 06.04.2016, 10:05
#133
allar8


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


Цитата:
Сообщение от Gmk17 Посмотреть сообщение
Не надо ничего никому объяснять. Админ тихо всем поставил и всё работает само.
Цитата:
Сообщение от Gmk17 Посмотреть сообщение
ну возвращайтесь на кульманы, чё... Логика та же.
Спорить с Вами не буду. Но если заставите нашего админа, что то подобное сделать хотя бы на двух компах, можете считать что вы просто герой. В общем я Вас понял - спасибо за ценные советы.
allar8 вне форума  
 
Непрочитано 10.08.2016, 10:57
#134
AntonFox

КИП, проектировщик
 
Регистрация: 02.04.2012
Самара
Сообщений: 53


Доброго времени суток, уважаемые!
Вопрос не совсем в тему, но рядом...

Автокад 2008. Открываем «Найти…» (заглавие окна «найти и заменить, а в меню почему-то только Найти, возможно локализация кривая) вбиваем нужный текст и делаем поиск по чертежу.
Находим нужный текст и все автоматом зуммируется.
Закрываем окно и … зум возвращается в первоначальное положение – хз где найденный текст…

Открываем снова окно, снова ищем и опять тыкая в найденное зуммируется нужное место до тех пор пока окно поиска не закрыто.

В 2007 есть кнопка ЗУММИРОВАТЬ – она как раз показывает нужное место и после закрытия окна поиска остается в том же положении.

В более новых версиях все как в 2008, но справа от результатов поиска есть кнопки добавления в выделение найденного.
http://sapr-journal.ru/tips-tricks/k...nit-v-autocad/ - вот тут это хорошо видно.
В 2008 этих кнопок нет. Снизу только Найти, Заменить, Заменить все, отмена и Справка. А сбоку от результатов нет ничего.

Так вот вопрос – как в 2008 сделать так, что бы найденное зуммировалось и оставалось в таком положении после закрытия окна поиска?
Есть спецификация на форматках А3 в акадовском файле (около 200стр) - без поиска найти там нужное очень трудно.
Может есть какая переменная? Или в настройках где-то галочку надо поставить?
AntonFox вне форума  
 
Непрочитано 11.08.2016, 08:45
#135
sertor

Геодезист
 
Регистрация: 23.05.2012
Ухта
Сообщений: 1,377


Цитата:
Сообщение от AntonFox Посмотреть сообщение
Так вот вопрос – как в 2008 сделать так, что бы найденное зуммировалось и оставалось в таком положении после закрытия окна поиска?
Есть спецификация на форматках А3 в акадовском файле (около 200стр) - без поиска найти там нужное очень трудно.
Обсуждался этот вопрос, давненько правда. Решением оказалась установка SP-2.
__________________
Как-то так.
sertor вне форума  
 
Непрочитано 20.08.2016, 16:16
#136
flareon

техник-геолог
 
Регистрация: 26.12.2009
Kenigsberg
Сообщений: 79


Здравствуйте! В посте #24 был задан вопрос о поиске трехзначных цифр в диапазоне, ответ ну никак в голове не поместился(((....Как забить в быстрый поиск диапазон двузначных понял, а вот с этими...блин...Помогите пожалуйста! Спасибо!
flareon вне форума  
 
Непрочитано 28.06.2017, 14:17
#137
Syrex


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


И вот у меня появилась похожая задача: из нумерации по пакетам сделали сквозную, ссылки на чертежи поменялись, а их очень и очень много
Программа Lee Mac-а http://www.lee-mac.com/bfind.html и из 3 поста https://forum.dwg.ru/showpost.php?p=474324&postcount=3 не плохи, но не совсем подходят, т.к. изменяют полностью весь файл, что неприемлемо, а мне надо только определенные части которые я бы выбрал, и производить замену в определенной последовательности, может я не нашел возможность и к сожалению функцией Find & Replace (_Find) с командной строки нет возможности управлять, всегда вылазит окно.
(почему то из 3 поста не заработала, нашел пост автора и взял оттуда http://www.cadtutor.net/forum/showth...lace-LISP-Ever...)
вот пример какие изменения надо сделать (корректная последовательность) :
20.2 >>> 24
20.1 >>> 23
.......
(19) >>> (22)
(18) >>> (21)
(17) >>> (20)

и т.п.
для текста со скобочками, (уникальный текст) написал следующего типа макрос но он работает отчасти корректно

Код:
[Выделить все]
 (defun c:ListFind03()
(tfindfun "20.2" "24" 1)
(tfindfun "20.1" "23" 1)
(tfindfun "(20.2)" "(24)" 1)
(tfindfun "(20.1)" "(23)" 1)
(tfindfun "(19)" "(22)" 1)
(tfindfun "(18)" "(21)" 1)
и т.п.
)
но почему то замена происходит не у всех цифр см. скриншоты первый до
и второй после действия макроса
меняется только последняя цифра
сам виноват синтаксис нарушил
Возникает несколько вопросов что я делаю не так?
Какие изменения внести в Lisp что бы он работал только с выделением?
Возможно мне стоит решить задачу какими то иными способами?
Способ решения через _Find я знаю
Прошу помощи в решении данных вопросов. Заранее спасибо!

Последний раз редактировалось Syrex, 29.06.2017 в 16:04.
Syrex вне форума  
 
Непрочитано 28.06.2017, 15:22
#138
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Вообще то с таким количеством ссылок проще было бы через подшивку и поля сделать, имхо.
Сергей812 вне форума  
 
Непрочитано 29.06.2017, 08:17
#139
Syrex


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


Сергей812 что такое в лиспе "подшивка и поля?" в автокаде уже давно не работаю забывать стал.
Offtop: если охота поболтать: "Проще" - в данном случае это теория, а у меня суровая действительность.
Syrex вне форума  
 
Непрочитано 29.06.2017, 15:08
#140
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


А причем тут лисп, это ветка про сам акад вообще-то? Посмотрите, что такое подшивка в инете. Потом на чертеже - где ссылки на номера листов - там вставляются поля->подшивка->раскрывается список листов и выбирается номер листов. Теперь достаточно перетащить листы в подшивке при необходимости, перенумеровать их и обновить чертеж(и). И поля будут указывать именно на текущий номер листа и во всех местах чертежа - это стандартный механизм не помню с какого еще акада. Просто это делать изначально надо было так - это к вопросу о:
Цитата:
Сообщение от Syrex Посмотреть сообщение
Возможно мне стоит решить задачу какими то иными способами?
Сергей812 вне форума  
 
Непрочитано 29.06.2017, 16:20
#141
Syrex


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


Offtop:
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А причем тут лисп, это ветка про сам акад вообще-то?
а я именно про автокад спрашиваю и о лисп-программах узнал именно в этой теме

Offtop: Про _Field почитал в справке
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
это к вопросу о:
"разговор глухого со слепым"? Поясню раз не очевидно, этот вопрос был о том как решить конкретную задачу иначе, того пути который я избрал, использовать какие то другие средства автокада, а не о том как надо, что то, где то, когда то надо БЫЛО сделать.
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Просто это делать изначально надо было так
просто но не сделано

Offtop: Сергей812 вам пообщаться охота, показать что вы знаете, как это поможет? Давайте объясню, чертежи не мои, делал не знаю кто, но явно разные люди может организации, я давно уже стал далек от детального проектирования и автокада, но меня попросили помочь, работаю с тем что есть, замечаний у меня очень много но рефлексия тут неуместна, прохожу лиспом или _find и потом ручками
Syrex вне форума  
 
Непрочитано 16.11.2017, 15:15
#142
allar8


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


Подскажите, как найти все тексты в файле содержащими только символ #. Стандартным поиском и фильтром не получается т.к. автокад данный символ воспринимает как маску и выбирает все тексты
А не фильтром вроде получилось
Не это мне показалось - фильтр еще дофига лишнего понавыбирал.

Дык как жи все таки сделать
allar8 вне форума  
 
Непрочитано 16.11.2017, 15:17
1 | #143
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от allar8 Посмотреть сообщение
как найти все тексты в файле содержащими только символ #
Попробуй такую маску:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.11.2017, 15:19
#144
allar8


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
*`#*
Спасибо помогло
allar8 вне форума  
 
Непрочитано 16.11.2017, 16:47
| 1 #145
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Offtop: allar8, это случайно не порушенные поля?
skkkk вне форума  
 
Непрочитано 16.11.2017, 19:52
#146
allar8


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Offtop: allar8, это случайно не порушенные поля?
Совершенно верно)
allar8 вне форума  
 
Непрочитано 16.11.2017, 20:06
1 | #147
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Offtop: Рекомендую заглянуть в эту тему: LISP. Как определить ошибочные поля (####) в AutoCAD?
skkkk вне форума  
 
Непрочитано 16.11.2017, 20:16
#148
allar8


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Рекомендую заглянуть в эту тему: LISP. Как определить ошибочные поля (####) в AutoCAD?
Даже это есть. Че сказать молодцы!!! Спасибо
allar8 вне форума  
 
Непрочитано 28.08.2019, 08:49
#149
allar8


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


Люди, подскажите плиз - можно как нить заменить текст на поля. Т.е. у меня ссылки на чертежах в виде текста например (см. л. 3). Нужно л.3 везде заменить на номер нужного листа в подшивке. Такое возможно? Пробовал вставлять в поиске/замене код поля - все равно вставляет текстом а не полем.
allar8 вне форума  
 
Непрочитано 28.08.2019, 10:03
1 | #150
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Цитата:
Сообщение от allar8 Посмотреть сообщение
Люди, подскажите плиз - можно как нить заменить текст на поля. Т.е. у меня ссылки на чертежах в виде текста например (см. л. 3). Нужно л.3 везде заменить на номер нужного листа в подшивке. Такое возможно? Пробовал вставлять в поиске/замене код поля - все равно вставляет текстом а не полем.
попробуй через панель Свойства вставить в Содержимое код поля
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 28.08.2019, 10:06
#151
allar8


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


Цитата:
Сообщение от zenon Посмотреть сообщение
попробуй через панель Свойства вставить в Содержимое код поля
Согласен, но там разные тексты т.е. ссылки имею разные начала текста
И эта тема быстро прокатывает только с однострочниками. Если мтекст, блин, акад в каждый заходит зачем то(())
Но самое главное, то что ссылки в разных текстах
allar8 вне форума  
 
Непрочитано 28.08.2019, 10:24
1 | #152
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от allar8 Посмотреть сообщение
через панель Свойства вставить в Содержимое код поля... эта тема быстро прокатывает только с однострочниками. Если мтекст, блин, акад в каждый заходит зачем то(())
Попробуйте этот код:
Код:
[Выделить все]
(defun kp_text_populate (/ a a1 a_st)
  (setq a_st (getstring T "ЧТО:\n"))
  (if a_st
    (while (= 1 1)
	  (while
	   (not (and
	    (setq a (nentsel (strcat "(" a_st ") - Куда:\n")))
	    (setq a1 (vlax-ename->vla-object (car a)))
	    (vlax-property-available-p a1 'textstring)
	   ))
	  )
	  (vla-put-textstring a1 a_st)
    )
  )
)
Он, правда, не работает с множеством объектов сразу, надо прощелкать мышью все нужные (так было задумано), но если что - нетрудно слегка модифицировать

Для операции поиска и замены на код поля можете использовать BFIND (поиск по форуму в помощь). Только соблюдайте осторожность, снимите "опасные" галочки типа "обработать все файлы в папке"
kp+ вне форума  
 
Непрочитано 28.08.2019, 10:26
#153
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Он, правда, не работает с множеством объектов сразу, надо прощелкать мышью все нужные (так было задумано), но если что - нетрудно слегка модифицировать
Спасибо - поковыряюсь, если получится)) - я ведь только учусь лиспить то)))
allar8 вне форума  
 
Непрочитано 28.08.2019, 10:29
#154
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


как использовать готовый код - написано в FAQ.
kp+ вне форума  
 
Непрочитано 28.08.2019, 10:30
#155
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
как использовать готовый код - написано
Да не - использовать то конечно могу, и уж давно. Поковыряюсь - в смысле модифицировать)

----- добавлено через ~8 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
Люди, подскажите плиз - можно как нить заменить текст на поля. Т.е. у меня ссылки на чертежах в виде текста например (см. л. 3). Нужно л.3 везде заменить на номер нужного листа в подшивке. Такое возможно? Пробовал вставлять в поиске/замене код поля - все равно вставляет текстом а не полем.
Хотя нашел конечно еще решение, но все равно с поиском заменой было бы ваще супер.
С помощью префиксов и суфиксов в программе number.dvb. Она коды полей воспринимает.

Последний раз редактировалось allar8, 28.08.2019 в 10:38.
allar8 вне форума  
 
Непрочитано 28.08.2019, 11:18
#156
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от allar8 Посмотреть сообщение
Хотя нашел конечно еще решение, но все равно с поиском заменой было бы ваще супер.
только что попробовал BFIND. Отлично сработало. По мне, единственный минус - нельзя ограничить область поиска и замены выбранными объектами, только весь чертеж, но Вам вроде бы этого и надо.
kp+ вне форума  
 
Непрочитано 28.08.2019, 11:19
#157
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
только что попробовал BFIND. Отлично сработало. По мне, единственный минус - нельзя ограничить область поиска и замены выбранными объектами, только весь чертеж, но Вам вроде бы этого и надо.
ну да. Только я им тож пробовал - он блин мне все поля перепутал. Ща еще раз попробую
allar8 вне форума  
 
Непрочитано 28.08.2019, 11:25
#158
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от allar8 Посмотреть сообщение
он блин мне все поля перепутал
ну так им надо пользоваться осторожно, как оружием массового поражения. Вы какую замену задали? Например "л. 3" на "л. <код поля листа 3 из подшивки>"? А он нагадил еще и в л. 13, л. 23, л. 33? Ну так надо было сначала заменить л. 33, потом 23, потом 13 и в последнюю очередь 3. Он же не живой, по-людски не объяснишь.
kp+ вне форума  
 
Непрочитано 28.08.2019, 11:26
#159
allar8


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


Цитата:
Сообщение от allar8 Посмотреть сообщение
Ща еще раз попробую
Попробовал) - хорошо что на копии файла)
В обчем знаете наверно засаду - как путается автокад с одинаковыми цифрами в полях и просто в совершенно других местах. Вот тут это проявилось в полной мере)))

----- добавлено через 30 сек. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
ну так им надо пользоваться осторожно, как оружием массового поражения
))) точно оружие массового поражения)))
allar8 вне форума  
 
Непрочитано 28.08.2019, 11:28
#160
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от allar8 Посмотреть сообщение
В обчем знаете наверно засаду - как путается автокад с одинаковыми цифрами в полях и просто в совершенно других местах. Вот тут это проявилось в полной мере)))
Дальше надо видеть реальный пример Вашего файла (без совершенно секретной информации, только то, что по теме) и пример маски для замены, которую Вы задали BFIND'у. Есть подозрение, что вопрос легко решается, только с нужного конца зайти.
kp+ вне форума  
 
Непрочитано 28.08.2019, 11:31
#161
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Дальше надо видеть пример файла и пример маски для замены. Есть подозрение, что вопрос легко решается, только с нужного конца зайти.
Может и легко - но признаться мучает этот вопрос меня давно))).
а по поводу
Цитата:
Сообщение от kp+ Посмотреть сообщение
(defun kp_text_populate (/ a a1 a_st)
(setq a_st (getstring T "ЧТО:\n"))
(if a_st
(while (= 1 1)
(while
(not (and
(setq a (nentsel (strcat "(" a_st ") - Куда:\n")))
(setq a1 (vlax-ename->vla-object (car a)))
(vlax-property-available-p a1 'textstring)
))
)
(vla-put-textstring a1 a_st)
)
)
)
Результат чет странный - просто в ком строке выводится слово "ЧТО:"

----- добавлено через ~3 мин. -----
Цитата:
Сообщение от allar8 Посмотреть сообщение
Результат чет странный - просто в ком строке выводится слово "ЧТО:"
Разобралси), спасибо!
allar8 вне форума  
 
Непрочитано 28.08.2019, 11:34
1 | #162
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


ну правильно, Вас спрашивают, ЧТО (какой текст) надо тиражировать и КУДА (в какие объекты) его вставлять. Я понимаю, что после последствий от BFIND желание экспериментировать немного угасает, но все же

Цитата:
Сообщение от allar8 Посмотреть сообщение
Может и легко - но признаться мучает этот вопрос меня давно))).
Ну так где предмет для дальнейшего обсуждения?
kp+ вне форума  
 
Непрочитано 28.08.2019, 11:37
#163
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Я понимаю, что после последствий от BFIND желание экспериментировать немного угасает, но все же
Да не я уж знаком был с этим - просто решил ишо раз попробовать, - говорю же - на копии)))

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
ну правильно, Вас спрашивают, ЧТО (какой текст) надо тиражировать и КУДА (в какие объекты) его вставлять. Я понимаю, что после последствий от BFIND желание экспериментировать немного угасает, но все же
В обчем на данном этапе пока мне показалось очень полезная. Еще раз спасибо! Как говорится на безрыбье и рак рыба)
allar8 вне форума  
 
Непрочитано 28.08.2019, 11:43
#164
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от allar8 Посмотреть сообщение
В обчем на данном этапе пока мне показалось очень полезная. Еще раз спасибо! Как говорится на безрыбье и рак рыба)
т.к. на вопрос из #160 и второй части #162 ответа нет, то на этой мажорной ноте можно пока остановиться
kp+ вне форума  
 
Непрочитано 28.08.2019, 11:46
#165
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
т.к. на вопрос из #160 и второй части #162 ответа нет, то на этой мажорной ноте можно пока остановиться
Да запросто - 5 мин). Только мы ведь с вами и без примера понимаем о чем речь то)
В этом примере интересует замена любого поля из подшивки. Свойства подшивки изменил без автокада. терь надо бы и в файле двг)

Последний раз редактировалось allar8, 20.03.2020 в 11:19.
allar8 вне форума  
 
Непрочитано 28.08.2019, 11:52
#166
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от allar8 Посмотреть сообщение
Только мы ведь с вами и без примера понимаем о чем речь то
Понимаю, да не совсем. В конце концов, зачем мне ломать голову, на какой именно ситуации мог бы воспроизводиться описанный Вами глюк? Экстрасенсы лечат по фотографии, но по описаниям даже они не лечат
kp+ вне форума  
 
Непрочитано 28.08.2019, 11:54
#167
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Понимаю, да не совсем. В конце концов, зачем мне ломать голову, на какой именно ситуации мог бы воспроизводиться описанный Вами глюк? Экстрасенсы лечат по фотографии, но по описаниям даже они не лечат
Приложил - если поможете буду бескрайне благодарен. Заранее спасибо!
allar8 вне форума  
 
Непрочитано 28.08.2019, 11:55
#168
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


это неудачный результат. А где исходник без полей, не загаженный BFIND'ом? Я ж не вижу Ваш комплект и могу подумать, что ссылки на листы такие и должны быть.
И какую именно маску замены Вы задали BFIND'у?
kp+ вне форума  
 
Непрочитано 28.08.2019, 11:59
#169
allar8


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
это неудачный результат. А где исходник, перегаженный BFIND'ом? Я ж не вижу Ваш комплект и могу подумать, что ссылки на листы такие и должны быть.
И какую именно маску замены Вы задали BFIND'у?
В BFIND в строке поиска вставил код поля из подшивки
вот этот
%<\AcSm Database("d:\users1212\Проекты\1072PE\DProject\123_015_004\RZ\Current\гаршинская.dst").SheetSet("g1EF8EAF3-E429-410C-9ED0-43E6EBED5AD4").Component("g1EF8EAF3-E429-410C-9ED0-43E6EBED5AD4").Шкаф ДЗО_Пункт примечания изменения внутри шкафа \f "%tc1">%

в строке замены вот это
%<\AcSm Database("d:\users1212\Проекты\1072PE\DProject\123_015_004\RZ\Current\гаршинская.dst").SheetSet("g1EF8EAF3-E429-410C-9ED0-43E6EBED5AD4").Component("g1EF8EAF3-E429-410C-9ED0-43E6EBED5AD4").Шкаф ДЗШ_Пункт примечания изменения внутри шкафа \f "%tc1">%

т.е. посути то нужно заменить в коде полей ДЗО на ДЗШ, чтоб восстановить связь с подшивкой - которую я редактировал

Часть в примере уже руками заменил



----- добавлено через ~5 мин. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
А где исходник без полей, не загаженный BFIND'ом
А файл пример.dwg и был исходником не загаженный бфайндом

а вот убитый бфайндом вариант

Последний раз редактировалось allar8, 26.03.2020 в 16:36.
allar8 вне форума  
 
Непрочитано 28.08.2019, 12:15
#170
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Без подшивки в пределах досягаемости поля выглядят иначе: %<\AcSm Database("d:\users1212\Проекты\1072PE\DProject\123_015_004\RZ\Current\гаршинская.dst").SheetSet("g1EF8EAF3-E429-410C-9ED0-43E6EBED5AD4").Component("g0BED62BA-6C9A-4718-AA11-1BDF3C7C0F62").Number \f "%tc1">%
вместо %<\AcSm Database("d:\users1212\Проекты\1072PE\DProject\123_015_004\RZ\Current\гаршинская.dst").SheetSet("g1EF8EAF3-E429-410C-9ED0-43E6EBED5AD4").Component("g1EF8EAF3-E429-410C-9ED0-43E6EBED5AD4").Шкаф ДЗО_Пункт примечания изменения внутри шкафа \f "%tc1">%
Короче, нужен образец подшивки - файла DST


Впрочем, уже не нужен
у BFIND ограничение на длину текста для поиска и замены, похоже 256 симв.
Длиннющие коды полей подшивки вставляются в области ввода не полностью. Короче, BFIND в первозданном виде для ТАКОЙ замены не поможет

Последний раз редактировалось kp+, 28.08.2019 в 12:21.
kp+ вне форума  
 
Непрочитано 28.08.2019, 12:19
#171
allar8


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


5 мин

----- добавлено через ~4 мин. -----
Цитата:
Сообщение от kp+ Посмотреть сообщение
Впрочем, уже не нужен
у BFIND ограничение на длину текста для поиска и замены, похоже 256 симв.
Ясно, ок

Последний раз редактировалось allar8, 28.08.2019 в 12:25.
allar8 вне форума  
 
Непрочитано 07.09.2019, 12:18
#172
allar8


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


народ подскажите плиз как поиском найти символ знак вопроса, ведь он используется в качестве маски. Мне это необходима для поиска всех текстов с кракозябрами (в них как раз знак вопроса основной символ) и присвоение этим текстам нужного стиля с нужным шрифтом
allar8 вне форума  
 
Непрочитано 07.09.2019, 12:57
#173
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от allar8 Посмотреть сообщение
народ подскажите плиз как поиском найти символ знак вопроса, ведь он используется в качестве маски. Мне это необходима для поиска всех текстов с кракозябрами (в них как раз знак вопроса основной символ) и присвоение этим текстам нужного стиля с нужным шрифтом
не совсем корректный критерий.. скорее уж пройтись во всем текстам и где стоит несуществующий стиль - задать нужный, например.
Сергей812 вне форума  
 
Непрочитано 07.09.2019, 13:03
#174
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
скорее уж пройтись во всем текстам и где стоит несуществующий стиль - задать нужный, например.
Два самых простых метода - либо настроить стиль, либо использовать _.checkstandards. А так - попробуй перед символом вопроса поставить обратный слеш (\) или обратный же апостроф (`). Я не помню, что в окне поиска экранирует маски.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.09.2019, 13:25
#175
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,401


КМК, в поиске по знаку вопроса такой текст не найти, ведь он (знак) говорит только о том что в текущем стиле нет описания такого-то символа, и он не может быть отображен. Нужно искать символ под этим знаком вопроса.
AlexCondor вне форума  
 
Непрочитано 07.09.2019, 13:33
#176
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Два самых простых метода - либо настроить стиль
Но тогда ведь станет просто множество одинаковых стилей, на которые ссылаются те или иные текстовые объекты... Хотя замена стиля не гарантирует читаемость текста, собственно
Сергей812 вне форума  
 
Непрочитано 07.09.2019, 13:43
#177
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Хотя замена стиля не гарантирует читаемость текста, собственно
Это точно. Особенно учитывая возможность принудительного форматирования. Ну что ж, ТС могу поздравить с радостным вступлением в ряды пострадавших от неприменения _.etransmit
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.09.2019, 13:48
#178
allar8


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


Цитата:
Сообщение от AlexCondor Посмотреть сообщение
КМК, в поиске по знаку вопроса такой текст не найти, ведь он (знак) говорит только о том что в текущем стиле нет описания такого-то символа, и он не может быть отображен. Нужно искать символ под этим знаком вопроса.
Видимо так(
Т.е. критерий не прокатил
но Так то настоящий знак вопроса действительно можно найти вот так '?)
Спасибо Кулику Алексею
Offtop: А про свою тему с кракозябрами пойду в другую тему поспрошаю)

Последний раз редактировалось allar8, 07.09.2019 в 13:53.
allar8 вне форума  
 
Непрочитано 23.09.2021, 19:59
#179
superkot007


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


Вопрос вроде простой, но что-то туплю... Как заменить "0" на "-" (без кавычек), если в файле есть другие нули в составе текстов например, "0,2"?
superkot007 вне форума  
 
Непрочитано 23.09.2021, 21:33
#180
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,169


Цитата:
Сообщение от superkot007 Посмотреть сообщение
Как заменить "0" на "-" (без кавычек)
Если надо обработать только те тексты, в которых только нули и больше ничего, нужно включить галочку "слово целиком" в стандартном окне поиска и замены.
Если надо что-то другое - уточните, приложите пример в духе "есть - должно быть".
kp+ вне форума  
 
Непрочитано 06.10.2021, 19:13
#181
yuriii


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


Цитата:
Сообщение от Nike Посмотреть сообщение
Программа замены фрагментов текста:
Код:
[Выделить все]
;-============-; 
    ;- Text  Find -; 
    ;-    *~*     -; 
    ;  Written by -; 
    ; Mark Mercier ; 
    ;   05-06-09   ; 
    ;-============-; 

(defun tfind2fun (inputF inputR caseSn / goto goWhile strinF strinR selSet selTxt searep case count error) 
    ; 01 Create selection set. GOTO 02 if success, or GOTO 08 if fail 
    ; 02 Check passed input. If both nil, GOTO 03. If first string and second nil, GOTO 06. If both strings, GOTO 07. Otherwise, return error and GOTO 08 
    ; 03 Display menus and obtain data from user. If Search, GOTO 04. If Replace, GOTO 05 
    ; 04 Search option selected. Prompt user for single search term. GOTO 06 
    ; 05 Replace option selected. Prompt user for search term and replace term. GOTO 07 
    ; 06 One string has been passed. Assume automatic search. GOTO FINISH 
    ; 07 Two strings have been passed. Assume automatic replace. GOTO FINISH 
    ; 08 FINISH. Return errors or messages if needed. 
  (vl-load-com) 
  (setq goTo 1) 
  (setq goWhile 1) 
  (setq count 0) 
  (if (not (mlml (list caseSn) (list 0 1))) 
    (progn (setq goWhile nil) (princ "\nCase selection not recognized.")) 
  ) ;_ end of if 
  (if (= caseSn 0) 
    (setq case "N") 
    (setq case "Y") 
  ) ;_ end of if 
  (while goWhile 
    (cond 
      ((= goTo 1) 
       (if (setq selSet (extTxtPt (ssget "X"))) 
         (setq goTo 2) 
         (setq error "\nSelection set not found." 
               goTo  8 
         ) ;_ end of setq 
       ) ;_ end of if 
      ) 
      ((= goTo 2) 
    ; Check input, pass to whatever. 
       (cond 
         ((and (= inputF nil) (= inputR nil)) 
          (setq goTo 3) 
         ) 
         ((and (= (type inputF) 'STR) (= inputR nil)) 
          (setq strinF inputF) 
          (setq goTo 6) 
         ) 
         ((and (= (type inputF) 'STR) (= (type inputR) 'STR)) 
          (setq strinF inputF) 
          (setq strinR inputR) 
          (setq goTo 7) 
         ) 
         (t 
          (setq error "\nPassed arguments are not accepted.") 
          (setq goTo 8) 
         ) 
       ) ;_ end of cond 
      ) 
      ((= goTo 3) 
    ; Obtain desired option from user 
       (while (not 
                (mlml (list (setq searep (strcase (getstring nil "\nSelect option [Find/Replace/Quit/Case]: ")))) 
                      (list "F" "FIND" "R" "REPLACE" "Q" "QUIT" "C" "CASE") 
                ) ;_ end of mlml 
              ) ;_ end of not 
       ) ;_ end of while 
       (cond 
         ((mlml (list searep) (list "F" "FIND")) 
          (setq goTo 4) 
         ) 
         ((mlml (list searep) (list "R" "REPLACE")) 
          (setq goTo 5) 
         ) 
         ((mlml (list searep) (list "Q" "QUIT")) 
          (setq goTo 8) 
         ) 
         ((mlml (list searep) (list "C" "CASE")) 
          (while (not (mlml (list (setq case (strcase (getstring nil "\nCase sensitive? [Yes/No]: ")))) 
                            (list "Y" "YES" "N" "NO") 
                      ) ;_ end of mlml 
                 ) ;_ end of not 
          ) ;_ end of while 
         ) 
       ) ;_ end of cond 
      ) 
      ((= goTo 4) 
    ; Obtain search string from user, set to strinF 
       (while (eq "" (setq strinF (getstring t "\nEnter search term: ")))) 
       (setq goTo 6) 
      ) 
      ((= goTo 5) 
    ; Obtain search string and replace string from user, set to strinF and strinR respectively 
       (while (eq "" (setq strinF (getstring t "\nEnter find term: ")))) 
       (while (eq "" (setq strinR (getstring t "\nEnter replace term: ")))) 
       (setq goTo 7) 
      ) 
      ((= goTo 6) 
    ; Search drawing for strinF 
       (cond 
         ((mlml (list case) (list "Y" "YES")) 
    ; Compare using (vl-string-search strinF input), view selection 
    ; use "while" to get all search occurances 
          (foreach selVar selSet 
            (if (vl-string-search strinF (nth 0 selVar)) 
              (progn 
                (setq count (1+ count)) 
                (if (/= (getvar "ctab") (caddr selVar)) 
                  (command "ctab" (caddr selVar)) 
                ) ;_ end of if 
                (command "zoom" "c" (trans (cadr selVar) 0 1) (* 32 (nth 3 selVar))) 
                (getstring "\nPress 'Enter' to continue: ") 
              ) ;_ end of progn 
            ) ;_ end of if 
          ) ;_ end of foreach 
         ) 
         ((mlml (list case) (list "N" "NO")) 
    ; Compare using (vl-string-search (strcase strinF) (strcase input)), view selection 
    ; use "while" to get all search occurances 
          (foreach selVar selSet 
            (if (vl-string-search (strcase strinF) (strcase (nth 0 selVar))) 
              (progn 
                (setq count (1+ count)) 
                (if (/= (getvar "ctab") (caddr selVar)) 
                  (command "ctab" (caddr selVar)) 
                ) ;_ end of if 
                (command "zoom" "c" (trans (cadr selVar) 0 1) (* 32 (nth 3 selVar))) 
                (getstring "\nPress 'Enter' to continue: ") 
              ) ;_ end of progn 
            ) ;_ end of if 
          ) ;_ end of foreach 
         ) 
       ) ;_ end of cond 
       (if (= count 0) 
         (setq error "\nNo matches found.") 
         (setq error (strcat (itoa count) " matches found.")) 
       ) ;_ end of if 
       (setq goTo 8) 
      ) 
      ((= goTo 7) 
    ; Replace strinF with strinR 
       (cond 
         ((mlml (list case) (list "Y" "YES")) 
    ; Compare using (vl-search-string strinF input), modify using (vl-string-subst) within a while loop 
          (foreach selVar selSet 
            (setq selTxt (nth 0 selVar)) 
            (setq seaLoc 0) 
            (while (setq seaLoc (vl-string-search strinF selTxt seaLoc)) 
              (setq selTxt (vl-string-subst strinR strinF selTxt seaLoc)) 
              (setq seaLoc (+ seaLoc (strlen strinR))) 
              (setq count (1+ count)) 
            ) ;_ end of while 
            (vla-put-textstring (vlax-ename->vla-object (nth 4 selVar)) selTxt) 
          ) ;_ end of foreach 
         ) 
         ((mlml (list case) (list "N" "NO")) 
    ; Compare using (vl-string-search (strcase strinF) (strcase input)), modify using (vl-string-subst) within a while loop 
          (foreach selVar selSet 
            (setq selTxt (nth 0 selVar)) 
            (setq seaLoc 0) 
            (while (setq seaLoc (vl-string-search (strcase strinF) (strcase selTxt) seaLoc)) 
              (setq selTxt (strcat (substr selTxt 1 seaLoc) strinR (substr selTxt (+ 1 seaLoc (strlen strinF))))) 
              (setq seaLoc (+ seaLoc (strlen strinR))) 
              (setq count (1+ count)) 
            ) ;_ end of while 
            (vla-put-textstring (vlax-ename->vla-object (nth 4 selVar)) selTxt) 
          ) ;_ end of foreach 
         ) 
       ) ;_ end of cond 
       (if (= count 0) 
         (setq error "\nNo occurances found.") 
         (setq error (strcat (itoa count) " occurances modified.")) 
       ) ;_ end of if 
       (setq goTo 8) 
      ) 
      ((= goTo 8) 
       (if error 
         (princ error) 
       ) ;_ end of if 
       (setq goWhile nil) 
      ) 
    ) ;_ end of cond 
  ) ;_ end of while 
  (princ) 
) ;_ end of defun 

(defun mlml (inSMLChar inSMLStri / returnVarMS toCheck chkWith) 
  (setq returnVarMS nil) 
  (if (and (= (type inSMLChar) 'list) 
           (= (type inSMLStri) 'list) 
      ) ;_ end of and 
    (progn 
      (foreach toCheck inSMLStri 
        (foreach chkWith inSMLChar 
          (if (eq toCheck chkWith) 
            (setq returnVarMS t) 
          ) ;_ end of if 
        ) ;_ end of foreach 
      ) ;_ end of foreach 
    ) ;/progn 
  ) ;_ end of if 
  returnVarMS 
)   ; Checks a list to see if a member of that list is the same as a member of another list. Returns T or nil 

(defun extTxtPt (ssList / subVar getEnt entTyp entTxt entPnt entLay entHgt grp66 entAtt getEntAtt entAttTyp uniLst) 
  (setq uniLst nil) 
  (setq subVar 0) 
  (if ssList 
    (repeat (sslength ssList) 
      (setq getEnt (entget (cadr (car (ssnamex ssList subVar))))) 
      (setq entTyp (cdr (assoc 0 getEnt))) 
      (cond 
        ((or (= entTyp "TEXT") (= entTyp "MTEXT")) 
         (setq entTxt (cdr (assoc 1 getEnt))) 
         (setq entPnt (cdr (assoc 10 getEnt))) 
         (setq entHgt (cdr (assoc 40 getEnt))) 
         (setq entLay (cdr (assoc 410 getEnt))) 
         (setq entNam (cdr (assoc -1 getEnt))) 

         (setq uniLst (append uniLst (list (list entTxt entPnt entLay entHgt entNam)))) 
        ) 
        ((= entTyp "INSERT") 
         (setq grp66 (assoc 66 getEnt)) 
         (if grp66 
           (progn 
             (setq entAtt (entnext (cdr (assoc -1 getEnt)))) 
             (setq getEntAtt (entget entAtt)) 
             (setq entAttTyp (cdr (assoc 0 getEntAtt))) 
           ) ;_ end of progn 
         ) ;_ end of if 
         (while (= entAttTyp "ATTRIB") 
           (setq entTxt (cdr (assoc 1 getEntAtt))) 
           (setq entPnt (cdr (assoc 10 getEntAtt))) 
           (setq entHgt (cdr (assoc 40 getEntAtt))) 
           (setq entLay (cdr (assoc 410 getEntAtt))) 
           (setq entNam (cdr (assoc -1 getEntAtt))) 

           (setq uniLst (append uniLst (list (list entTxt entPnt entLay entHgt entNam)))) 

    ; Get next entity. 
           (setq entAtt (entnext (cdr (assoc -1 getEntAtt)))) 

    ; Get ent and ent type 
           (setq getEntAtt (entget entAtt)) 
           (setq entAttTyp (cdr (assoc 0 getEntAtt))) 
         ) ;_ end of while 
        ) 
        (t 
        ) 
      ) ;_ end of cond 
      (setq subVar (1+ subVar)) 
    ) ;_ end of repeat 
  ) ;_ end of if 
  uniLst 
)   ; Return list of all text-based objects (Text, MText, Attribute) in the current drawing
Работает так:
Код:
[Выделить все]
(tfind2fun "старый текст" "новый текст" 1)
где ключик <1> - с учетом регистра, а если <2> - без учета регистра, Создавай по каждому фрагменту команду замены, например:

Код:
[Выделить все]
(tfind2fun "11ДО-ММ.2(564)У2" "11ДО/190-0.75(0.15)-3.0-0.9(564)" 1)
(tfind2fun "11ДО-ММ.2(256)У3" "11ДО/250-0.75(0.15)-2.0-0.9(256)" 1)
и вперед!
Интересное решение, вопрос куда требуется прописать команду
Код:
[Выделить все]
(tfind2fun "старый текст" "новый текст" 1)
замены текста, и можно например прописать сразу группу, которые требуется автозаменить штук 600 например?
yuriii вне форума  
 
Непрочитано 07.10.2021, 13:18
#182
baksconstructor


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


Цитата:
Сообщение от yuriii Посмотреть сообщение
требуется автозаменить штук 600 например?
Попробуйте, может поможет - АвтоЗаменаCAD
Мы её для перевода текстов используем, там и прямая замена есть, но пока не использовали.
baksconstructor вне форума  
 
Непрочитано 07.10.2021, 18:32
#183
yuriii


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


Цитата:
Сообщение от baksconstructor Посмотреть сообщение
Попробуйте, может поможет - АвтоЗаменаCAD
Мы её для перевода текстов используем, там и прямая замена есть, но пока не использовали.
Спасибо, но уже нашел бесплатный вариант bfinder от Le Mac
yuriii вне форума  
 
Непрочитано 13.12.2021, 21:44
#184
superkot007


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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Если надо что-то другое - уточните, приложите пример в духе "есть - должно быть".
Именно "что-то другое")
В общем, на чертежах есть однострочные тексты. Должно быть так: если попадается "0" (без кавычек), то его нужно заменить на "-", а если, например, "0.3", то НЕ ДОЛЖНА быть замена на "-.3".
Попробовал через быстрый выбор - работает замена, странно... Осталось теперь завязать это на lisp, для автоматизации замены в сотне файлов...
Через BFIND от Lee Mac не получается...
superkot007 вне форума  
 
Непрочитано 10.04.2025, 08:44
#185
apepluto


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


а нет ли у кого похожего кода, только для Мтекстов внутри блоков? Данный код работает только для Мтекса и Текста
apepluto вне форума  
 
Непрочитано 15.04.2025, 16:29
1 | #186
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


поиск текста внутри блока
https://forum.dwg.ru/showthread.php?t=91627
может, поможет
Хмурый вне форума  
 
Непрочитано 17.04.2025, 09:22
#187
apepluto


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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
поиск текста внутри блока
https://forum.dwg.ru/showthread.php?t=91627
может, поможет
уже встречал такое решение, но программа эта ничего не находит вообще
apepluto вне форума  
 
Непрочитано 20.04.2025, 09:19
#188
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,917
<phrase 1=


Цитата:
Сообщение от apepluto Посмотреть сообщение
уже встречал такое решение, но программа эта ничего не находит вообще
А в блоке точно есть то, что надо найти?
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 21.04.2025, 15:58
#189
apepluto


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


Цитата:
Сообщение от zenon Посмотреть сообщение
А в блоке точно есть то, что надо найти?
Если я правильно понимаю, она должна уметь искать Мтекст внутри блоков. У меня именно так, но действий никаких программа не совершает.
apepluto вне форума  
 
Непрочитано 21.04.2025, 16:31
#190
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


apepluto, какая программа? Вот эта?
https://lee-mac.com/bfind.html
PS фрагмент файла-бы...
Хмурый вне форума  
 
Непрочитано 22.04.2025, 08:22
#191
apepluto


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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
apepluto, какая программа? Вот эта?
https://lee-mac.com/bfind.html
PS фрагмент файла-бы...
Да. Рабочий файл прикрепил
Вложения
Тип файла: dwg
DWG 2018
rfhfvf.dwg (1.95 Мб, 18 просмотров)
apepluto вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Поиск и замена текста



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск фрагмента текста в текстовых файлах Nike Разное 23 14.05.2019 07:14
Групповой поиск и замена текста Torino Программирование 22 05.03.2016 23:00
LISP. Выравнивание текста по двум точкам. Krieger Готовые программы 10 24.12.2011 16:02
Поиск и замена текста на чертежах Autodesk Inventor Бриг Прочее ПО от Autodesk 4 21.01.2009 17:05
поиск и замена Dante AutoCAD 1 03.10.2007 18:26