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

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

Добавление в чертеж длины полилинии

Ответ
Поиск в этой теме
Непрочитано 01.08.2007, 11:25 #1
Добавление в чертеж длины полилинии
Кочетков Андрей
 
Java/Kotlin backend
 
Регистрация: 03.02.2006
Сообщений: 5,736

Господа программисты, нужна ваша помощь.

Мне нужна программа которая делает следующее:

тыркаем в полилинию, затем тыркаем в произвольную точку чертежа и в этой точке создается текст, содержимым которого является длина раннее "тыркнутой" полилинии.

Попытался сам сделать, но на создании текста застопорился, а на эксперименты нет времени.
Просмотров: 16227
 
Непрочитано 01.08.2007, 11:28
#2
Кулик Алексей aka kpblc
Moderator

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


_.field :?:
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.08.2007, 12:15
#3
Кочетков Андрей

Java/Kotlin backend
 
Регистрация: 03.02.2006
Сообщений: 5,736


не не
с филдами это процесс долгий и увлекательный
а моя задача быстро пробежаться по нескольким полилиниям и расставить здесь же их длины.
Я начал вот такой код, дошел до создания текста и умер

(defun cllenins ()
(setq len (vla-get-length (vlax-ename->vla-object (car (entsel)))))
Кочетков Андрей вне форума  
 
Непрочитано 01.08.2007, 12:26
#4
Кулик Алексей aka kpblc
Moderator

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


Хорошо Тебе программно создавать просто тексты или филды надо?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.08.2007, 12:30
#5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


>Кочетков Андрей
Какая проблема быстренько пробежаться field'ми.
Код:
[Выделить все]
;_PolyLine Lenngth
;_http://forum.dwg.ru/showthread.php?p=156824#post156824
(defun C:PLL (/ en fld pt txt)
  (vl-load-com)
  (and
    (setq en (car (entsel "\nУкажите полилинию")))
    (wcmatch (cdr (assoc 0 (entget en))) "*POLYLINE")
    (setq fld (strcat
                "%<\\AcObjProp Object(%<\\_ObjId "
                (vl-princ-to-string
                  (vla-get-objectid (vlax-ename->vla-object en))
                  ) ;_ vl-princ-to-string
                ">%).Length \\f \"%lu2%pr2\">%"
                ) ;_ strcat
          ) ;_ setq
    (or (initget 1) t)
    (setq pt (getpoint "\nУкажи точку текста: "))
    (setq pt (trans pt 1 0))
    (setq txt (entmakex
      (list
        (cons 0 "TEXT")
        (cons 100 "AcDbEntity")
        (cons 100 "AcDbText")
        (cons 72 0)           ;_ выравнивание влево
        (cons 1 fld)
        ;(cons 7 style) ;_Текущий стиль
        ;(cons 8 layer) ;_Текущий слой
        (cons 10 pt)
        (cons 11 pt)
        (cons 40 (getvar "TEXTSIZE")) ;_Текущей высотой текста
        ) ;_ list
      ) ;_ entmakex
          )
    ) ;_ and
  (vl-cmdf "_updatefield" txt "")
  (princ)
  ) ;_endof defun

Последний раз редактировалось VVA, 19.09.2015 в 11:16.
VVA вне форума  
 
Непрочитано 01.08.2007, 12:31
#6
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 307


Нужна длина только полилинии или еще какие варианты нарисуются?
Какой текст создавать: мульти, простой, на основе уже имеющегося текущего стиля текста?
В общем нужна куча уточнений.

PS: могу попробовать, но быстро не обещаю.

PPS: а, пожоже не у меня одного обед. Пока читал и отвечал уже и прог накидали.
Олег К. вне форума  
 
Непрочитано 01.08.2007, 12:31
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Точнось правь в этом куске
Код:
[Выделить все]
(setq fld (strcat
                "%<\\AcObjProp Object(%<\\_ObjId "
                (vl-princ-to-string
                  (vla-get-objectid (vlax-ename->vla-object en))
                  ) ;_ vl-princ-to-string
                ">%).Length \\f \"%lu2%pr2\">%"
                ) ;_ strcat
          ) ;_ setq
pr2 - 2 знака после запятой
pr3 - 3 знака после запятой
VVA вне форума  
 
Автор темы   Непрочитано 01.08.2007, 12:38
#8
Кочетков Андрей

Java/Kotlin backend
 
Регистрация: 03.02.2006
Сообщений: 5,736


Я вас всех люблю
Спасибо

Володь, а можно добавить в обработку LINE и LWPOLYLINE ?
Кочетков Андрей вне форума  
 
Непрочитано 01.08.2007, 12:47
#9
Кулик Алексей aka kpblc
Moderator

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


Те же яйца, только в профиль:
Код:
[Выделить все]
(defun c:flen1 (/ adoc ent pt *error*)
               ;|
*    Вставка полем с последовательным выбором полилиний "по одной"
|;
  (defun loc:unhighlight (ent)
    (vl-catch-all-apply
      '(lambda ()
         (if ent
           (vla-highlight
             (cond
               ((= (type ent) 'ename) (vlax-ename->vla-object ent))
               (t ent)
               ) ;_ end of cond
             :vlax-false
             ) ;_ end of vla-highlight
           ) ;_ end of if
         ) ;_ end of lambda
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of defun

  (defun *error* (msg)
    (loc:unhighlight ent)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (while
    (and
      (not (vl-catch-all-error-p
             (vl-catch-all-apply
               '(lambda ()
                  (setq ent (car (entsel "\nУкажите полилинию <Отмена> : ")))
                  ) ;_ end of lambda
               ) ;_ end of vl-catch-all-apply
             ) ;_ end of vl-catch-all-error-p
           ) ;_ end of not
      ent
      (wcmatch (strcase (cdr (assoc 0 (entget ent)))) "*LINE")
      (setq ent (vlax-ename->vla-object ent))
      ((lambda () (vla-highlight ent :vlax-true) t))
      (not (vl-catch-all-error-p
             (vl-catch-all-apply
               '(lambda ()
                  (setq pt (getpoint "\nТочка вставки результата <Отмена> : "))
                  ) ;_ end of lambda
               ) ;_ end of vl-catch-all-apply
             ) ;_ end of vl-catch-all-error-p
           ) ;_ end of not
      pt
      ) ;_ end of and
     (vla-startundomark adoc)
     (loc:unhighlight ent)
     (vla-addmtext
       (vla-objectidtoobject adoc (vla-get-ownerid ent))
       (vlax-3d-point pt)
       0
       (strcat "%<\\AcObjProp Object(%<\\_ObjId "
               (vl-princ-to-string (vla-get-objectid ent))
               ">%).Length \\f \"%.30q0\">%"
               ) ;_ end of strcat
       ) ;_ end of vla-AddMText
     (vla-endundomark adoc)
     ) ;_ end of while
  (loc:unhighlight ent)
  (princ)
  ) ;_ end of defun

(defun c:tlen1 (/ adoc ent pt *error*)
               ;|
*    Вставка текстом с последовательным выбором полилиний "по одной"
|;
  (defun loc:unhighlight (ent)
    (vl-catch-all-apply
      '(lambda ()
         (if ent
           (vla-highlight
             (cond
               ((= (type ent) 'ename) (vlax-ename->vla-object ent))
               (t ent)
               ) ;_ end of cond
             :vlax-false
             ) ;_ end of vla-highlight
           ) ;_ end of if
         ) ;_ end of lambda
      ) ;_ end of vl-catch-all-apply
    ) ;_ end of defun

  (defun *error* (msg)
    (loc:unhighlight ent)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (while
    (and
      (not (vl-catch-all-error-p
             (vl-catch-all-apply
               '(lambda ()
                  (setq ent (car (entsel "\nУкажите полилинию <Отмена> : ")))
                  ) ;_ end of lambda
               ) ;_ end of vl-catch-all-apply
             ) ;_ end of vl-catch-all-error-p
           ) ;_ end of not
      ent
      (wcmatch (strcase (cdr (assoc 0 (entget ent)))) "*LINE")
      (setq ent (vlax-ename->vla-object ent))
      ((lambda () (vla-highlight ent :vlax-true) t))
      (not (vl-catch-all-error-p
             (vl-catch-all-apply
               '(lambda ()
                  (setq pt (getpoint "\nТочка вставки результата <Отмена> : "))
                  ) ;_ end of lambda
               ) ;_ end of vl-catch-all-apply
             ) ;_ end of vl-catch-all-error-p
           ) ;_ end of not
      pt
      ) ;_ end of and
     (vla-startundomark adoc)
     (loc:unhighlight ent)
     (vla-addtext
       (vla-objectidtoobject adoc (vla-get-ownerid ent))
       (rtos (vla-get-length ent) 2)
       (vlax-3d-point pt)
       2.5; высота текста. Не стал делать проверку на высоту текущего текстового стиля :)
       ) ;_ end of vla-AddMText
     (vla-endundomark adoc)
     ) ;_ end of while
  (loc:unhighlight ent)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 01.08.2007, 12:53
#10
Кочетков Андрей

Java/Kotlin backend
 
Регистрация: 03.02.2006
Сообщений: 5,736


Во, пашить!
Спасибо.

Из всего кода я понял только строчку (defun c:tlen1 ())
Кочетков Андрей вне форума  
 
Непрочитано 01.08.2007, 12:57
#11
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


>Кочетков Андрей Если актуально, то строчку
(wcmatch (cdr (assoc 0 (entget en))) "*POLYLINE")
заменить
(wcmatch (cdr (assoc 0 (entget en))) "*POLYLINE,LINE")
А вот еще вариантик. Быстро переделал отсюда
http://www.autocad.ru/cgi-bin/f1/board.cgi?t=36741nT
Пишет длину вначале плиний и линии и заносит в гиперссылку. Подвел мышу и посмотрел
Код:
[Выделить все]
;Report Polyline Length
; Ф-ция mip-put-hyperlink
; Возвращает nil.
; Arguments [Type]:
;   Ename = Object [ENAME]
;  URLDescription = Строка [STR]
(DEFUN mip-put-hyperlink ( ENAME URLDescription )
 (if (eq (type ENAME) 'ENAME)
   (setq ENAME (vlax-ename->vla-object ENAME)))
  (vla-add (vla-get-hyperlinks ENAME) "about:blank" URLDescription)
  )      
(defun C:RPL (/ ss items i e len )
(vl-load-com)
(if (setq ss (ssget '((0 . "*POLYLINE,LINE"))))
(progn
  (setq items (mapcar (function vlax-ename->vla-object)
	            (vl-remove-if (function listp)
		      (mapcar (function cadr) (ssnamex ss))))
	  ss nil)
(mapcar '(lambda (obj / pnt txt)
(setq pnt (vlax-curve-getStartPoint obj) ;_ТОчка начала полилинии
      pnt (list (car pnt) (cadr pnt) 0.0)
      pnt (mapcar '+ pnt '(1 0 0)) ;_ 1 ед правее
      )
(setq txt (entmakex(list  '(0 . "TEXT")
 '(100 . "AcDbEntity")
 '(100 . "AcDbText")
  (cons 10 pnt)
  (cons 1 (setq len (rtos (vla-get-Length obj) 2 3)))     ;_Вместо 3 свою точность после запятой
  (cons 40 3)           ;_!!! Здесь укажи свою высоту текста вместо 3
  (cons 8 "СлойТекста") ;_!!! Здесь укажи слой текста
  '(72 . 0)             ;_Выравнивание влево
  (cons 50 0)           ;_Угол поворота
  (cons 11 pnt)         ;_ТОчка выравнивания
     )
        )
      )
(if (and txt
         (setq txt (vlax-ename->vla-object txt))
         (vlax-write-enabled-p txt)
         )
      (mip-put-hyperlink obj len))
           )
        items
        )
)
)
(princ)
)
VVA вне форума  
 
Автор темы   Непрочитано 01.08.2007, 13:09
#12
Кочетков Андрей

Java/Kotlin backend
 
Регистрация: 03.02.2006
Сообщений: 5,736


Интересный вариант, спасибо, попробую применить.
Кочетков Андрей вне форума  
 
Непрочитано 01.08.2007, 13:12
#13
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Кочетков Андрей
Во, пашить!
Спасибо.

Из всего кода я понял только строчку (defun c:tlen1 ())
Там 2 функции - одна проставляет текстом, вторая - полем. Соответственно имена tlen1 и flen1
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.08.2007, 13:49
#14
Neznayka


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


Мне А. Ривилис сделал лисп, похожий, от которого я без ума, каждый день юзаю. Работает по такому же принципу, только в таблицу вставляет длину. Ведь так лучше, можно кое-какие действия над длинами городить.
Цитата:
(defun C:LNG2TLB ( / en obj s row col)
(vl-load-com)
(cond
((and (setq en (car (entsel "\nВыберите таблицу: ")))
(= (cdr (assoc 0 (entget en))) "ACAD_TABLE"))
(setq obj (vlax-ename->vla-object en))
(while (and (setq en (car (entsel "\nВыберите линию (ENTER - завершение): " )))
(wcmatch (cdr (assoc 0 (entget en))) "*LINE"))
(setq s (strcat
"%<\\AcObjProp Object(%<\\_ObjId "
(vl-princ-to-string (vla-get-objectid (vlax-ename->vla-object en)))
">%).Length>%"
))
(if (setq p (getpoint "\nУкажите ячейку таблицы: " ))(progn
(if (= :vlax-true (vla-HitTest obj
(vlax-3d-point (trans p 1 0)) (vlax-3d-point (trans (getvar "VIEWDIR") 1 0)) 'row 'col))
(vla-SetText obj row col s)
)
)) ;_endof if progn
)
)
(t
(princ "\nЭто не таблица!")
)
)
(princ)
)
пользуясь случаем укажите где можно поменять кол-во знаков после запятой. а то 5 много. И было бы просто великолепно, если бы вначале не требовалось выбирать таблицу, а автоматом выбирало первую и единственную таблицу
Neznayka вне форума  
 
Непрочитано 01.08.2007, 14:03
#15
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


>Neznayka держи
Код:
[Выделить все]
(defun C:LNG2TLB ( / en obj s row col) 
(vl-load-com) 
(cond 
((and (setq en (car (entsel "\nВыберите таблицу: "))) 
(= (cdr (assoc 0 (entget en))) "ACAD_TABLE")) 
(setq obj (vlax-ename->vla-object en)) 
(while (and (setq en (car (entsel "\nВыберите линию (ENTER - завершение): " ))) 
(wcmatch (cdr (assoc 0 (entget en))) "*LINE"))
(setq s (strcat 
                "%<\\AcObjProp Object(%<\\_ObjId " 
                (vl-princ-to-string 
                  (vla-get-objectid (vlax-ename->vla-object en)) 
                  ) ;_ vl-princ-to-string 
                ">%).Length \\f \"%lu2%pr2\">%" 
                ) ;_ strcat 
          ) ;_ setq  
(if (setq p (getpoint "\nУкажите ячейку таблицы: " ))(progn 
(if (= :vlax-true (vla-HitTest obj 
(vlax-3d-point (trans p 1 0)) (vlax-3d-point (trans (getvar "VIEWDIR") 1 0)) 'row 'col)) 
(vla-SetText obj row col s) 
) 
)) ;_endof if progn 
) 
) 
(t 
(princ "\nЭто не таблица!") 
) 
) 
(princ) 
)
Точнось правь в этом куске
Код:
[Выделить все]
(setq s (strcat 
                "%<\\AcObjProp Object(%<\\_ObjId " 
                (vl-princ-to-string 
                  (vla-get-objectid (vlax-ename->vla-object en)) 
                  ) ;_ vl-princ-to-string 
                ">%).Length \\f \"%lu2%pr2\">%" 
                ) ;_ strcat 
          ) ;_ setq
pr2 - 2 знака после запятой
pr3 - 3 знака после запятой
VVA вне форума  
 
Непрочитано 01.08.2007, 14:11
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Тут мои попытки смены владельца в уже существующем поле.
Типа есть полилиния и текст в полем ее длинны. А нужно чтобы в этом текте была длинна другой полилинии.

Код:
[Выделить все]
;_CHange Owner
(defun C:CHO ( / oldobjID newobjID txt)
(and
  (setq oldobjID (car(entsel "\nSelect old object:")))
  (setq newobjID (car(entsel "\nSelect new object:")))
  (setq txt (car(nentsel "\nSelect text:")))
  (change_owner_in_field oldobjID newobjID txt)
    )
  (princ)
  )
;_ Ф-ция заменяет владельца в поле
;_ Аргументы
;_   oldobjID - имя примитива старого владельца ID [ENAME]
;_   newobjID - имя примитива нового владельца ID [ENAME]
;_   txt      - имя примитива хранителя поля (текст или атрибут) [ENAME],
;_              возвращаемое nentsel
;_ Return
;_ T - поле обновлено
;_ nil -нет
;;;!!! Важно: новый владелец должен обладать свойством, используемым в поле

(defun change_owner_in_field ;_Ф-ция заменяет владельца в поле
                             (oldobjID ;_ Старый владелец ENAME
                              newobjID ;_ Новый владелец   ENAME
                              txt ;_ Хранитель поля (текст или атрибут) ENAME,
                                  ;_ возвращаемое nentsel
                              /           dict ;_ Словарь хранителя поля
                              field ;_ Словарь самого поля
                              field_data ;_ Значение поля (entget field)
                              New_field_data ;_Новый список для entmod
                              property ;_ Название свойства объекта в поле
                             )
  (and
  (setq dict (cdr (assoc 360 (entget txt)))) ;_Ename Dictionary Словарь примитива
  (setq dict
         (cdr (assoc 360 (member '(3 . "ACAD_FIELD") (entget dict))))
  ) ;_Enable Field Dictionary Есть поля в объекте
  (setq field (cdr (assoc 360 (member '(3 . "TEXT") (entget dict))))) ;_ Field Record Запись поля
  ;_Sub Field Records Вторичные записи полей
  (setq sub_field_list (mapcar 'cdr (vl-remove-if '(lambda(x)(/= (car x) 360))(entget field))))
    ;(setq field (cdr (assoc 360 (entget field)))) ;_Sub Field Record Вторичная запись поля
  (mapcar '(lambda(field_data)
  (setq field_data (entget field_data))
  (if (and (member (cons 330 oldobjID) field_data)
           (member (cons 331 oldobjID) field_data)
           (setq property
                  (vl-princ-to-string
                    (cdr (assoc
                           1
                           (member '(6 . "ObjectPropertyName") field_data)
                         ) ;_ end of assoc
                    ) ;_ end of cdr
                  ) ;_ end of VL-PRINC-TO-STRING
           ) ;_ end of setq
           (vlax-property-available-p
             (vlax-ename->vla-object newobjID)
             property
           ) ;_ end of vlax-property-available-p
      ) ;_ end of and
    (progn
      (setq New_field_data nil)
      (foreach itm field_data
        (cond
          ((and (= (car itm) 330)
                (equal (cdr itm) oldobjID)
           ) ;_ end of and
           (setq New_field_data
                  (append New_field_data
                          (list (cons 330 newobjID))
                  ) ;_ end of append
           ) ;_ end of setq
          )
          ((and (= (car itm) 331)
                (equal (cdr itm) oldobjID)
           ) ;_ end of and
           (setq New_field_data
                  (append New_field_data
                          (list (cons 331 newobjID))
                  ) ;_ end of append
           ) ;_ end of setq
          )
          (t (setq New_field_data (append New_field_data (list itm))))
        ) ;_ end of cond
      ) ;_ end of foreach
      (entmod New_field_data)
      (vl-cmdf "_updatefield" txt "")
      ;(while (> (getvar "CMDACTIVE") 0)(command ""))
      (entupd txt)
    ) ;_ end of progn
    nil
  ) ;_ end of if
             )
          sub_field_list
          )
  )
) ;_ end of defun
VVA вне форума  
 
Непрочитано 01.08.2007, 14:18
#17
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 307


Не, ну что ты будешь делать, а! Все время они опережают! Одно слово - гуру. Вы там вообще работаете, или это домашние заготовки были?

Есть у меня один вопрос, может кто просветит.
Функция vla-get-length возвращает длину объектов, у которых есть свойство Length. Для регионов, дуг, эллипсов и сплайнов используются другие функции. Не появилось ли случайно в 2007/8 КАДах общей функции для взятия длины объекта?
Олег К. вне форума  
 
Непрочитано 01.08.2007, 14:24
#18
Кулик Алексей aka kpblc
Moderator

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


Попробуй для таких штукенций использовать нечто типа (vlax-curve-getdistanceatpoint ent (vlax-curve-getendpoint ent))
P.S. Пишу без када, так что проверь имена функций.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.08.2007, 14:28
#19
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Только вместо point param
Код:
[Выделить все]
(and
(setq obj (vlax-ename->vla-object(car(entsel))))
(princ "\nДлина: ")(princ
(vlax-curve-getDistAtParam obj
  (vlax-curve-getEndParam obj)))
)
VVA вне форума  
 
Непрочитано 01.08.2007, 15:55
#20
Олег К.

Инженер-теплотехник
 
Регистрация: 17.08.2006
Смоленск
Сообщений: 307


Да, именно эти функции я использую для эллипсов и сплайнов. Но не подходит для мультилиний, вьюпортов... Извините, может не совсем точно был задан вопрос, интересует именно одна функция работающая со всеми объектами. Вьюпорт это конечно слишком (хотя почему? обычный многоугольник), может хоть для мультилинии упростили.
Если нет такой функции, ну и ладно, раньше ведь обходились.
Олег К. вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Добавление в чертеж длины полилинии

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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