IPB IPB
Проектирование, монтаж, наладка, сервис

Здравствуйте, гость ( Вход | Регистрация )

- Рекомендации АВОК 5.5.1-2023
«Системы противодымной вентиляции жилых и общественный зданий»

- Рекомендации АВОК 7.8.3-2023
«Проектирование инженерных систем лабораторий»

- Рекомендации АВОК 7.10-2023
«Здания жилые и общественные. Защита от шума и вибрации инженерного оборудования»

АВОК в соц. сетях
ИНН: 7714824045
 
Добавить ответ в эту темуОткрыть тему
> Треб. лисп для замен текста, для проги Данфосс СО
Гость_OVKT_*
сообщение 12.10.2007, 18:39
Сообщение #1





Guest Forum






Тема такова: При экспорте из Данфосс СО в Автокад, тексты ну очень плохие.
Напишите или подарите готовый лисп или скрипт для массовой замены.
В основном нужно удалять лишние пробелы в наименованиях труб.
Более полный сценарий могу состряпать... Легко реализовать?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ssn
сообщение 12.10.2007, 19:52
Сообщение #2


проектировщик ТМ (фриланс)


Группа: Участники форума
Сообщений: 4032
Регистрация: 13.3.2005
Из: Череповец - СПБ - Воронеж - Геленджик
Пользователь №: 543



интересен алгоритм... как программа будет определять что пробел лишний...
надо ради примера текс до действия программы и после...
для начала.. smile.gif
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_OVKT_*
сообщение 12.10.2007, 20:00
Сообщение #3





Guest Forum






Было: dn 20x3.4 A
Стало: dn20x3.4A
И в подписях арматуры примерно также.
Не более того, но обслуживать все возможные варианты труб.
И ещё наклон букв убрать...
Реально?!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
drunky
сообщение 12.10.2007, 21:52
Сообщение #4





Группа: New
Сообщений: 11
Регистрация: 31.10.2006
Из: Минск
Пользователь №: 4539



Edit - > Find
Правка -> Найти

И там найти и заменить все
имхо не слишком долго smile.gif
Найти x3.4 A
заменить на x3.4A
Заменить все
очень быстро и удобно
а текст через текстовые стил иили фильтры изменить smile.gif
и никаких лиспов лишних
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Гость_OVKT_*
сообщение 13.10.2007, 1:38
Сообщение #5





Guest Forum






Не, нужна именно автоматическая программа. Ну, хоть не все трубы, а некоторые. А ещё лучше программа с открытым кодом, чтобы редактировать вручную строки поиска и замены.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
R.A.S.
сообщение 13.10.2007, 13:21
Сообщение #6





Группа: Участники форума
Сообщений: 314
Регистрация: 10.11.2004
Из: Москва
Пользователь №: 250



Да несложно программку написать, но делать она будет тоже самое, что drunky говорил, и вводных данных будет не меньше, поэтому зачем? Лучше заменяйте dn_ на dn(без пробела), тогда заменятся все трубопроводы и вся арматура, дело 3 секунд.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
ssn
сообщение 13.10.2007, 15:38
Сообщение #7


проектировщик ТМ (фриланс)


Группа: Участники форума
Сообщений: 4032
Регистрация: 13.3.2005
Из: Череповец - СПБ - Воронеж - Геленджик
Пользователь №: 543



если уж на то пошло, то тогда ваще не надо писать dn... просто ставим на поиск и замену пробел.. и всё.
всё пробелы во всех текстах уберуться.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Fatty
сообщение 21.10.2007, 20:50
Сообщение #8





Группа: New
Сообщений: 1
Регистрация: 21.10.2007
Пользователь №: 12178



Цитата(drunky @ 12.10.2007, 20:52) [snapback]176397[/snapback]
Edit - > Find
Правка -> Найти

