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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > ^C^C_Tedit-Пример из книги Владимира Света "Язык макрок

^C^C_Tedit-Пример из книги Владимира Света "Язык макрок

Ответ
Поиск в этой теме
Непрочитано 19.06.2007, 14:27 #1
^C^C_Tedit-Пример из книги Владимира Света "Язык макрок
Владимир Егорьев
 
Сообщений: n/a

Добрый день.Попытался создать новую кнопку используя макрос-^C^C_Tedit.Данная опереация приведена в качестве примера в книге Владимира Света "AutoCAD Язык макрокоманд и создание кнопок".При попытке редактирования текста в командной строке выдаётся ответ "Неизвестная команда "TEDIT".
Программа AutoCAD 2006 русская версия.
В чём причина?
Просмотров: 8043
 
Непрочитано 19.06.2007, 14:36
#2
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


^C^C_ddedit
^C^C_mtedit
ASLYS вне форума  
 
Непрочитано 19.06.2007, 14:41
#3
Кулик Алексей aka kpblc
Moderator

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


Вот что сказал 2005 Eng:
Цитата:
Command: _tedit

Initializing...

File 'tedit.lsp' could not be found.
The specified command is not installed.
To get the very latest versions of all Express Tools, visit the
Express Tools page on the Autodesk web site at:
http://www.autodesk.com/expresstools
Команда исключена из комплекта ET, как я понял.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.06.2007, 14:48
#4
Владимир Егорьев


 
Сообщений: n/a


Цитата:
Сообщение от ASLYS
^C^C_ddedit
^C^C_mtedit
Как предлагается в книге:
"...Есть команда (универсальная команда) Edit any text (моя ред. ^C^C_Tedit),которая редактирует любой текст-однострочный,многострочный,атрибут,текст размеров.Она заменяет собой две стандартные команды AutoCAD:Edit Text (Ddedit) и Edit Attribute (Eattedit). ..."
 
 
Непрочитано 19.06.2007, 15:01
#5
Владимир Егорьев


 
Сообщений: n/a


->Кулик Алексей aka kpblc
Спасибо.
Особенно за перевод. .
 
 
Непрочитано 19.06.2007, 15:03
#6
Кулик Алексей aka kpblc
Moderator

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


А номер страницы не подскажешь? Я что-то не нашел так напрямую...
P.S. Ну ладно издеваться-то... [sm2702]
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.06.2007, 15:24
#7
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


все-таки попробуй _ddedit
ASLYS вне форума  
 
Непрочитано 19.06.2007, 15:26
#8
Владимир Егорьев


 
Сообщений: n/a


Цитата:
Сообщение от Кулик Алексей aka kpblc
А номер страницы не подскажешь? Я что-то не нашел так напрямую...
P.S. Ну ладно издеваться-то... [sm2702]
Самое начало.Я только собрался изучать LISP. .Стр.12
Ты мне рекомендовал начать с книги В.Света.
В англ. я действительно только со словарём.
 
 
Непрочитано 19.06.2007, 15:27
#9
Владимир Егорьев


 
Сообщений: n/a


...
 
 
Непрочитано 19.06.2007, 15:51
#10
Владимир Егорьев


 
Сообщений: n/a


Цитата:
Сообщение от ASLYS
все-таки попробуй _ddedit
Кстати да. [sm200]
Заработало.
 
 
Непрочитано 19.06.2007, 20:56
#11
Vova

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


Книга писалась под 2002. В 2004 команда tedit так-же была. Затем ее не стало. Но tedit гораздо удобней, чем Ddedit. Она позволяет населектировать все, а затем появляется собственно редактор. Поэтому я делаю так: http://www.autocad.ru/cgi-bin/f1/board.cgi?t=36377rG
Vova вне форума  
 
Непрочитано 20.06.2007, 20:31 Re: ^C^C_Tedit-Пример из книги Владимира Света "Язык ма
#12
PL


 
Регистрация: 23.11.2006
California
Сообщений: 4,750


Цитата:
Сообщение от Владимир Егорьев
"Неизвестная команда "TEDIT".
Если нет возможности найти оригинальный tedit (а я когда книжку читал не нашел), здесь код его заменяющий.
Положи фаил в папку которую автокад видит, лучше создать свою папку, например “егорьев-support”
Код на кнопку будет:
^C^C(load "tedit");tedit
Только для такой часто используемой команды по моему зря кнопку заводить, лучше с клавиатуры набрать что-то вроде DD или как то так :roll: .
[ATTACH]1182357110.zip[/ATTACH]
PL вне форума  
 
