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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Редактирование неск-их строк однострочного текста одновренно

Редактирование неск-их строк однострочного текста одновренно

Ответ
Поиск в этой теме
Непрочитано 28.12.2005, 00:31 #1
Редактирование неск-их строк однострочного текста одновренно
DDlis
 
Регистрация: 03.02.2005
Сообщений: 583

У кого-нибудь есть прога, которая бы редактировала несколько строк однострочного текста одновременно и в ней небыло бы ограничения по кол-ву редактируемых строк?
Просмотров: 13542
 
Непрочитано 28.12.2005, 00:56
#2
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Если правильно понял :?
Выделяешь нужный текст и вызываешь свойства и в окошке текст правишь (содержание текста везде одинаковое)
Piton вне форума  
 
Непрочитано 28.12.2005, 02:24
#3
Vova

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


komanda TEDIT from Express-2002
Vova вне форума  
 
Непрочитано 28.12.2005, 08:51 Привет
#4
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Загрузи вот это приложение, может тебе это поможет. (для автокада 2004-2006)
[ATTACH]1135749118.rar[/ATTACH]
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 28.12.2005, 09:25
#5
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


http://cadhlp.kulichki.net/old/prog3/prg3-2.htm
Программа редактирования однострочного текста в редакторе NOTEPAD
Важная информация
редактором можно редактировать выбранный однострочный текст или если ничего не выбрано , то создавать новый.
Высота шрифта , степень сжатия определяется по самой верхней строке.
Если строк больше одной , по 1 и 2 строке берется расстояние между
строками.
http://cadhlp.kulichki.net/old/prog3/txteditor.zip
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Непрочитано 28.12.2005, 14:12
#6
Vova

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


добавлю к своему №3, Команда tedit пропала из express 2004. Но я
ее загружаю во все посл. версии, она мне нравится больше, чем Ddedit
Vova вне форума  
 
Непрочитано 29.12.2005, 00:14
#7
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Так у Alexd есть на сайте MtmdEdit v2.21 http://www.alx.ncn.ru/body.php?lang=ru&part=download . Единственное что мне не нравится так что он заменяет собой и редактор многострочного текста, причём выводит все знаки форматирования.
{Smirnoff} вне форума  
 
Непрочитано 29.12.2005, 10:00
#8
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


{Smirnoff}
Я тоже пользую MtmdEdit. Со знаками форматирования - это мне пофиг, а вот с fields эта хрень вообще не работает, это плохо.
Apelsinov вне форума  
 
Непрочитано 29.12.2005, 10:43
#9
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>Apelsinov
Я вот всё думал написать аналогичную штуку на ЛИСП или VBA. В принципе ничего сложного нет и обозначенные недостатки можно обойти. Только в последнее время времени писать практически нет.

У меня ещё и с однострочным текстом и атрибутами полный швах. На работе русский лицензионный Windows XP Professional, а он не дружит ни с латышским однострочным текстом ни с атрибутами ни с полями. Так что пользуюсь на 95% многострочным текстом :? Вот такая засада... И покупать английскую версию не хотят и нелицензионного ничего ставить неразрешают.
{Smirnoff} вне форума  
 
Непрочитано 29.12.2005, 11:00
#10
Кулик Алексей aka kpblc
Moderator

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


> {Smirnoff} : Сам не пробовал, поэтому идея без проверки. А можно ли установить язык латышский в системе для текущего пользователя? Если можно, то сработает ли использование латышских однострочных текстов и полей?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.12.2005, 11:41
#11
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>kpblc
Стоит в системе латышский. Даже MS Office латышский работает, (См. картинку) а вот AutoCAD клинит :evil:
[ATTACH]1135845663.jpeg[/ATTACH]
{Smirnoff} вне форума  
 
Непрочитано 29.12.2005, 14:48 Привет
#12
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


такое ощущение что DDlis по фигу
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 29.12.2005, 16:02
#13
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от {Smirnoff}
>kpblc
Стоит в системе латышский. Даже MS Office латышский работает, (См. картинку) а вот AutoCAD клинит :evil:
Ну тут, наверное, дело в корнях када, которые перехватывают управление вводом-выводом на себя (еще с DOS-версий тянется). Если именно так, то, боюсь, неизлечимо, кроме как обратиться к поставщикам с требованием предоставления локализованной версии (если она есть)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.12.2005, 22:17
#14
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


