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

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

Форматирование текста по ширине

Ответ
Поиск в этой теме
Непрочитано 22.12.2008, 10:35 #1
Форматирование текста по ширине
SkaBoy
 
Регистрация: 22.12.2008
Сообщений: 5

Здравствуйте, подскажите, есть ли возможность в AutoCAD выставлять форматирование текста по ширине, как это делается к примеру в ворде, заранее спасибо
Просмотров: 6862
 
Непрочитано 22.12.2008, 10:39
#2
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Есть, конечно, в окне редактирования текста. Только зачем по ширине? Тут нет ширины. Тут есть коэффициент ширины
BM60 вне форума  
 
Непрочитано 22.12.2008, 10:44
#3
Солидворкер
Moderator

Конструктор (машиностроение)
 
Регистрация: 23.10.2006
Россия
Сообщений: 23,286
<phrase 1=


Имелось в виду центрирование текста.
Солидворкер вне форума  
 
Автор темы   Непрочитано 22.12.2008, 11:38
#4
SkaBoy


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


Да, имелось ввиду центрирование (выравнивание) по ширине
SkaBoy вне форума  
 
Непрочитано 22.12.2008, 11:41
#5
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Тогда пусть автор пояснит, что он разумеет под форматированием по ширине: растянуть текст на ширину строки (как в Ворде) или центрировать (расположить текст в середине строки)?

Вордовые тремины центрировать и выравнивать по ширине = разные. Второе растянет три слова на всю строку с интервалом между словам в километр.
BM60 вне форума  
 
Автор темы   Непрочитано 22.12.2008, 12:04
#6
SkaBoy


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


Я подразумеваю растянуть текст на ширину строки (как в ворде), чтобы три слова растягивались на всю строку
SkaBoy вне форума  
 
Непрочитано 22.12.2008, 12:06
#7
Хмурый


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


команда _textfit из комплекта Express Tools работает только с однострочным текстом
Хмурый вне форума  
 
Непрочитано 22.12.2008, 12:46
#8
BM60


 
Регистрация: 08.02.2008
Где-то
Сообщений: 8,460


Для однострочного также 2ЛК на тексте и в окне Ширина выставить опытным путем число, большее, чем умолчательная 1. Но это устроит, смотря где, например, слово План, чтоб поширше было.
Многострочным не пользуюсь принципиально.
BM60 вне форума  
 
Непрочитано 22.12.2008, 13:08
#9
Кулик Алексей aka kpblc
Moderator

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