И там найти и заменить все
имхо не слишком долго smile.gif
Найти x3.4 A
заменить на x3.4A
Заменить все
очень быстро и удобно
а текст через текстовые стил иили фильтры изменить smile.gif
и никаких лиспов лишних


Делал давно что-то подобное, посмотри как
будет работать на твоей машине:
Код
;; |||  repspace.lsp                             |||;;

;; |||  written by By Fatty T.O.H.          |||;;
;; |||  copyright (c) 2005 all rights removed      |||;;
;; |||  find and replace text partially         |||;;

;; local defun

; find and replace pattern on the new one

(defun findrep (txt pat new)
  (while
    (vl-string-search pat txt)
     (setq txt
            (vl-string-subst new pat txt)
           )
     )
  )

;; local defun

;; get value from dotted pair list by its associative key
(defun dxf (key lst)
  (cdr (assoc key lst))
  )
;; ==================  main program =====================;;
(defun c:FRP (/ ent new_txt ss txt_data txt_pat)
(princ "\n  Выбрать любой из текстов для замены значения")
(if
(setq si (ssget "+.:S" (list (cons 0 "*TEXT"))))
(progn
  (setq txten (ssname si 0))
  (setq elist (entget txten)
    typ (dxf 0 elist)
    lay (dxf 8 elist)
    hgt (dxf 40 elist)
    styl (dxf 7 elist)
    txt (dxf 1 elist)
    )
  (setq filter (list (cons 0 typ)
            (cons 8 lay)
            (cons 40 hgt)
            (cons 7 styl)
            (cons 1 txt)
            )
       )

  (if (setq ss (ssget "_X" filter))
    (progn
      (setq txt_pat (getstring T "\nВведите префикс без пробела (для подтверждения по умолчанию - Enter) <dn> :\n"))
      (if (eq "" txt_pat)
       (setq txt_pat (strcat "dn" (chr 32)))
    (setq txt_pat (strcat txt_pat (chr 32))))
      (setq new_txt (substr txt_pat 1 (1- (strlen txt_pat))))
      (while (setq ent (ssname ss 0))
    (setq txt_data (entget ent))
    (if (vl-string-search txt_pat (cdr (assoc 1 txt_data)))
    (progn
    (entmod (subst (cons 1 (findrep (cdr (assoc 1 txt_data)) txt_pat new_txt))
               (assoc 1 txt_data) txt_data))
    (entupd ent)
    )
      )
    (ssdel ent ss)
      )
    )
    (princ "\   Ничего не выбрано")
  )
)
(princ "\   Ничего не выбрано")
)
  (princ)
)
(prompt "\nПрограмма загружена")
(prompt "\nКоманда для выполнения FRP")
(princ)


~'J'~
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
экспорт
сообщение 12.8.2016, 9:51
Сообщение #9


проекты ТС без авансов


Группа: Участники форума
Сообщений: 1780
Регистрация: 31.3.2015
Пользователь №: 263772



увы не включается и пишет:
Команда: frp
Выбрать любой из текстов для замены значения;
ошибка: неверная строка режима ssget

? может быть можно заготовить готовых команд по списку ?
найти: dn 200 А
заменить на: ф200

Сообщение отредактировал дренаж - 12.8.2016, 9:51
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Composter
сообщение 12.8.2016, 11:40
Сообщение #10





Группа: Участники форума
Сообщений: 3494
Регистрация: 5.3.2009
Из: Газ-Ачака
Пользователь №: 30120



можно воспользоваться лиспом tfind2fun отсюда http://forum.dwg.ru/showthread.php?t=42739
добавлю что можно в этом же лиспе добавить текст ввиде
Код
(defun c:НАЗВАНИЕкоманды ()
(tfind2fun "старый текст" "новый текст" 1)
(tfind2fun "старый текст2" "новый текст2" 1)
.....
)

и можно будет вызывать командой заранее заготовленную замену.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
экспорт
сообщение 12.8.2016, 13:51
Сообщение #11


проекты ТС без авансов