>kpblc

Наверное неизлечимо.

>DEM

Цитата:
такое ощущение что DDlis по фигу
Ну почему пофигу?
Пускай поставит MtmdEdit и редактирует несколько однострочных текстов одноверменно. О том что в том же редакторе многострочный текст вылезает со всеми знаками форматирования он предупреждён. Кстати не плохая штука, там ещё и однострочный текст можно по горизонтали или вертикали выравнивать.
{Smirnoff} вне форума  
 
Непрочитано 29.12.2005, 22:43
#15
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Скачай с моей странички 1.Text Utilities
http://home.pacifier.com/~nemi
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 30.12.2005, 11:28 Привет
#16
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Так мы между собой уже разговариваем, о своих предочтениях, а человек ни ответа ни привета.
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 31.12.2005, 10:01
#17
Мансур

Инженер САПР
 
Регистрация: 12.11.2004
Тюмень
Сообщений: 36
<phrase 1=


По поводу MtmdEdit: в меню редактора можно отключить реакцию на двойной щелчок, тогда перехватывать редактирование многострочного текста он не будет. Выбираем несколько строк DTEXT, даем команду TE и редактируем себе на здоровье
Мансур вне форума  
 
Автор темы   Непрочитано 31.12.2005, 13:33
#18
DDlis


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


Извиняюсь, что не отвечал. Был в отъезде. MtmdEdit работает только для 2005 а я работаю в 2006 AutoCADе. Нашел Red8Txt, но она редактирует только 8строк, нет ли у кого-нибудь такой же програмки но без ограничений по кол-ву редактируемых строк.
[ATTACH]1136025208.rar[/ATTACH]
DDlis вне форума  
 
Непрочитано 01.01.2006, 19:32
#19
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от DDlis
Извиняюсь, что не отвечал. Был в отъезде. MtmdEdit работает только для 2005 а я работаю в 2006 AutoCADе. Нашел Red8Txt, но она редактирует только 8строк, нет ли у кого-нибудь такой же програмки но без ограничений по кол-ву редактируемых строк.
[ATTACH]1136025208.rar[/ATTACH]
Смотри здесь (для 20 строк) - все ограничивается размером диалогового окна, т.е. не более 20 строк для моего монитора:

webfile.ru/724786

~'J'~
fixo вне форума  
 
Автор темы   Непрочитано 02.01.2006, 15:02
#20
DDlis


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


Спасибо большое, стало гораздо удобней.
DDlis вне форума  
 
Непрочитано 02.01.2006, 16:02
#21
forMA


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


for Fatty:
-----------
Хорошая программа. Но как бы в ней изменить шрифт отображения редактируемых текстов. На мониторе с большим разрешением буковки маленькие. Еле видно.
forMA вне форума  
 
Непрочитано 02.01.2006, 21:20
#22
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от forMA
for Fatty:
-----------
Хорошая программа. Но как бы в ней изменить шрифт отображения редактируемых текстов. На мониторе с большим разрешением буковки маленькие. Еле видно.
Попробую поставить BOLD шрифт, только попозже
У меня монитор 17 поэтому вроде как нормально отображается


~'J'~
fixo вне форума  
 
Непрочитано 02.01.2006, 21:21
#23
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от DDlis
Спасибо большое, стало гораздо удобней.
Буду рад если все останется в норме

~'J'~
fixo вне форума  
 
Непрочитано 02.01.2006, 22:11
#24
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Облегченная версия с жирным шрифтом:

Код:
[Выделить все]
(defun make-dcl-editor (alist / cnt fn )
(setq fname (vl-filename-mktemp  "txt-edit.dcl"))
;;;(setq fname (strcat (getvar "dwgprefix") "txt-edit.dcl"));for debug only
(setq fn (open fname "w"))
(write-line (strcat "medit : dialog {label= \"MULTIPLE SINGLE TEXT EDITOR\"" ";") fn)

(setq cnt 1)
(repeat (length alist)
  (write-line (strcat ":edit_box {key =" "\""(strcat "ed" (itoa cnt))"\"" ";") fn)
    (write-line "width = 80; height = 1;is_bold = true;fixed_width_font = true;}" fn)
  (setq cnt (1+ cnt)))
      (write-line "spacer_1;"  fn)
	(write-line "ok_cancel;{}}" fn)
  (close fn)
  
(princ))

