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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Установить фиксированную высоту текста в LISP

Установить фиксированную высоту текста в LISP

Ответ
Поиск в этой теме
Непрочитано 26.11.2023, 10:48 #1
Установить фиксированную высоту текста в LISP
Ingpro
 
Регистрация: 11.07.2022
Сообщений: 775

Всем доброго дня!
LISP выводит в чертёж сумму длин выбранных объектов. Высота текста в коде -5.
Иногда приходят чертежи в масштабе 1:1, а по факту всё в М1:100.
При вызове команды и выборе объектов, вставка текста осуществляется высотой 5, если масштаб чертежа - 1:1.
Если в этом же чертеже установить М1:100, то высота текста становится 500.
Если заменить в коде 5 на 250, то в М1:100 высота текста становится 25000.
Подскажите, пожалуйста, как подправить лисп, чтобы при любом масштабе чертежа высота текста была 250.
Думаю - дело в этой строке (cons 40 (/ 5.0 (getvar 'cannoscalevalue))), нельзя масштабировать значение?
А значение-то как-раз и масштабируется?..
Код:
[Выделить все]
 (defun c:LPL (/ e ss l p i)
  (if
    (setq l 0.0 ss (ssget '((0 . "LINE,SPLINE,LWPOLYLINE,POLYLINE,ARC,CIRCLE,ELLIPSE"))))
    (progn
      (repeat (setq i (sslength ss))
        (setq e (ssname ss (setq i (1- i)))
              l (+ l (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
        )
      )
      (if
        (setq p (getpoint "\nSpecify a point to insert text: "))
        (entmake
          (list
            '(0 . "TEXT")
            '(100 . "AcDbText")
            (cons 10 (trans p 1 0))
            (cons 40 (/ 5.0 (getvar 'cannoscalevalue)))
            (cons 1 (rtos l))
          )
        )
        (princ (strcat "\nTotal length = " (rtos l)))
      )
    )
  )
  (princ)
)
Просмотров: 717
 
Непрочитано 26.11.2023, 13:08
#2
Кулик Алексей aka kpblc
Moderator

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


Текущий текстовый стиль сделай неаннотативным
(cons 40 (/ 5.0 (getvar 'cannoscalevalue)))
заменить на
(cons 40 250)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 26.11.2023, 14:11
#3
Ingpro


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
заменить на
(cons 40 250)
Это сработало, спасибо Алексей!
Ingpro вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Установить фиксированную высоту текста в LISP



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
_FIND или LISP для конвертации значений текста в метры baaba AutoCAD 2 07.06.2023 11:32
Создание текста Lisp из Delphi GVlad_2021 LISP 5 04.01.2021 09:30
Помогите создать объединенный LISP zloy1653 LISP 0 21.02.2018 12:00
В разных окнах автокад показывает разную высоту текста olish AutoCAD 8 01.12.2011 10:53
Как программно (на lisp) определить высоту текущего шрифта? detrah LISP 7 18.08.2011 10:05