Втупую, без особых проверок:
Код:
[Выделить все]
(defun change-text-width (/ adoc ent dist)
  (vl-load-com)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (if (and (= (type (setq ent (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (setq ent (ssget "_+.:S:E" '((0 . "TEXT,MTEXT"))))
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'pickset
              ) ;_ end of =
           (setq ent (vlax-ename->vla-object (ssname ent 0)))
           (= (type (setq dist
                           (vl-catch-all-apply
                             (function
                               (lambda ()
                                 (getdist
                                   (cond
                                     ((= (vla-get-objectname ent) "AcDbMText")
                                      (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent)))
                                      )
                                     (t
                                      (cond
                                        ((= (vla-get-alignment ent) acalignmentleft)
                                         (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent)))
                                         )
                                        (t (vlax-safearray->list (vlax-variant-value (vla-get-textalignmentpoint ent))))
                                        ) ;_ end of cond
                                      )
                                     ) ;_ end of cond
                                   "Укажи ширину строки <Отмена> : "
                                   ) ;_ end of getdist
                                 ) ;_ end of lambda
                               ) ;_ end of function
                             ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'real
              ) ;_ end of =
           ) ;_ end of and
    (vl-catch-all-apply
      (function
        (lambda (/ dx minp maxp ang normal)
          (setq ang    (vla-get-rotation ent)
                normal (vla-get-normal ent)
                ) ;_ end of setq
          (vla-put-rotation ent 0.)
          (vla-put-normal ent (vlax-3d-point '(0. 0. 1.)))
          (vla-getboundingbox ent 'minp 'maxp)
          (setq minp (vlax-safearray->list minp)
                maxp (vlax-safearray->list maxp)
                dx   (- (car maxp) (car minp))
                ) ;_ end of setq
          (vla-put-rotation ent ang)
          (vla-put-normal ent normal)
          (cond
            ((= (vla-get-objectname ent) "AcDbMText")
             (vla-put-width ent 0.)
             (vla-put-textstring
               ent
               (strcat "{\\W"
                       (vl-princ-to-string (/ dist dx))
                       ";"
                       (vla-get-textstring ent)
                       "}"
                       ) ;_ end of strcat
               ) ;_ end of vla-put-TextString
             )
            (t (vla-put-scalefactor ent (/ dist dx)))
            ) ;_ end of cond
          ) ;_ end of lambda
        ) ;_ end of function
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.12.2008, 13:19
#10
zinger

ППРroduction
 
Регистрация: 19.10.2007
"H"
Сообщений: 474
Отправить сообщение для zinger с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Втупую, без особых проверок:
Код:
[Выделить все]
(defun change-text-width (/ adoc ent dist)
  (vl-load-com)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (if (and (= (type (setq ent (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (setq ent (ssget "_+.:S:E" '((0 . "TEXT,MTEXT"))))
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'pickset
              ) ;_ end of =
           (setq ent (vlax-ename->vla-object (ssname ent 0)))
           (= (type (setq dist
                           (vl-catch-all-apply
                             (function
                               (lambda ()
                                 (getdist
                                   (cond
                                     ((= (vla-get-objectname ent) "AcDbMText")
                                      (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent)))
                                      )
                                     (t
                                      (cond
                                        ((= (vla-get-alignment ent) acalignmentleft)
                                         (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent)))
                                         )
                                        (t (vlax-safearray->list (vlax-variant-value (vla-get-textalignmentpoint ent))))
                                        ) ;_ end of cond
                                      )
                                     ) ;_ end of cond
                                   "Укажи ширину строки <Отмена> : "
                                   ) ;_ end of getdist
                                 ) ;_ end of lambda
                               ) ;_ end of function
                             ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'real
              ) ;_ end of =
           ) ;_ end of and
    (vl-catch-all-apply
      (function
        (lambda (/ dx minp maxp ang normal)
          (setq ang    (vla-get-rotation ent)
                normal (vla-get-normal ent)
                ) ;_ end of setq
          (vla-put-rotation ent 0.)
          (vla-put-normal ent (vlax-3d-point '(0. 0. 1.)))
          (vla-getboundingbox ent 'minp 'maxp)
          (setq minp (vlax-safearray->list minp)
                maxp (vlax-safearray->list maxp)
                dx   (- (car maxp) (car minp))
                ) ;_ end of setq
          (vla-put-rotation ent ang)
          (vla-put-normal ent normal)
          (cond
            ((= (vla-get-objectname ent) "AcDbMText")
             (vla-put-width ent 0.)
             (vla-put-textstring
               ent
               (strcat "{\\W"
                       (vl-princ-to-string (/ dist dx))
                       ";"
                       (vla-get-textstring ent)
                       "}"
                       ) ;_ end of strcat
               ) ;_ end of vla-put-TextString
             )
            (t (vla-put-scalefactor ent (/ dist dx)))
            ) ;_ end of cond
          ) ;_ end of lambda
        ) ;_ end of function
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Алексей вы меня пугаете !
__________________
Изобрести вечный двигатель может, разве что, вечный студент..
zinger вне форума  
 
Непрочитано 22.12.2008, 13:38
#11
Кулик Алексей aka kpblc
Moderator

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


Ух ты, меня опять много!
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.12.2008, 19:29
#12
SkaBoy


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Втупую, без особых проверок:
Код:
[Выделить все]
(defun change-text-width (/ adoc ent dist)
  (vl-load-com)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (if (and (= (type (setq ent (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (setq ent (ssget "_+.:S:E" '((0 . "TEXT,MTEXT"))))
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'pickset
              ) ;_ end of =
           (setq ent (vlax-ename->vla-object (ssname ent 0)))
           (= (type (setq dist
                           (vl-catch-all-apply
                             (function
                               (lambda ()
                                 (getdist
                                   (cond
                                     ((= (vla-get-objectname ent) "AcDbMText")
                                      (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent)))
                                      )
                                     (t
                                      (cond
                                        ((= (vla-get-alignment ent) acalignmentleft)
                                         (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent)))
                                         )
                                        (t (vlax-safearray->list (vlax-variant-value (vla-get-textalignmentpoint ent))))
                                        ) ;_ end of cond
                                      )
                                     ) ;_ end of cond
                                   "Укажи ширину строки <Отмена> : "
                                   ) ;_ end of getdist
                                 ) ;_ end of lambda
                               ) ;_ end of function
                             ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'real
              ) ;_ end of =
           ) ;_ end of and
    (vl-catch-all-apply
      (function
        (lambda (/ dx minp maxp ang normal)
          (setq ang    (vla-get-rotation ent)
                normal (vla-get-normal ent)
                ) ;_ end of setq
          (vla-put-rotation ent 0.)
          (vla-put-normal ent (vlax-3d-point '(0. 0. 1.)))
          (vla-getboundingbox ent 'minp 'maxp)
          (setq minp (vlax-safearray->list minp)
                maxp (vlax-safearray->list maxp)
                dx   (- (car maxp) (car minp))
                ) ;_ end of setq
          (vla-put-rotation ent ang)
          (vla-put-normal ent normal)
          (cond
            ((= (vla-get-objectname ent) "AcDbMText")
             (vla-put-width ent 0.)
             (vla-put-textstring
               ent
               (strcat "{\\W"
                       (vl-princ-to-string (/ dist dx))
                       ";"
                       (vla-get-textstring ent)
                       "}"
                       ) ;_ end of strcat
               ) ;_ end of vla-put-TextString
             )
            (t (vla-put-scalefactor ent (/ dist dx)))
            ) ;_ end of cond
          ) ;_ end of lambda
        ) ;_ end of function
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Было бы здорово если бы вы пояснили как этим пользоваться, куда вбивать, и вообще что это такое

Мне это необходимо для многострочного текста, причём, больших объёмов, сам пользуюсь версией 2007, сегодня увидел что есть растягивание по ширине AutoCAD 2008 Architecture, мне он не очень нравится, но если есть такая возможность в обычной 2008 версии, я бы на неё перешёл, если есть возможность - проверьте пожалуйста
SkaBoy вне форума  
 
Непрочитано 22.12.2008, 19:36
#13
zinger

ППРroduction
 
Регистрация: 19.10.2007
"H"
Сообщений: 474
Отправить сообщение для zinger с помощью Skype™


у меня АС 2008 LT на работе , там эта функция есть, по началу вообще не понял в чем проблема, сейчас окткрыл 2004й , понял ,что есть неудобство с этим текстом работать . Смело переходи на 2008 !
__________________
Изобрести вечный двигатель может, разве что, вечный студент..
zinger вне форума  
 
Автор темы   Непрочитано 22.12.2008, 19:46
#14
SkaBoy


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


Цитата:
Сообщение от zinger Посмотреть сообщение
у меня АС 2008 LT на работе , там эта функция есть, по началу вообще не понял в чем проблема, сейчас окткрыл 2004й , понял ,что есть неудобство с этим текстом работать . Смело переходи на 2008 !
спасибо большое, правда есть и сложности, на работе комп тормозной, незнаю потянет ли, но попробую, думаю тоже ЛТ ставить, если кто-то знает как это возможно сделать в 2007, буду очень благодарен
SkaBoy вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Форматирование текста по ширине

Реклама i
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Курсор в конец редактируемого текста? zlobandr AutoCAD 15 13.05.2008 16:41
Изменение форматированного текста посредством lisp Tramp LISP 4 03.03.2006 11:28
Форматирование текста Kostolom AutoCAD 11 28.04.2005 22:41
Форматирование текста Борода AutoCAD 16 26.05.2004 16:33