(defun run-dcl (alist / idx_dcl  cnt  key_list ret_list start)
 (setq idx_dcl (load_dialog "txt-edit.dcl"))
 (setq idx_dcl (load_dialog fname)) 
 (new_dialog "medit" idx_dcl)

 (setq cnt 0)
 (repeat (length alist)
   (setq key_list (cons (strcat "ed" (itoa (1+ cnt))) key_list))	
  (set_tile (strcat "ed" (itoa (1+ cnt)))
	    (vl-princ-to-string (nth cnt alist)))
   (setq cnt (1+ cnt)))
  (setq  key_list (reverse key_list))

  (setq num 0)
  (repeat (length key_list)
    (action_tile (nth num key_list) 
    "(setq ret_list (cons (get_tile $key) ret_list))")

(setq num (1+ num)))
 (action_tile "accept"    "(done_dialog 1)")
 (action_tile "cancel" "(done_dialog 0)")

 (start_dialog)
  (unload_dialog idx_dcl)
  (vl-file-delete fname)
  (reverse ret_list)
)

(defun C:TEX ()
  (setvar "cmdecho" 0)
  (setq alist nil
	txt_list nil
	sset nil
	ret_list nil)
   (setq sset (ssget '((0 . "TEXT"))))
  (setq i -1)
  (if (< (sslength sset) 20)
    (progn
  (while (setq en (ssname sset (setq i (1+ i))))
    (setq alist (cons (cdr (assoc 1 (entget en))) alist))))
  (progn
    (alert "Недопустимое количество
    текстовых строк\n")(exit)(princ)))
  (setq alist (reverse alist))
  (make-dcl-editor alist)
  (setq ret_list (run-dcl alist))
    (setq i -1)
  
  (while (setq en (ssname sset (setq i (1+ i))))
    (setq elist (entget en))
    (entmod (subst  (cons 1 (eval (nth i ret_list))) (assoc 1 elist) elist))
    (entupd en))
  
  (setq alist nil
	txt_list nil
	sset nil
	ret_list nil)
  (setvar "cmdecho" 1)
  (princ)
  )
;;;(C:tex);for debug only
(prompt "\nMultiple single line text editor is loaded\n")
(prompt "\nDo not select more than 20 texts\n")
(prompt "\nВ командной строке набери TEX ... \n")
(prin1)

;;; Для компиляции в FAS файл можно использовать :
;;; (vlisp-compile 'st "txt-edit.lsp" "tex.fas")
Рекомендуется изменить по вкусу и в зависимости
от размера экрана

~'J'~
fixo вне форума  
 
Непрочитано 03.01.2006, 06:04
#25
forMA


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


for Fatty:
-----------
Сейчас хорошо. Много работаешь- глаза устают.
Большое спасибо. Эта программа редактирования нескольких однострочных текстов интересна по применению. Моя работа вообще насыщена однострочными текстами. Да. Отличная мысль. Спасибо.
forMA вне форума  
 
Непрочитано 03.01.2006, 12:31
#26
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от forMA
for Fatty:
-----------
Сейчас хорошо. Много работаешь- глаза устают.
Большое спасибо. Эта программа редактирования нескольких однострочных текстов интересна по применению. Моя работа вообще насыщена однострочными текстами. Да. Отличная мысль. Спасибо.
Рад помочь,



~'J'~
fixo вне форума  
 
Непрочитано 06.01.2006, 13:15 Привет
#27
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Цитата:
Сообщение от DDlis
Извиняюсь, что не отвечал. Был в отъезде. MtmdEdit работает только для 2005 а я работаю в 2006 AutoCADе. Нашел Red8Txt, но она редактирует только 8строк, нет ли у кого-нибудь такой же програмки но без ограничений по кол-ву редактируемых строк.
[ATTACH]1136025208.rar[/ATTACH]
Хм значит у меня глюк, и MtmdEdit прекрасно раьотает под 2006
[ATTACH]1136543332.jpg[/ATTACH]
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 12.11.2009, 08:33
#28
JokerrSergh


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


fixo, а можно в эту програмку внести еще изменения?
Хотелось бы, чтобы при выделении текста областью (т.е. сразу несколько строчек, а не по отдельности каждую строчку) в окне редактора строчки располагались бы в последовательности сверху вниз, а не снизу вверх.
Когда выбираешь по отдельности каждую строчку, в окне редактора эти строчки располагаются в той же последовательности, в которой их выбираешь. А когда выделяешь сразу несколько строчек, почему-то в редакторе строчки снизу вверх располагаются.
Заранее благодарен всем, кто откликнется
Вложения
Тип файла: lsp tex.lsp (2.5 Кб, 82 просмотров)
JokerrSergh вне форума  
 
Непрочитано 12.11.2009, 12:11
#29
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Моя старая-старая програмка. Редактирует текст через блокнот (notepad)
Код:
[Выделить все]
(defun C:РТЕКСТ	(/ pk ob f xmax h ug sp A_VER mip_file)
  ;;; Vladimir Azarko (VVA)
  ;;; publishsp on dwg.ru
  ;;; http://forum.dwg.ru/showthread.php?t=5076&page=2
(vl-load-com) 
  (setvar "cmdecho" 0)
  (setvar "blipmode" 0)
  (setq PICK1 (getvar "UNDOCTL"))
  (cond
    ((= PICK1 0) (command "_.UNDO" "_All"))
    ((= PICK1 3) (command "_.UNDO" "_Control" "_All"))
    (t nil)
  ) ;_ end of cond
  (command "_.UNDO" "_M")
  (setq PICK1 nil)
  (prompt "\nВыберите текст для редактирования ...")
  (while (null PICK1) (setq PICK1 (ssget "_:L" '((0 . "TEXT")))))
  (setq	pk 0
	ob '()
  ) ;_ end of setq
  (repeat (sslength PICK1)
    (setq ug (ssname PICK1 pk)
          sp (entget ug)
          ob (cons (cons ug
                         (if (zerop(cdr(assoc 72 sp)))
                           (cadr (trans (cdr (assoc 10 sp)) ug 1))
                           (cadr (trans (cdr (assoc 11 sp)) ug 1))
                           )
		   ) ;_ end of cons
		   ob
	     )
          )
    (setq pk (1+ pk))
  ) ;_ end of repeat
  (setq PICK1 nil)
  (if (> (length ob) 0)
    (progn
      (setq mip_file (strcat (getvar "TEMPPREFIX") "miptext.txt"))
      (setq f  (open mip_file "w")
	    sp '()
      ) ;_ end of setq
      (repeat (length ob)
	(foreach pk ob
	  (progn
	    (if	(and pk (or (null xmax) (> (cdr pk) xmax)))
	      (setq xmax  (cdr pk)
		    PICK1 pk
	      ) ;_ end of setq
	    ) ;_ end of if
	  ) ;_ end of progn
	) ;_ end of foreach
	(setq ob   (subst nil PICK1 ob)
	      xmax nil
	      sp   (cons PICK1 sp)
	) ;_ end of setq
	(write-line (cdr (assoc 1 (entget (car PICK1)))) f)
      ) ;_ end of repeat
      (setq f (close f))
    ) ;_ end of progn
    (progn
      (alert "\nНе найдено текстовых примитивов. ")
      (quit)
    ) ;_ end of progn
  ) ;_ end of if

  (vlax-invoke-method (setq f (vlax-get-or-create-object "wscript.shell"))
    "run"
    (strcat "notepad.exe\ " mip_file)
    1
    :vlax-true) ;_ end of vlax-invoke-method
  (vlax-release-object f)
  (setq f (open mip_file "r"))
  (foreach pk (reverse sp)
    (progn
      (setq PICK1 (entget (car pk)))
      (if (setq ob (read-line f))
	(setq PICK1 (subst (cons '1 ob) (assoc 1 PICK1) PICK1))
	(setq PICK1 (subst (cons '1 "") (assoc 1 PICK1) PICK1))
      ) ;_ end of if
      (entmod PICK1)
    ) ;_ end of progn
  ) ;_ end of foreach
  (setq ug (cdr (assoc 50 (entget (car (car sp))))))
  (if (> (length sp) 1)
    (setq
        xmax (trans (cdr (assoc 10 (entget(car(car sp))))) (car(car sp)) 1)
        pk (trans (cdr (assoc 10 (entget(car(cadr sp))))) (car(cadr sp)) 1)
        h (abs (cadr (mapcar '- pk xmax)))
    ) ;_ end of setq
    (setq h (* 1.7 (cdr (assoc 40 (entget (car (car sp)))))))
  ) ;_ end of if
  (setq xmax (car (car sp)))
  (while (setq ob (read-line f))
    (command "_.COPY"
	     xmax
	     ""
             "_none"
	     (cdr (assoc 10 (entget xmax)))
             "_none"
	     (polar (cdr (assoc 10 (entget xmax))) (- ug (* 0.5 PI)) h)
    ) ;_ end of command
    (setq xmax	(entlast)
	  PICK1	(entget xmax)
    ) ;_ end of setq
    (setq PICK1 (subst (cons '1 ob) (assoc 1 PICK1) PICK1))
    (entmod PICK1)
  ) ;_ end of while
  (setq PICK1 nil)
  (princ)
) ;_ end of defun
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 19.11.2009 в 11:57. Причина: Новая версия
VVA вне форума  
 
Непрочитано 12.11.2009, 12:27
#30
JokerrSergh


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


VVA, спасибо огромное.
Теперь у меня аж целых 2 програмки
JokerrSergh вне форума  
 
Непрочитано 18.11.2009, 19:48
#31
Залётный


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Моя старая-старая програмка. Редактирует текст через блокнот (notepad)
Код:
[Выделить все]
(defun C:РТЕКСТ	(/ pk ob f xmax h ug sp A_VER mip_file)
  ;;; Vladimir Azarko (VVA)
  ;;; published on dwg.ru
  ;;; http://forum.dwg.ru/showthread.php?t=5076&page=2
  (setvar "cmdecho" 0)
  (setvar "blipmode" 0)
  (setq PICK1 (getvar "UNDOCTL"))
  (cond
    ((= PICK1 0) (command "_.UNDO" "_All"))
    ((= PICK1 3) (command "_.UNDO" "_Control" "_All"))
    (t nil)
  ) ;_ end of cond
  (command "_.UNDO" "_M")
  (setq PICK1 nil)
  (prompt "\nВыберите текст для редактирования ...")
  (while (null PICK1) (setq PICK1 (ssget "_:L" '((0 . "TEXT")))))
  (setq	pk 0
	ob '()
  ) ;_ end of setq
  (repeat (sslength PICK1)
    (if	(= (cdr (assoc 0 (entget (ssname PICK1 pk)))) "TEXT")
      (setq ob
	     (cons (cons (ssname PICK1 pk)
			 (cadr (trans (cdr (assoc 10 (entget (ssname PICK1 pk)))) (ssname PICK1 pk) 1)  )
		   ) ;_ end of cons
		   ob
	     ) ;_ end of cons
      ) ;_ end of setq
    ) ;_ end of if
    (setq pk (1+ pk))
  ) ;_ end of repeat
  (setq PICK1 nil)
  (if (> (length ob) 0)
    (progn
      (setq mip_file (strcat (getvar "TEMPPREFIX") "miptext.txt"))
      (setq f  (open mip_file "w")
	    sp '()
      ) ;_ end of setq
      (repeat (length ob)
	(foreach pk ob
	  (progn
	    (if	(and pk (or (null xmax) (> (cdr pk) xmax)))
	      (setq xmax  (cdr pk)
		    PICK1 pk
	      ) ;_ end of setq
	    ) ;_ end of if
	  ) ;_ end of progn
	) ;_ end of foreach
	(setq ob   (subst nil PICK1 ob)
	      xmax nil
	      sp   (cons PICK1 sp)
	) ;_ end of setq
	(write-line (cdr (assoc 1 (entget (car PICK1)))) f)
      ) ;_ end of repeat
      (setq f (close f))
    ) ;_ end of progn
    (progn
      (alert "\nНе найдено текстовых примитивов. ")
      (quit)
    ) ;_ end of progn
  ) ;_ end of if

  (vlax-invoke-method (setq f (vlax-get-or-create-object "wscript.shell"))
    "run"
    (strcat "notepad.exe\ " mip_file)
    1
    :vlax-true) ;_ end of vlax-invoke-method
  (vlax-release-object f)
  (setq f (open mip_file "r"))
  (foreach pk (reverse sp)
    (progn
      (setq PICK1 (entget (car pk)))
      (if (setq ob (read-line f))
	(setq PICK1 (subst (cons '1 ob) (assoc 1 PICK1) PICK1))
	(setq PICK1 (subst (cons '1 "") (assoc 1 PICK1) PICK1))
      ) ;_ end of if
      (entmod PICK1)
    ) ;_ end of progn
  ) ;_ end of foreach
  (setq ug (cdr (assoc 50 (entget (car (car sp))))))
  (if (> (length sp) 1)
    (setq h (sqrt
	      (+ (expt (- (cadr (assoc 10 (entget (car (car sp)))))
			  (cadr (assoc 10 (entget (car (cadr sp)))))
		       ) ;_ end of -
		       2
		 ) ;_ end of expt
		 (expt (- (caddr (assoc 10 (entget (car (car sp)))))
			  (caddr (assoc 10 (entget (car (cadr sp)))))
		       ) ;_ end of -
		       2
		 ) ;_ end of expt
	      ) ;_ end of +
	    ) ;_ end of sqrt
    ) ;_ end of setq
    (setq h (* 1.7 (cdr (assoc 40 (entget (car (car sp)))))))
  ) ;_ end of if
  (setq xmax (car (car sp)))
  (while (setq ob (read-line f))
    (command "_.COPY"
	     xmax
	     ""
             "_none"
	     (cdr (assoc 10 (entget xmax)))
             "_none"
	     (polar (cdr (assoc 10 (entget xmax))) (- ug (* 0.5 PI)) h)
    ) ;_ end of command
    (setq xmax	(entlast)
	  PICK1	(entget xmax)
    ) ;_ end of setq
    (setq PICK1 (subst (cons '1 ob) (assoc 1 PICK1) PICK1))
    (entmod PICK1)
  ) ;_ end of while
  (setq PICK1 nil)
  (princ)
) ;_ end of defun
Спасибо.
Давно искал замену для MtmdEdit т.к. он плохо работает с 2008.

Достаточно удобна.
Работает при левом выравнивании текста.
При другом выравнивании текста (правое, центральное) неправильно обрабатываются расстояния между строк. Возможно ли это исправить?
Залётный вне форума  
 
Непрочитано 19.11.2009, 06:20
#32
JokerrSergh


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


VVA
почему-то перестала работать прога. Первый раз запускалась, а теперь не работает. Вот что пишет:
Команда: ртекст

Выберите текст для редактирования ...
Выберите объекты: Противоположный угол: найдено: 23

Выберите объекты:
; ошибка: no function definition: VLAX-GET-OR-CREATE-OBJECT

Автокад 2007 русский
JokerrSergh вне форума  
 
Непрочитано 19.11.2009, 08:08
#33
Do$

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


Второй строчкой добавить (vl-load-com) в программу.
Do$ вне форума  
 
Непрочитано 19.11.2009, 08:17
#34
JokerrSergh


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


Do$, пасибо, заработало
JokerrSergh вне форума  
 
Непрочитано 19.11.2009, 08:30
#35
Do$

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


Да не за что. У VVA в подписи ссылка - очень рекомендую почитать, добавить в избранное - подобных вопросов больше не возникнет.
Do$ вне форума  
 
Непрочитано 19.11.2009, 11:57
#36
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Залётный, Обновил #29
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.11.2009, 22:19
#37
Залётный


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Залётный, Обновил #29
Большое спасибо. Всё работает.

Если бы добавить запрос на возможность выравнивания по положению верхней строки и расстояние между строками, это практически полностью заменило бы MtmdEdit с тем преимуществом, что не зависело бы от версии CAD(а).
Залётный вне форума  
 
Непрочитано 23.11.2009, 01:09 Редактор через блокнот
#38
Li6-D


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


Я тоже очень давно написал аналогичный, но более примитивный редактор.
Самая первая версия написана для ACAD10 под DOS и текстовый редактор Лексикон!
Блокнот был уже потом, когда не стало Лексикона.
Не привожу, потому что есть недостатки:
Если выделить рамкой сразу несколько строк, то в Блокноте они будут в непредсказуемом порядке
(т.е. строки связанного текста надо указывать последовательно).
Редактирование идёт строка в строку, но новых строк в процессе редактирования, увы, не добавляется.
+ик: в случае уменьшения количества строк из чертежа удаляются тексты, состоящие из пустых строк, пробелов.
Самое интересное, что этот невидимый мусор не цепляется рамкой (только "_ALL").
Li6-D вне форума  
 
Непрочитано 23.11.2009, 02:03
#39
Залётный


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


Цитата:
Сообщение от Li6-D Посмотреть сообщение
Редактирование идёт строка в строку,
Редактор Владимира вполне подходит для редактирования и добавления больших объёмов однострочного текста. Увы, если в нём всречается пустая строка всё нарушается. Поэтому было бы удобно сначала установить стандартный межстрочный интервал для всех селектированных строк, выполнить выравнвание текста по положению верхней строки, отредактировать текст и после этого уже руками набить пустые строки, где они необходимы. В этом отношении MtmdEdit был великолепен. Онако для набора нового текста, при предварительном налиичии хотя бы одной строки, или редактирования участков текста без пустых строк он вполне выполняет свои функции.
Залётный вне форума  
 
Непрочитано 23.11.2009, 20:53
#40
kheylan


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


Залётный
Я до сих пор, работая в 2009 пользуюсь MtmdEdit, хоть он и для 2007, посадив его на макрос
^C^C^P(if(not(member "MtmdEdit.arx" (arx)))(arxload "MtmdEdit.arx"));^PTE;
Вложения
Тип файла: rar MtmdEdit.rar (15.6 Кб, 84 просмотров)
kheylan вне форума  
 
Непрочитано 23.11.2009, 21:46
#41
Залётный


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


Цитата:
Сообщение от kheylan Посмотреть сообщение
Залётный
Я до сих пор, работая в 2009 пользуюсь MtmdEdit, хоть он и для 2007, посадив его на макрос
^C^C^P(if(not(member "MtmdEdit.arx" (arx)))(arxload "MtmdEdit.arx"));^PTE;
Подгрузить его не проблема. Когда очень острая необходимость я так и делаю. Но, когда он подружен, CAD может крашнутся в самый неподходящий момент к тому же абсолютно непредсказуемо. Это может произойти через минуту, а может и через час работы. Поэтому стараюсь найти альтернативу. В 2006 проблем небыло.
P.S.
Проверил, у меня точно такой же файл.
Залётный вне форума  
 
Непрочитано 24.11.2009, 09:46
#42
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от Залётный Посмотреть сообщение
Увы, если в нём всречается пустая строка всё нарушается
Приведи пример что, как и где нарушается
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.11.2009, 10:11
#43
Сергей Дубина


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


А разве "свойства" не делают тоже самое?
Если написать програмку для програмки которая запускает другую програмку можно и свихнутся.
Ведь должен же быть предел разумного.
Тут недавно мне предложили выключатели света на дистанционном управлении домой установить. А где же взять пульт который будет искать этот пульт, да ещё в темноте? Да и к выключателю иногда полезно сходить? Автокад сам редактирует однострочный текст тысячами за раз.
З.Ы.
Грязю обольёте или переубедите, что это не "вредные полезности"?
__________________
КазнитьØнельзяØпомиловать:eek:
Сергей Дубина вне форума  
 
Непрочитано 25.11.2009, 00:32
#44
Залётный


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Приведи пример что, как и где нарушается
Есть текст состояший из нескольких частей между которыми пустые строки:

11111111111
22222222222
33333333333
44444444444

11111111111
22222222222
33333333333
44444444444

Редактируем. Нужно добавить в верхний блок сроку 0 между 2 и 3.
В результате вместо:

11111111111
22222222222
00000000000
33333333333
44444444444

11111111111
22222222222
33333333333
44444444444

Получаем:
11111111111
22222222222
00000000000
33333333333

44444444444
11111111111
22222222222
33333333333
44444444444
То же получается если если нужно в какой то блок добавить пустую строку. Поэтому, если нет возможности это исправить, было бы лучше если сразу выполнить выравнивание текста (как по вертикали, так и по горизонтали), а потом руками, по необходимости, набить пустые строки.
Залётный вне форума  
 
Непрочитано 25.11.2009, 21:24
#45
Li6-D


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


В чертеже после редактирования может появиться мусор.
Например, есть 6 строк:

ДЕЛАЕМ
ЭТОТ
ТЕКСТ
КОРОТКИМ
И
ШИРОКИМ

Редактируем и получаем 2 строки:

ПОЛУЧИЛИ ЭТОТ ТЕКСТ
КОРОТКИМ И ШИРОКИМ

Помимо этих двух строк в чертеже останутся 4 ненужных примитива вида:
((-1 . <Имя объекта: 7ef9d438>) (0 . "TEXT") (330 . <Имя объекта: 7ef9bcf8>) (5 . "1BF") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbText") (10 112.35 669.05 0.0) (40 . 150.0) (1 . "") (50 . 0.0) (41 . 1.0) (51 . 0.0) (7 . "Standard") (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . "AcDbText") (73 . 0))
Выделенная пара может иметь вариацию: (1 . " ")

В чем легко убедиться, запустив до и после редактирования функцию:

(defun PrT_All ( / i sel)
(setq i 0 sel (ssget "_X" '((0 . "TEXT"))))
(repeat (if sel (sslength sel) 0)
(print (entget (ssname sel i)))
(setq i (1+ i)))
(textscr)
(princ)
)

Последний раз редактировалось Li6-D, 25.11.2009 в 21:51.
Li6-D вне форума  
 
Непрочитано 01.09.2010, 21:18
#46
Li6-D


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


Совсем недавно вышла новая версия MtmdEdit для AutoCAD 2007-2010 от Мансура Мамкина: http://mtmlab.ru/download.
Опробуйте и такой LISP, который редактирует однострочный текст чертежа c помощью блокнота (notepad).
Вызов блокнота в этой программе позаимствован из программы РТЕКСТ Владимира Азарко (пост#29, а также http://forum.dwg.ru/showthread.php?t...light=startapp).
Вложения
Тип файла: lsp rt.lsp (12.4 Кб, 56 просмотров)

Последний раз редактировалось Li6-D, 04.09.2010 в 11:42. Причина: доработка программы (04.09.10 изменен файл rt.lsp)
Li6-D вне форума  
 
Непрочитано 01.09.2010, 22:22
#47
gomer

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


объединяйте тексты в мтексты и не мучайте народ
gomer вне форума  
 
Непрочитано 02.09.2010, 03:41
#48
Залётный


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


Большое спасибо. Обязательно попробую и то и другое. Старая версия MtmdEdit непредсказуемо бывивает 2008 т.е. если её подгрузить, то CAD обязательно вылетит, но предсказать это случится через минуту или через пол часа невозможно.

Цитата:
Сообщение от Li6-D Посмотреть сообщение
Совсем недавно вышла новая версия MtmdEdit для AutoCAD 2007-2010 от Мансура Мамкина: http://mtmlab.ru/download.
Опробуйте и такой LISP, который редактирует однострочный текст чертежа c помощью блокнота (notepad).
Вызов блокнота в этой программе позаимствован из программы РТЕКСТ Владимира Азарко (пост#29, а также http://forum.dwg.ru/showthread.php?t...light=startapp).
Залётный вне форума  
 
Непрочитано 07.09.2010, 11:08
#49
Мансур

Инженер САПР
 
Регистрация: 12.11.2004
Тюмень
Сообщений: 36
<phrase 1=


Цитата:
Сообщение от Li6-D Посмотреть сообщение
Совсем недавно вышла новая версия MtmdEdit для AutoCAD 2007-2010 от Мансура Мамкина
Новая версия MtmdEdit существенно переработана в плане улучшения "безглючности", так что пробуем, тестируем, о найденных глюках не стесняйтесь писать автору на емейл
Мансур вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Редактирование неск-их строк однострочного текста одновренно