draw-insert

A subrotina abaixo, insere um bloco no desenho. Se o parâmetro NOME for dado com o caminho completo do arquivo do bloco, este será procurado no HD…, veja que se você fizer isso, não coloque a extensão DWG no nome do arquivo.


(defun draw-insert (nome pt lay rot esc tags / ent tmp)
(
setq tmp (vl-filename-base nome))
(
if (setq nome (if (tblsearch “block” tmp)
tmp
(findfile (strcat nome “.dwg”))))
(
progn
(setq ent (vla-InsertBlock (get-activespace)
(
vlax-3d-point pt) nome esc esc esc rot)
tags (mapcar list (car tags) (cadr tags)))
(
if (= :vlax-true (vla-get-HasAttributes ent))
(
foreach x (3d-of-vla (vla-GetAttributes ent))
(
if (setq tmp (assoc (vla-get-tagstring x) tags))
(
vla-put-TextString x (cadr tmp)))))
(
if lay (remake-ent ent 8 lay))
(
vla-get-handle ent))))


inserindo o bloco com o método activex, e não com entmake, eu não preciso me preocupar com os atributos do mesmo, pois via entmake, é necessário fazer entmake nas entidades dos atributos do bloco, senão eles não irão ser inseridos no desenho e este bloco ficará sem atributos editáveis… em resumo, torna-se mais prático assim.

Deixe um comentário

Carrinho de compras
Rolar para cima