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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Добавить текст под размерную линию

Добавить текст под размерную линию

Ответ
Поиск в этой теме
Непрочитано 02.03.2015, 14:00 #1
Добавить текст под размерную линию
olga87
 
Регистрация: 28.05.2007
Сообщений: 229

Здравствуйте Уважаемые программисты!
Подскажите пожалуйста, как исправить нижеприведенный лисп (AutoCAD 2008) для добавления текста под размерную линию, но с сохранением текущего размера.
Сейчас этот код при добавлении текста под размер сбрасывает размерное число до фактического ("<>"), а мне хотелось бы чтобы размерное число (какое бы оно ни было) сохранилось с добавлением текста под размерную линию.
Спасибо!

(defun c:addtext (/ line1 line2)
(setq line1 (getstring T "\nВведите вторую строку для размера: "))
(if (= line1 nil)(command))
(setq line2 (strcat "<>" "\\X" line1))
(command "_dimedit" "_n" line2)
)
Просмотров: 2852
 
Непрочитано 02.03.2015, 19:31
#2
VVA

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


Держи
Код:
[Выделить все]
(defun c:addtext (/ line1 line2) 
 (dimtexaddsuffix nil)
  (princ)
 )
;;Изменяет Text Override выбранных размеров
;; SuffixText - string to change SuffixText
;;               or nil to ask  SuffixText
(defun dimtexaddsuffix ( SuffixText / str Isrus ss lst *error* e1 i)
   (defun *error* (msg)(princ msg)
    (vla-endundomark(vla-get-activedocument (vlax-get-acad-object)))) ;_ end of defun
  (vl-load-com)
  (vla-startundomark(vla-get-activedocument (vlax-get-acad-object)))
  (setq Isrus (= (getvar "DWGCODEPAGE") "ANSI_1251"))
  (if (null SuffixText)
  (setq SuffixText
         (getstring t
                    (if Isrus
                      "\nНаберите значение второй строки для размера: "
                      "\nType text's second line value : "
                    ) ;_ end of if
         ) ;_ end of getstring
  ) ;_ end of setq
    )
 (if (= SuffixText nil)(setq SuffixText "")) ;_ end of if
 (if (and
       (= (type SuffixText) 'STR)
       (if Isrus
         (princ "\nВыберите размеры для замены SuffixText")
         (princ "\nSelect dimention for change SuffixText")
         ) ;_ end of if
       (setq ss (ssget "_:L" '((0 . "*DIMENSION"))))
       )
   (progn
   (setq i '-1)
  (repeat (sslength ss)
    (setq e1 (ssname ss (setq i (1+ i))))
    (if (eq (cdr(assoc 1 (setq lst (entget e1)))) "")
      (setq str (strcat "<>\\X" SuffixText))
      (setq str (strcat (cdr(assoc 1 lst)) "\\X" SuffixText))
      )
      (setq lst (subst (cons 1 str)(assoc 1 lst) lst))
    (entmod lst)(entupd e1)
  ) ;_ end of repeat
   )
   )
  (setq ss nil)
  (vla-endundomark
    (vla-get-activedocument (vlax-get-acad-object))
  ) ;_ end of vla-EndUndoMark
  (princ)
) ;_ end of defun
(princ "\nType addtext in command line")(princ)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 04.03.2015, 00:02
#3
olga87


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


Спасибо большое!
olga87 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Добавить текст под размерную линию

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст вдоль полилинии или сплайна (по кривой) Denioska AutoCAD 48 10.09.2022 21:55
LISP. Выравнивание текста по двум точкам. Krieger Готовые программы 10 24.12.2011 16:02
Как привязать размерную линию к нулю Eroshind AutoCAD 30 29.07.2010 15:48
Как вынести размерную линию на определенное расстояние? hotik AutoCAD 9 08.07.2010 20:54
Как сделать размерную линию без значения? totalz AutoCAD 10 28.01.2010 09:15