Группа: Участники форума
Сообщений: 1780
Регистрация: 31.3.2015
Пользователь №: 263772



ошибка: no function definition: TFIND2FUN

конечно же можно менять "dn " на "ф"
в опциях исключив поиск по всему слову

но смысл в том чтобы сразу менять несколько

вариант: переводить в DXF и открывать в WORD
и поменяв массовой автозамены всё заменится

тему dwg.ru ещё прочитаю
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Composter
сообщение 12.8.2016, 14:22
Сообщение #12





Группа: Участники форума
Сообщений: 3494
Регистрация: 5.3.2009
Из: Газ-Ачака
Пользователь №: 30120



естественно что набрав с клавиатуры TFIND2FUN он выдаст что функции такой нет
там же в 3 посту черным по белым написано
Работает так:
Код
(tfind2fun "старый текст" "новый текст" 1)


Сообщение отредактировал Composter - 12.8.2016, 14:23
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
экспорт
сообщение 12.8.2016, 15:25
Сообщение #13


проекты ТС без авансов


Группа: Участники форума
Сообщений: 1780
Регистрация: 31.3.2015
Пользователь №: 263772



не заработала именно программа zam.lsp

(defun c:zam ()
(tfind2fun "dn 100 A" "ф100" 1)
(tfind2fun "dn 250 A" "ф250" 1)
)
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Composter
сообщение 12.8.2016, 15:37
Сообщение #14





Группа: Участники форума
Сообщений: 3494
Регистрация: 5.3.2009
Из: Газ-Ачака
Пользователь №: 30120



все нормально работает. вы точно умеете пользоваться lisp ?
почитайте https://dwg.ru/pub/9
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
экспорт
сообщение 12.8.2016, 16:16
Сообщение #15


проекты ТС без авансов


Группа: Участники форума
Сообщений: 1780
Регистрация: 31.3.2015
Пользователь №: 263772



другие 5 лиспов из автозагрузки работают
и также вместил zam.lsp в автозагрузку
и стартовал zam и видимо включился
и та же ошибка
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Composter
сообщение 12.8.2016, 16:53
Сообщение #16





Группа: Участники форума
Сообщений: 3494
Регистрация: 5.3.2009
Из: Газ-Ачака
Пользователь №: 30120



просто ошибка "ошибка: no function definition: TFIND2FUN" как раз говорит о том что не был подгружен лисп с сайта.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
экспорт
сообщение 12.8.2016, 16:59
Сообщение #17


проекты ТС без авансов


Группа: Участники форума
Сообщений: 1780
Регистрация: 31.3.2015
Пользователь №: 263772



поиск tfind2fun приводит на форум
и там tfind2fun это особая функция
и пришлось создать лисп с ней тоже
авторство вписано в лисп автором

CODE
;-============-;
;- 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.lsp
и помещаем в корень c: чтоб не искать
и туда же помещаем показанный ниже лисп ZAM.lsp
в автозагрузку AutoCAD добавляем оба лиспа

и отныне именно в zam.lsp привязанном к блокноту
набираем строки замены и сохраняем
AutoCAD загружаясь считывает оба лиспа
и по команде zam всё само заменяется

CODE
(defun c:zam ()
(tfind2fun "dn 300 A" "%%c300" 1)
(tfind2fun "dn 250 A" "%%c250" 1)
(tfind2fun "dn 200 A" "%%c200" 1)
(tfind2fun "dn 150 A" "%%c150" 1)
(tfind2fun "dn 125 A" "%%c250" 1)
(tfind2fun "dn 100 A" "%%c100" 1)
(tfind2fun "dn 80 A" "%%c80" 1)
(tfind2fun "dn 65 A" "%%c65" 1)
(tfind2fun "dn 50 A" "%%c50" 1)
(tfind2fun "dn 40 A" "%%c40" 1)
(tfind2fun "dn 32 A" "%%c32" 1)
(tfind2fun "dn 25 A" "%%c25" 1)
(tfind2fun "dn 20 A" "%%c20" 1)
(tfind2fun "dn 15 A" "%%c15" 1)
(tfind2fun "dn 10 A" "%%c20" 1)
(tfind2fun "dn 0 A" "расчет" 1)
(tfind2fun "L " "Lm " 1)
)


