Point Groups e Estilos

Sabe aquelas horas na pressa que você precisa colocar todos os pontos em seus devidos point groups, para entao cria os devidos point styles e descobre que tem um milhão de descrições diferentes pra fazer?

É, eu passei por isso agora…. peguei um desenho com montes de descriacções, que não batem com as minhas, claro, e tive de fazer isso…

no segundo eu já desisti e escrevi um programinha pra fazer, esta ai:

mais…

;funcao que devolve um item da colecao, cria se necessario
;byref_is_new é passado por referencia, diz se é novo
(defun get_or_create (collection name byref_is_new / obj)
(
if (vl-catch-all-error-p
(setq obj (vl-catch-all-apply vla-item (list collection name)))
)
(
progn (setq obj (vla-add collection name))
(
set byref_is_new t)
)
(
set byref_is_new nil)
)

obj
)

;funcao principal
;escaneia os pontos do desenho e cria point groups com estilos
;para cada descricao de pontodiferente
;autor: neyton luiz dalle molle
;http://tbn2.blogspot.com
;requer inivars.lsp

(defun c:pgforall (/ p desc QueryBuilder pointstyle pointgroup novo)
;inicializa o controle de erros
(tbn:error-init nil)
;em todos os pontos do desenho faça
(vlax-for p (cvlp-get-points aec-adoc)
(
setq desc (cvlp-get-rawdescription p))
;se adescricao esta setada, faça
(if (/= desc “”)
(
progn
;verifica se existe o pointgroup com este nome
(setq pointgroup
(GET_OR_CREATE
(cvlp-get-pointgroups aec-adoc)
desc
novo))
;se for criado um novo, entao
(if novo
(progn
;constroi o filtro e o estilo
(setq QueryBuilder (cvlp-get-QueryBuilder pointgroup)
pointstyle (GET_OR_CREATE
(cvlp-get-pointstyles aec-adoc)
desc
novo ))
;define as propriedades do novo pointgroup

(cvlp-put-IncludeRawDescriptions QueryBuilder desc)
(
cvlp-put-pointstyle pointgroup pointstyle)
(
cvlp-put-MarkerSize pointstyle 0.0003)

(prompt (strcat “\n” desc))
)
)
)
)
)

;finaliza ocontrole de erros
(tbn:error-restore)
)

Link(s) da(s) subrotina(s) usada(s):
get_or_create, tbn:error-init, aec-adoc, GET_OR_CREATE, tbn:error-restore

pra usar é o de sempre, baixar as lisps extras, colocar tudo num arquivo só e carregar com o APPLOAD

ao usar o comando, ele simplesmente escaneia as descrições dos pontos do civil 3d e vai criando estilos e grupos para cada descrição diferente. no final cada point group tera um estilo e seus pontos filtrados!!!

Deixe um comentário

Carrinho de compras
Rolar para cima