lisp e comando "grpup"

Dúvidas sobre AutoLISP...

Moderador: Moderadores

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

lisp e comando "grpup"

Mensagem por ederson »

Nobres, alguém sabe se é possível obter o nome de um "group" ao qual o objeto pertença. Tentei tblnext, mas o group não não faz partes das tabelas internas. Também não aparece no entget... Desde já agradeço!!!
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:

DFX 330

Mensagem por laudemir »

Boa tarde

Tente usar o cod abaixo

(SETQ X (ENTGET (CDR (ASSOC 330 (ENTGET (CAR (ENTSEL)))))))

e selecione alguma GROUP
"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 »

Laudemir, aí ele me retornou uma lista onde há o par (0 . "group"). Mas não tem nenhum par que me dá o nome do group. É isso que preciso...
Obrigado!
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:

Pastas e Subpastas

Mensagem por laudemir »

Imagine que cada "Entname" seja uma " Pasta do windows "

De acordo com cada Objeto selecionado existem outas pastas= "subpastas"

Ou seja Dentro de uma determinada "Entname" pode existir varias outras Entnames.


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 »

Isso eu percebi, mas daí encontrar o nome do "group" que um objeto está inserido não percebi uma ligação tão próxima... De qualquer forma, obrigado!
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

ederson... Essa foi tão fácil que realmente acho que você ficou com preguiça de olhar as "sub-pastas" (mensionado por laudemir) mas de qualquer forma ai está.


[lsp](setq ent (entget (car (entsel)))
grupo (entget (cdr (assoc 330 ent)))
propGrupo (entget (cdr (assoc 330 grupo)))
nomeGrupo (cdr (assoc 3 propGrupo))
)[/lsp]

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 »

Nobres, na verdade não fiquei com preguiça não. É que sou "burro" mesmo, pois fui tentando outros números no "assoc 3". Pois ele me retornava sempres "*A1", o que não era o nome do "group". Depois é que percebi que havia outros "assoc 3" e que um deles continha o nome do "group". Aí sim fiquei cansado e briguei com o Laudemir... rsrsrsrsrs...
Até e obrigado!
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

ederson... he he, eu entendo, sei bem como é, as vezes a coisa parece que tem vida própria... quantas vezes também já procurei sem encontrar algo que estava ali, bem na minha frente... mas o importante é não desanimar...

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
laudemir
Prata 2/3
Prata 2/3
Mensagens: 532
Registrado em: Qui 29 Mar 2007 12:00:00 am
Contato:

entsel, Retornar o nome Group

Mensagem por laudemir »

Bom, vamos voltar ao tópico pois......

No momento de uma discussão apenas olhamos com um ponto de vista, porem quando vamos realmente usar os métodos....... daí o ponto de visão muda mesmo....

Estou desenvolvendo umas rotinas e preciso de saber o nome do GRUPO, selecionando por "entsel".

Bom a rotina que o Marcelo enviou realmente retorna o nome do grupo porem ainda não é o nome do objeto selecionado, na verdade o entname "propGrupo" pega o 1º nome do Grupo, mas na verdade este entname tem todos os nomes de todos os grupos do desenho ou seja é um "DICTIONARY"....

Ou seja, mesmo selecionando com ENTSEL um GRUPO, o nome retornado não é o do grupo...

Faça um teste com alguns grupos.... verifique o nome do um Grupo com o comando “GROUP” selecionando com o “FILENAME”, ao selecionar um grupo é retornado na tela um nome

Ao testar a rotina abaixo nem sempre ira retornar o nome do grupo corretamente.
[lsp]

(setq ent (entget (car (entsel)))
grupo (entget (cdr (assoc 330 ent)))
propGrupo (entget (cdr (assoc 330 grupo)))
nomeGrupo (cdr (assoc 3 propGrupo))
)
[/lsp]


A pergunta é como obter o nome real do grupo selecionado a partir de um entsel ou um ssget.


[/code]
"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 »

Eh... Dr Lau, sofri na época... mas tá aí.

[lsp](defun obtername_grupo (group_object / ent_name acad_reactors vlx_objetc)
;(setq group_object (car (entsel)))
(setq ent_name (entget group_object))
(if (setq acad_reactors (member '(102 . "{ACAD_REACTORS") ent_name))
(while
(and
(setq acad_reactors (cdr acad_reactors))
(eq (caar acad_reactors) 330)
(eq (vla-get-ObjectName (setq vlx_objetc (vlax-ename->vla-object (cdar acad_reactors)))) "AcDbGroup")
); end of and
(if (equal (cadr acad_reactors) '(102 . "}"))
(setq acad_reactors nil)
); end of if
(setq group_name (vla-get-Name vlx_objetc))
); end of while
); end of if
); end of defun obtername_grupo[/lsp]
Ederson Ambrosio
031 8893-2947
BH-MG
Responder