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

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

Как вписать тест в рамку

Ответ
Поиск в этой теме
Непрочитано 09.05.2011, 17:02
Как вписать тест в рамку
Ruslan19857
 
Регистрация: 01.05.2011
Сообщений: 15

Здраствуйте. Есть прямоугольник. Хочу вписать туда одностр. текст, мне это удается с помощью. Текс...Выравнивание...Поширине...Далее задаю Начало в нижнем левом углу прямоугольника, конец в правом нижнем углу. И высоту теста, по высоте прямоугольника. Все хорошо, кроме того что НЕКОТОРЫЕ буквы в нижнем регистре выпадают за нижнюю грань прямоугольника. Это буквы р, ф и тому подобные. Как быть?
__________________
Любители Autocad, Пишите мне в ICQ 493101298:welcome:
Просмотров: 30550
 
Непрочитано 12.05.2011, 08:22
#21
Лиспер


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


Как вариант, накидал по-быстрому:
Код:
[Выделить все]
 (vl-load-com)

(defun txtin (/ *error* adoc ent pt1 pt2 minp maxp offset)

  (defun *error* (msg)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun

  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (if (and (= (type (setq ent (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (ssname (ssget "_+.:S:E:L" '((0 . "TEXT"))) 0)
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'ename
              ) ;_ end of =
           (= (type (setq pt1 (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (getpoint "\nУкажите одну из точек диагонали прямоугольника <Отмена> : ")
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'list
              ) ;_ end of =
           (= (type (setq pt2 (vl-catch-all-apply
                                (function
                                  (lambda ()
                                    (getpoint pt1 "\nУкажите вторую точку диагонали прямоугольника <Отмена> : ")
                                    ) ;_ end of lambda
                                  ) ;_ end of function
                                ) ;_ end of vl-catch-all-apply
                          ) ;_ end of setq
                    ) ;_ end of type
              'list
              ) ;_ end of =
           ) ;_ end of and
    (progn
      (setq offset 0.2) ; Можно, конечно, было запрашивать, но делать лениво
      (vla-getboundingbox (setq ent (vlax-ename->vla-object ent)) 'minp 'maxp)
      (setq minp (vlax-safearray->list minp)
            maxp (vlax-safearray->list maxp)
            ) ;_ end of setq
      (vla-put-height
        ent
        (abs (* (vla-get-height ent)
                (/ (- (apply '- (mapcar 'cadr (list pt1 pt2)))
                      (* 2. offset)
                      ) ;_ end of -
                   (apply '- (mapcar 'cadr (list minp maxp)))
                   ) ;_ end of /
                ) ;_ end of *
             ) ;_ end of abs
        ) ;_ end of vla-put-height
      (vla-put-scalefactor
        ent
        (abs (/ (- (apply '- (mapcar 'car (list pt1 pt2))) (* 2. offset))
                (apply '- (mapcar 'car (list minp maxp)))
                ) ;_ end of /
             ) ;_ end of abs
        ) ;_ end of vla-put-scalefactor
      ) ;_ end of progn
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 12.05.2011, 08:25
#22
gomer

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


Цитата:
Сообщение от Ruslan19857 Посмотреть сообщение
есть ли более простой инструмент в Autocade для этого..
Есть лисп, а в нем функции grread... vla-getboundingbox и все остальные...
Если тебе для штампа, так это не принципиально... не страшно, если вылазиит...
ну вот =)
gomer вне форума  
 
Непрочитано 12.05.2011, 08:27
#23
Лиспер


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


Ну вот еще, с grread заморачиваться! А потом туда же понадобится еще и привязки прикручивать... Не, мне лень
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 12.05.2011, 08:31
#24
gomer

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


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Ну вот еще, с grread заморачиваться! А потом туда же понадобится еще и привязки прикручивать...
В данном случае привязки не нужны как раз... но эта тема не для этой ветки
gomer вне форума  
 
Непрочитано 12.05.2011, 09:27
#25
sbi


 
Регистрация: 27.04.2008
SPB
Сообщений: 3,285
Отправить сообщение для sbi с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
В данном случае привязки не нужны как раз... но эта тема не для этой ветки
Offtop: "Как вписать текст в траурную рамку"-это не для артистов. "Люди гибнут за металл"
__________________
С уважением sbi
sbi вне форума  
 
Автор темы   Непрочитано 12.05.2011, 12:39
#26
Ruslan19857


 
Регистрация: 01.05.2011
Сообщений: 15
<phrase 1=


Лиспом пока не пользуюсь. Нашел для себя оптимальное решение. С помощью команды МАСШТЕКСТ _scaletext.
__________________
Любители Autocad, Пишите мне в ICQ 493101298:welcome:
Ruslan19857 вне форума  
 
Непрочитано 12.05.2011, 12:50
#27
Лиспер


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


Забавная команда - в 2008 ее не нашел. А другие версии сейчас не запустить
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 12.05.2011, 23:25
#28
gomer

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


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Забавная команда - в 2008 ее не нашел.
на панели текст нету? в 2004 она есть... насколько я помню и в 2008 тоже
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как вписать тест в рамку

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где правильно вычерчивать рамку А3, в модели или в пространстве листа? Irina1970 AutoCAD 5 08.06.2010 08:48
Тест Штурма (расчёт на устойчивость) Tyugan Расчетные программы 5 12.11.2009 23:53
Как сочетать плоскую рамку чертежа и 3D-тело pgt AutoCAD 2 07.09.2009 20:43
как вписать рамку из model в viewports в layout-е Rascen AutoCAD 2 23.04.2007 12:51
Как вписать в Laout рамку с основной надписью?Автокад 2006 Владимир Егорьев AutoCAD 1 28.12.2006 12:36