задача решена через 3227 дней т.е. спустя почти 9 лет

Сообщение отредактировал дренаж - 12.8.2016, 17:02
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Composter
сообщение 12.8.2016, 17:17
Сообщение #18





Группа: Участники форума
Сообщений: 3494
Регистрация: 5.3.2009
Из: Газ-Ачака
Пользователь №: 30120



Цитата(дренаж @ 12.8.2016, 16:59) *
задача решена через 3227 дней т.е. спустя почти 9 лет

лучше поздно чем никогда!
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
экспорт
сообщение 12.8.2019, 17:32
Сообщение #19


проекты ТС без авансов


Группа: Участники форума
Сообщений: 1780
Регистрация: 31.3.2015
Пользователь №: 263772



данная разработка потребовалась сегодня

со дня доработки аккуратно через 3 года
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
экспорт
сообщение 22.8.2019, 11:01
Сообщение #20


проекты ТС без авансов


Группа: Участники форума
Сообщений: 1780
Регистрация: 31.3.2015
Пользователь №: 263772



lisp лисп переименовывается нумерация
подчёркнутого текста

например стыки или опоры переименовать
добавив или удалив стыки или опоры

команда REW и диалог плюс подсказки

Код
;; rew.lsp перенумерация подчеркнутого текста
(defun C:REW (/ *error* elist en lname lock lrlist ltbr match rate ss start state txt)
    (defun *error* ( msg )
    (command "_.undo" "_end")
    (if msg
    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
        (princ (strcat "\n** Error: " msg " **")))
      )
    (command)
    (princ)
  )  
(setq lname (getstring "\nВведите имя слоя текста <Стыки>: "))
(if (eq "" lname)(setq lname "Стыки"))
  (setq ltbr (tblobjname "layer" lname)
      lrlist(entget ltbr)
      )
(setq state (cdr (assoc 70 lrlist)))
(if (not (zerop state))
  (progn
    (setq lock T)
(entmod (subst (cons 70 0)(assoc 70 lrlist) lrlist)))
  )
(initget 7)
(setq start (getint "\nВведите стартовый номер : "))
(if (setq ss (ssget (list (cons 0 "TEXT")(cons 1 "%%U*")(cons 8 lname))))
      (progn
        (initget 2)
        (setq rate (getint "\nВведите шаг (используйте минус для понижения нумерации) <1>: "))
        (if (not rate)(setq rate 1))
        (command "_.undo" "_begin")
  (while
   (setq en (ssname ss 0))
     (setq elist (entget en))
     (setq txt (cdr (assoc 1 elist)))
     (setq match (atoi (vl-string-subst  "" "%%U" txt)))
   (if (>= match start)
     (progn
     (setq txt  (strcat "%%U" (itoa (+ rate (atoi (vl-string-subst  "" "%%U" txt))))))
       (entmod (subst (cons 1 txt) (assoc 1 elist) elist))
       (entupd en)
       )
     )
   (ssdel en ss)
       )
   )
      )
(if (and state lock)
  (entmod (subst (cons 70 state)(assoc 70 lrlist) lrlist))
  )
(*error* nil)
  (princ)
  )
(princ "\n  ==   Программа перенумерации текста загружена   ==")
(princ "\n   = [Только для почеркнутых однострочных тестов] =")
(prompt "\n   ***     Для выполнения введите REW     ***")
(prin1)



lisp лисп переименовывает подчёркнутый текст
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274


ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzquYEfbY

Последние сообщения Форума





Rambler's Top100 Rambler's Top100

RSS Текстовая версия Сейчас: 19.3.2024, 14:53