Изменение значений атрибутов для вставки блока
(defun ru-block-change-attributes (block_ent att_list / blk itm atts)
;|
Изменение значений атрибутов
block_ent - примитив или vla-objeckt блока
att_list - список точечных пар "имя_атрибута" . "значение_атрибута"
(setq block_ent (entlast))
(setq la (cons "Tag" "Значение"))
("Tag" . "Значение")
(cdr la)
|;
;; Универсально - и примитив и объект
(if (= (type block_ent) 'vla-object)
(setq blk block_ent)
(setq blk (vlax-ename->vla-object block_ent)
) ;_ end of setq
) ;_ end of if
(if (= (vla-get-hasattributes blk) :vlax-true)
(progn
(setq atts
(vlax-safearray->list
(vlax-variant-value (vla-getattributes blk))
) ;_ end of vlax-SafeArray->list
) ;_ end of setq
;; atts - списоб объектов
(foreach item att_list
(mapcar
(function (lambda (x)
(if
(= (strcase (car item)) (strcase (vla-get-tagstring x)))
(vla-put-textstring x (cdr item))
) ;_ end of if
) ;_ end of lambda
) ;_ end of function
atts
) ;_ end of mapcar
) ;_ end of foreach
(vla-update blk)
) ;_ end of progn
) ;_ end of if
) ;_ end of defun