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!!!

Nenhum comentário:

Postar um comentário