Непрочитано 21.06.2007, 06:46
#13
Vova

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


Вот оригинальный TEDIT:
Код:
[Выделить все]
;;
;;  tedit.lsp - generic text editing
;;
;;  Copyright © 1999 by Autodesk, Inc.
;;
;;  Your use of this software is governed by the terms and conditions of the
;;  License Agreement you accepted prior to installation of this software.
;;  Please note that pursuant to the License Agreement for this software,
;;  "[c]opying of this computer program or its documentation except as
;;  permitted by this License is copyright infringement under the laws of
;;  your country.  If you copy this computer program without permission of
;;  Autodesk, you are violating the law."
;;
;;  AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;  AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;  MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
;;  DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;  UNINTERRUPTED OR ERROR FREE.
;;
;;  Use, duplication, or disclosure by the U.S. Government is subject to
;;  restrictions set forth in FAR 52.227-19 (Commercial Computer
;;  Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;  (Rights in Technical Data and Computer Software), as applicable.
;;
;;  ----------------------------------------------------------------
;;
;;  DESCRIPTION
;;  The TEDIT command provides a single command for editing all 
;;  forms of annotation objects.
;;
;;  ----------------------------------------------------------------
 
(defun C:TEDIT (/ noll filter ss idx ename elist kind)
  ;;  remove objects on locked layers from ss
  (defun noll (ss / i d ename)
    (setq i 0
          d 0 )
    (while (and ss
                (setq ename (ssname ss i)) )
      (if (acet-layer-locked (cdr (assoc 8 (entget ename))))
        (progn
          (ssdel ename ss)
          (setq d (1+ d))
        )
        (setq i (1+ i))
      )
    )
    (if (/= 0 d)
      (princ (acet-str-format "%1 %2 on a locked layer.\n"
                              d
                              (if (< 1 d) "were" "was") ) )
    )
    ss
  )
 
  (acet-error-init '(("CMDECHO" 0) T))
 
  ;;  make object filter
  (setq filter (list
        (cons 410 (if (and (= 0 (getvar "TILEMODE"))
                           (/= 1 (getvar "CVPORT")) )
                    "Model"
                    (getvar "CTAB") ) )
        '(-4 . "<OR")
          '(0 . "TEXT,MTEXT,RTEXT,ARCALIGNEDTEXT,DIMENSION,ATTDEF")
          '(-4 . "<AND")
            '(0 . "INSERT")
            '(66 . 1)
          '(-4 . "AND>")
        '(-4 . "OR>") ) )
 
  ;;  pick objects
  (if (not (and (= 1 (logand 1 (getvar "PICKFIRST")))
                (setq ss (noll (ssget "_I" filter))) ) )
    (setq ss (ssget "_:L" filter))
  )
 
  ;;  process ss
  (if ss
    (progn
      (setq idx -1)
      (acet-ui-progress "Editing:" (sslength ss))
      (sssetfirst)
      (redraw)
      (while (setq ename (ssname ss (setq idx (1+ idx))))
      (redraw ename 3)
      (redraw)
        (setq elist (entget ename)
              kind (cdr (assoc 0 elist)) )
        (cond
          ((or (= kind "TEXT")
               (= kind "MTEXT")
               (= kind "DIMENSION")
               (= kind "ATTDEF") )
            (command "_.DDEDIT" ename "") )
          ((= kind "INSERT")
            (command "_.DDATTE" ename) )
          ((= kind "ARCALIGNEDTEXT")
            (command "_.ARCTEXT" ename) )
          ((= kind "RTEXT")
            (if (or (= 'USUBR AcetRText:edit) (load "rtext" nil))
              (AcetRText:edit elist)
              (princ "TEDIT: Cannot edit RTEXT objects.\n")
            )
          )
        )
        (entupd ename)
        (redraw ename 4)
        (acet-ui-progress -1)
      )
      (acet-ui-progress)
      (sssetfirst nil ss)
    )
  )
 
  (acet-error-restore)
  (princ)
)


(acet-autoload2	'("Rtext.lsp"	(AcetRText:edit ent)))
(princ)
Vova вне форума  
 
Непрочитано 21.06.2007, 08:25
#14
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837


Vova
А ведь я говорил, - переписывать книжку пора.
Krieger вне форума  
 
Непрочитано 13.06.2016, 08:31
#15
kserg


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


Добавлены мультивыноски

Код:
[Выделить все]
 ;;
;;  tedit.lsp - generic text editing
;;
;;  Copyright © 1999 by Autodesk, Inc.
;;
;;  Your use of this software is governed by the terms and conditions of the
;;  License Agreement you accepted prior to installation of this software.
;;  Please note that pursuant to the License Agreement for this software,
;;  "[c]opying of this computer program or its documentation except as
;;  permitted by this License is copyright infringement under the laws of
;;  your country.  If you copy this computer program without permission of
;;  Autodesk, you are violating the law."
;;
;;  AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;  AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;  MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
;;  DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;  UNINTERRUPTED OR ERROR FREE.
;;
;;  Use, duplication, or disclosure by the U.S. Government is subject to
;;  restrictions set forth in FAR 52.227-19 (Commercial Computer
;;  Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;  (Rights in Technical Data and Computer Software), as applicable.
;;
;;  ----------------------------------------------------------------
;;
;;  DESCRIPTION
;;  The TEDIT command provides a single command for editing all 
;;  forms of annotation objects.
;;
;;  ----------------------------------------------------------------
 
(defun C:TEDIT0 (/ noll filter ss idx ename elist kind)
  ;;  remove objects on locked layers from ss
  (defun noll (ss / i d ename)
    (setq i 0
          d 0 )
    (while (and ss
                (setq ename (ssname ss i)) )
      (if (acet-layer-locked (cdr (assoc 8 (entget ename))))
        (progn
          (ssdel ename ss)
          (setq d (1+ d))
        )
        (setq i (1+ i))
      )
    )
    (if (/= 0 d)
      (princ (acet-str-format "%1 %2 on a locked layer.\n"
                              d
                              (if (< 1 d) "were" "was") ) )
    )
    ss
  )
 
  (acet-error-init '(("CMDECHO" 0) T))
 
  ;;  make object filter
  (setq filter (list
        (cons 410 (if (and (= 0 (getvar "TILEMODE"))
                           (/= 1 (getvar "CVPORT")) )
                    "Model"
                    (getvar "CTAB") ) )
        '(-4 . "<OR")
          '(0 . "TEXT,MTEXT,RTEXT,ARCALIGNEDTEXT,DIMENSION,ATTDEF,MULTILEADER")
          '(-4 . "<AND")
            '(0 . "INSERT")
            '(66 . 1)
          '(-4 . "AND>")
        '(-4 . "OR>") ) )
 
  ;;  pick objects
  (if (not (and (= 1 (logand 1 (getvar "PICKFIRST")))
                (setq ss (noll (ssget "_I" filter))) ) )
    (setq ss (ssget "_:L" filter))
  )
 
  ;;  process ss
  (if ss
    (progn
      (setq idx -1)
      (acet-ui-progress "Editing:" (sslength ss))
      (sssetfirst)
      (redraw)
      (while (setq ename (ssname ss (setq idx (1+ idx))))
      (redraw ename 3)
      (redraw)
        (setq elist (entget ename)
              kind (cdr (assoc 0 elist)) )
        (cond
          ((or (= kind "TEXT")
               (= kind "MTEXT")
               (= kind "DIMENSION")
               (= kind "MULTILEADER")
               (= kind "ATTDEF") )
            (command "_.DDEDIT" ename "") )
          ((= kind "INSERT")
            (command "_.DDATTE" ename) )
          ((= kind "ARCALIGNEDTEXT")
            (command "_.ARCTEXT" ename) )
          ((= kind "RTEXT")
            (if (or (= 'USUBR AcetRText:edit) (load "rtext" nil))
              (AcetRText:edit elist)
              (princ "TEDIT: Cannot edit RTEXT objects.\n")
            )
          )
        )
        (entupd ename)
        (redraw ename 4)
        (acet-ui-progress -1)
      )
      (acet-ui-progress)
      (sssetfirst nil ss)
    )
  )
 
  (acet-error-restore)
  (princ)
)


(acet-autoload2	'("Rtext.lsp"	(AcetRText:edit ent)))
(princ)

Последний раз редактировалось kserg, 14.06.2016 в 08:50.
kserg вне форума  
 
Непрочитано 13.06.2016, 11:10
#16
Agnilebannen


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


Воу некропостинг.
В 2015 и в 2016 "_.DDEDIT" уже тоже не работает, и его надо заменять на "_.multiple" "_.textedit". Типа вот так:
Код:
[Выделить все]
 ;;
;;  tedit.lsp - generic text editing
;;
;;  Copyright © 1999 by Autodesk, Inc.
;;
;;  Your use of this software is governed by the terms and conditions of the
;;  License Agreement you accepted prior to installation of this software.
;;  Please note that pursuant to the License Agreement for this software,
;;  "[c]opying of this computer program or its documentation except as
;;  permitted by this License is copyright infringement under the laws of
;;  your country.  If you copy this computer program without permission of
;;  Autodesk, you are violating the law."
;;
;;  AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;  AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;  MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
;;  DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;  UNINTERRUPTED OR ERROR FREE.
;;
;;  Use, duplication, or disclosure by the U.S. Government is subject to
;;  restrictions set forth in FAR 52.227-19 (Commercial Computer
;;  Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;  (Rights in Technical Data and Computer Software), as applicable.
;;
;;  ----------------------------------------------------------------
;;
;;  DESCRIPTION
;;  The TEDIT command provides a single command for editing all 
;;  forms of annotation objects.
;;
;;  ----------------------------------------------------------------
 
(defun C:TEDIT (/ noll filter ss idx ename elist kind)
  ;;  remove objects on locked layers from ss
  (defun noll (ss / i d ename)
    (setq i 0
          d 0 )
    (while (and ss
                (setq ename (ssname ss i)) )
      (if (acet-layer-locked (cdr (assoc 8 (entget ename))))
        (progn
          (ssdel ename ss)
          (setq d (1+ d))
        )
        (setq i (1+ i))
      )
    )
    (if (/= 0 d)
      (princ (acet-str-format "%1 %2 on a locked layer.\n"
                              d
                              (if (< 1 d) "were" "was") ) )
    )
    ss
  )
 
  (acet-error-init '(("CMDECHO" 0) T))
 
  ;;  make object filter
  (setq filter (list
        (cons 410 (if (and (= 0 (getvar "TILEMODE"))
                           (/= 1 (getvar "CVPORT")) )
                    "Model"
                    (getvar "CTAB") ) )
        '(-4 . "<OR")
          '(0 . "TEXT,MTEXT,RTEXT,ARCALIGNEDTEXT,DIMENSION,ATTDEF,MULTILEADER")
          '(-4 . "<AND")
            '(0 . "INSERT")
            '(66 . 1)
          '(-4 . "AND>")
        '(-4 . "OR>") ) )
 
  ;;  pick objects
  (if (not (and (= 1 (logand 1 (getvar "PICKFIRST")))
                (setq ss (noll (ssget "_I" filter))) ) )
    (setq ss (ssget "_:L" filter))
  )
 
  ;;  process ss
  (if ss
    (progn
      (setq idx -1)
      (acet-ui-progress "Editing:" (sslength ss))
      (sssetfirst)
      (redraw)
      (while (setq ename (ssname ss (setq idx (1+ idx))))
      (redraw ename 3)
      (redraw)
        (setq elist (entget ename)
              kind (cdr (assoc 0 elist)) )
        (cond
          ((or (= kind "TEXT")
               (= kind "MTEXT")
               (= kind "DIMENSION")
	       (= kind "MULTILEADER")
               (= kind "ATTDEF") )
            (command "_.multiple" "_.textedit" ename ""))
          ((= kind "INSERT")
            (command "_.DDATTE" ename) )
          ((= kind "ARCALIGNEDTEXT")
            (command "_.ARCTEXT" ename) )
          ((= kind "RTEXT")
            (if (or (= 'USUBR AcetRText:edit) (load "rtext" nil))
              (AcetRText:edit elist)
              (princ "TEDIT: Cannot edit RTEXT objects.\n")
            )
          )
        )
        (entupd ename)
        (redraw ename 4)
        (acet-ui-progress -1)
      )
      (acet-ui-progress)
      (sssetfirst nil ss)
    )
  )
 
  (acet-error-restore)
  (princ)
)


(acet-autoload2	'("Rtext.lsp"	(AcetRText:edit ent)))
(princ)
Agnilebannen вне форума  
 
Непрочитано 13.06.2016, 13:06
#17
gomer

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


А че по-человечески нельзя сделать с разбором версий и адекватными комментариями.
А то некоторые гуры рассказывают какой лисп кросплаферменноверсиенезависимый
gomer вне форума  
 
Непрочитано 14.06.2016, 08:56
#18
kserg


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


Цитата:
Сообщение от gomer Посмотреть сообщение
А че по-человечески нельзя сделать с разбором версий и адекватными комментариями.
А то некоторые гуры рассказывают какой лисп кросплаферменноверсиенезависимый
Комментирую пост #15:
1. мультивыноски - см. строки 065 и 094 кода в посте #15
2. версия - подправленная от ВОВы из поста #13
3. а до гурав нам еще кашлять и кашлять

(за кулисами - Гомеровский смех......)

Последний раз редактировалось kserg, 14.06.2016 в 09:32.
kserg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > ^C^C_Tedit-Пример из книги Владимира Света "Язык макрок