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:
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!!!
É, 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
;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!!!
Nenhum comentário:
Postar um comentário