lisp e comando "grpup"

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

laudemir... Realmente o código que postei anteriormente retornava o nome do 1° grupo no dicionário, tive a ilusão que estava certo pois havia testando num arquivo que só tinha um grupo. Ajustei e agora está funcionado corretamente (eu espero).

[lsp];Seleção do grupo
(setq ent (entget (car (entsel "\nSelecione um grupo; "))))
;Ename do grupo
(setq obj (cons 350 (cdr (assoc 330 ent))))
;Propriedades do grupo
(setq propGrupo (entget (cdr obj)))
;Dicionário de grupos
(setq grupos (entget (cdr (assoc 330 propGrupo))))
;Posição do grupo no dicionário
(setq pos (vl-position obj grupos))
;Nome do grupo
(setq nomeGrupo (cdr (nth (1- pos) grupos)))[/lsp]

ederson... Interessante como é possível escrever códigos totalmente diferentes que chegam ao mesmo resultado.

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson »

Eh... Marcelo, e o seu ficou mais "clean"... Muito bacana!
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

Mensagem por laudemir »

Obrigado Ederson e Marcelo.....

funcionou perfeitamente dentro da rotina....

So vou fazer uma adaptação para me retornar todos os grupos do desenho em uma lista.

Mas ficou muito boa.......

Obrigado a todos......
"As respostas dos problemas, geralmente são mais simples que pensamos"
maketreis@itelefonica.com.br
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....
Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson »

Dr Lau, aí experimente este:

[lsp](vlax-for group (vla-get-groups (vla-get-activedocument (vlax-get-acad-object)))
(setq lst_group (append lst_group (list (vla-get-name group))))
)[/lsp]
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson »

Pois é senhores... Agora eu preciso fornecer o nome do "group" e obter as "entity name" dos objetos que pertencem a este group. Parece que já vi algo aqui antes feito pelo Neyton. Mas não estou encontrando.

Obter quantos objetos pertencem ao group foi fácil
[lsp](vlax-for group (vla-get-groups (vla-get-activedocument (vlax-get-acad-object)))
(print (vla-get-count group)))[/lsp]

Alguém se habilita?
Até!
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

Mensagem por laudemir »

testa esta que estou usando nas minhas rotinas.

[lsp]

(defun groups(/ grp_dict lis_ent_nam)
(setq grp_dict (dictsearch (namedobjdict) "ACAD_GROUP") n 0 )
(repeat (length grp_dict)
(setq item (nth n grp_dict))
(if (= (car item) 3 )
(setq lis_ent_nam (cons (list (cdr item) (cdr (nth (1+ n) grp_dict)) ) lis_ent_nam))
)
(setq n (1+ n))
)
lis_ent_nam
)

[/lsp]

retorna uma lista com o nome do GRUPO e a ENTNAME.
(("GR3" <Entity name: 7e03f828>) ("GR2" <Entity name: 7e03f820>) ("GR1" <Entity
name: 7e03f818>))

dai o resto é facil




t+
"As respostas dos problemas, geralmente são mais simples que pensamos"
maketreis@itelefonica.com.br
Veja outros artigos http://lautolisp.blogspot.com/
Estou iniciando em blog, mas ja é um começo....
Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson »

FFFFFAAAAALLLLLOOOOOUUUUU!!!!!
Ederson Ambrosio
031 8893-2947
BH-MG
Responder