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

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

Вставка линии в ячейку таблицы

Ответ
Поиск в этой теме
Непрочитано 15.05.2019, 15:32 #1
Вставка линии в ячейку таблицы
tujn08
 
Регистрация: 26.12.2013
Сообщений: 284

У кого-нибудь есть такая функция?
Понимаю, что вставить можно только блоком.
Просмотров: 1743
 
Непрочитано 15.05.2019, 15:44
| 1 #2
Кулик Алексей aka kpblc
Moderator

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


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


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
формируй анонимный блок
Код:
[Выделить все]
 ;;;--------------------------------------------------------------------;;;
;;;                   Автор: Калашников Евгений                        ;;;
;;;          Технологическое бюро цеха металлоконструкций              ;;;
;;;        ОАО "Западно-Сибирский металлургический комбинат"           ;;;
;;;                         г.Новокузнецк                              ;;;
;;;             E-Mail:  [email protected]                 ;;;
;;;--------------------------------------------------------------------;;;
                  ; Функция создания и вставки Анонимного блока из набора объектов
(defun unblock
       (pt ss / blkdat bn count obj objd onjn blkname insdat insname)
                  ; pt - точка вставки блока
                  ; ss - набор объектов, из которых нужно создать анонимный блок
                  ;      Набор объектов должен быть создан командой SSGET или SSADD
  (setq    blkdat (list (cons 0 "BLOCK")
             (cons 2 "*Unnn")
             (cons 10 pt)
             (cons 70 1)
           ) ;_ конец list
  ) ;_ конец setq
  (setq bn (entmake blkdat))
  (setq count (- (sslength ss) 1))
  (while (>= count 0)
    (setq obj (ssname ss count))
    (setq objd (entget obj))
    (entdel obj)
    (setq onjn (entmake objd))
    (setq count (- count 1))
  ) ;_ конец while
  (setq blkname (entmake '((0 . "ENDBLK"))))
  (setq    insdat (list (cons 0 "INSERT")
             (cons 2 blkname)
             (cons 10 pt)
;;;               (cons 70 1)
           ) ;_ конец list
  ) ;_ конец setq
  (setq insname (entmake insdat))
) ;_ конец defun
Спасибо.

----- добавлено через ~10 мин. -----
еще https://forum.dwg.ru/showpost.php?p=262006&postcount=13

Код:
[Выделить все]
 (defun c:setub3 (/ ss adoc pt_lst center blk *error* lst)
  (defun *error* (msg)
    (vla-endundomark adoc)
    (princ msg)
    (princ)
    ) ;_ end of defun
  (vl-load-com)
  (vla-startundomark
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of vla-StartUndoMark
  (if (not (vl-catch-all-error-p
             (vl-catch-all-apply '(lambda () (setq ss (ssget "_:L"))))
             ) ;_ end of vl-catch-all-error-p
           ) ;_ end of not
    (progn
      (mapcar '(lambda(item)
      (setq
	ss (list item)
        pt_lst (apply 'append
                      (mapcar
                        '(lambda (x / minp maxp)
                           (vla-getboundingbox x 'minp 'maxp)
                           (list (vlax-safearray->list minp)
                                 (vlax-safearray->list maxp)
                                 ) ;_ end of append
                           ) ;_ end of lambda
                        ss
                        ) ;_ end of mapcar
                      ) ;_ end of append
        center (mapcar '(lambda (a b) (/ (+ a b) 2.))
                       (list (apply 'min (mapcar 'car pt_lst))
                             (apply 'min (mapcar 'cadr pt_lst))
                             (apply 'min (mapcar 'caddr pt_lst))
                             ) ;_ end of list
                       (list (apply 'max (mapcar 'car pt_lst))
                             (apply 'max (mapcar 'cadr pt_lst))
                             (apply 'max (mapcar 'caddr pt_lst))
                             ) ;_ end of list
                       ) ;_ end of mapcar
        blk    (vla-add (vla-get-blocks adoc)
                        (vlax-3d-point center)
                        "*U"
                        ) ;_ end of vla-add
        ) ;_ end of setq
      (vla-copyobjects
        adoc
        (vlax-make-variant
          (vlax-safearray-fill
            (vlax-make-safearray vlax-vbobject (cons 0 (1- (length ss))))
            ss
            ) ;_ end of vlax-safearray-fill
          ) ;_ end of vlax-make-variant
        blk
        ) ;_ end of vla-copyobjects
      (vla-insertblock
        (vla-objectidtoobject adoc (vla-get-ownerid (car ss)))
        (vlax-3d-point center)
        (vla-get-name blk)
        1.0
        1.0
        1.0
        0.0
        ) ;_ end of vla-insertblock
		 )
	  (setq
        lst     (mapcar 'vlax-ename->vla-object
                       (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
                       ) ;_ end of mapcar
	)
	      )
      
      (mapcar 'vla-erase lst)
      ) ;_ end of and
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  )
tujn08 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Вставка линии в ячейку таблицы

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA, сумма атрибутов и вставка в ячейку zloy1653 Программирование 3 06.04.2018 08:44
Сумма атрибутов в ячейку таблицы zloy1653 LISP 2 18.03.2018 14:06
Программное создание таблицы AutoCAD. Муки творчества. Do$ Программирование 46 03.08.2016 16:48
вставка таблицы из MS Excell baaba Готовые программы 23 11.03.2014 19:47
Вставка блока с размером линии nolte Программирование 3 19.05.2013 11:47