Тема: подписи к коммуникациям

Привет всем...из Казахстана..
У меня такой вопрос...
Вот например: обозначаем на плане в масштабе 1:500 водопровод...
Есть тип линии...вот такой... --------В-------В-------
Нужно подписи к трубе сделать....Ст.150 и (-0.8)
Можно ли в линии задать...чтобы текст автоматически отрисовывался снизу и сверху линии,и чтобы можно было его редактировать...
Это для того чтобы не копировать,и не редактировать постоянно..
Спасибо...

Re: подписи к коммуникациям

или как-то иначе проще сделать?а?

Re: подписи к коммуникациям

Это можно сделать с помощью LISP-программы. Достаточно просто (на первый взгляд) - располагать любые дополнительные тексты над или (и) под линией.
Вот так это делается в ruCAD

(defun START (/ txt_list)
  (ru-app-begin)
  (setq txt "")
  (while
      (setq txt_list (ru-get-string  "Текст для написания НАД линией" txt))
      (ru-dlg-get-two-string "Ввод двух строк"  "Над линией" "В"  t   "Под линией"  "100"   t
    t
    "common\\options\\ru_trass_marks.xml"
    "common\\options\\ru_dia_text.xml"
       )
     (ru-draw-txt-up-down-line txt_list)
  )
  (ru-app-end)
  (princ)
)

Здесь выводится диалоговое окно для ввода двух строк. Строки можно вводить вручную или выбирать из справочника. Потом надо указать точку на линии и в этом месте, над и под линией, будут написаны текстовые примитивы требуемого размера и ориентации вдоль линии (чтоб не вверх ногами).
Разумеется, этим кодом нельзя напрямую воспользоваться - это часть системы и ответ на вопрос "можно ли".

Re: подписи к коммуникациям

В Acade не работает....я в Лиспе мало соображаю....

Re: подписи к коммуникациям

Так так же проще это сделать господа..?

Re: подписи к коммуникациям

> Руслан
Скопируй код в блокнот и сохрани как pipelabel.lsp
В панели Tools->Load Application в окне выберешь этот файл и загрузишь кнопкой Load
Файл автозапустится, смотри подсказки в командной строке

;;===================pipelabel.lsp=====================;;
;; by Fatty T.O.H. () 2005 * all rights removed
(defun alg-ang (obj pnt)
(angle '(0. 0. 0.)(vlax-curve-getfirstderiv
          obj
          (vlax-curve-getparamatpoint
        obj
        (vlax-curve-getclosestpointto obj pnt)
          )
        )
  )
)
(defun pipelabel  (/ *error* adoc ang ent hgt obj p1 p2 pt txt1 txt2)
  (vl-load-com)
  ;; error trap function by Joe Bourke
  (defun *error*  (error)
    (cond
      ((not error))
      ((wcmatch (strcase error) "*QUIT*,*CANCEL*"))
      (1 (princ (strcat "\nERROR: " error)))
      )
    (vla-endundomark
      (vla-get-activedocument
    (vlax-get-acad-object)))
    (princ)
    )    ;end error
  (or adoc
      (setq adoc
         (vla-get-activedocument
           (vlax-get-acad-object))))
  (vla-endundomark adoc)
  (vla-startundomark adoc)
  (setq hgt (getreal "\nУказать высоту текста:"))
  (setq txt1 (getstring T "\nТекст сверху линии: "))
  (setq txt2 (getstring T "\nТекст снизу линии: "))
  (while
    (setq ent (entsel "\nУказать точку для вставки текста на линии >>"))
     (setq pt (cadr ent))
     (setq obj (vlax-ename->vla-object (car ent))
       ang (alg-ang obj  pt)
       )
    (if (> (* pi 1.5) ang (/ pi 2))
    (setq ang (- ang pi))
)
     (setq p1 (polar pt (+ ang (/ pi 2)) (* hgt 0.8725)))
     (setq p2 (polar pt (- ang (/ pi 2)) (* hgt 0.8725)))
     (entmakex (list
         (cons 0 "TEXT")
         (cons 100 "AcDbEntity")
         (cons 100 "AcDbText")
         (cons 1 txt1)
         (cons 10 p1)
         (cons 11 p1)
         (cons 40 hgt)
         (cons 50 ang)
         (cons 71 0)
         (cons 72 1)
         (cons 73 2)
         )
           )
     (entmakex (list
         (cons 0 "TEXT")
         (cons 100 "AcDbEntity")
         (cons 100 "AcDbText")
         (cons 1 txt2)
         (cons 10 p2)
         (cons 11 p2)
         (cons 40 hgt)
         (cons 50 ang)
         (cons 71 0)
         (cons 72 1)
         (cons 73 2)
         )
           )
     )
  (*error* nil)
  (princ)
  )
;autorun:
(pipelabel)
(princ)

Исходный код будет выложен здесь
http://www.cadforyou.spb.ru/index.php?c … grams_page
~'J'~

Re: подписи к коммуникациям

подпись конечно делает,но где то в стороне,а не там где надо,надо искать и опять же тащить на место...)))

Re: подписи к коммуникациям

> Руслан
Сделай блок с двумя атрибутами. Диаметр и материал. Вставляешь с палитры инструментов. В свойствах вставки установить предложение поворота Prompt Rotation. Три нажатия и блок на линии. Появляется окошко ввода в котором вводишь характеристику.

Re: подписи к коммуникациям

очень интригующе,но я не умею...можешь мне скинуть?