manipulação de entidades

Tirar duvidas sobre o curso de Visual Lisp

Moderador: Moderadores

Responder
Avatar do usuário
Clidalbianco
Novato
Novato
Mensagens: 2
Registrado em: Ter 15 Jan 2008 11:00:00 pm

manipulação de entidades

Mensagem por Clidalbianco » Qua 03 Jun 2009 12:18:14 am

Olá

Preciso calcular a área de entidades e ordena-las em ordem descrescente conforme o valor da área.
Como faço isto através do lisp. Existe o comando "area" do autocad mas não queria pedir para o usuário clicar nos pontos. Gostaria que apartir das figuras gerar as áreas e ordena-las.

Alguém pode me ajudar

Grata

Cli :?: :cry:

Avatar do usuário
neyton
Master
Master
Mensagens: 1669
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton » Qua 03 Jun 2009 8:33:29 am

vc pode usar:

[lsp](Setq area ( vla-get-area ( vlax-enmae->vla-object ent ) ) )[/lsp]

pode usar:

[lsp]( command "area" "o" ent )
(setq area ( getvar "area" ) )[/lsp]

e pode criar algo mais mirabolante para isso, hehehehe

no mais, para ordenar, veja o help para a função vl-sort
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!

Avatar do usuário
Clidalbianco
Novato
Novato
Mensagens: 2
Registrado em: Ter 15 Jan 2008 11:00:00 pm

Mensagem por Clidalbianco » Qua 10 Jun 2009 9:48:05 am

Oi Neyton

Obrigada pelo código.
Mas ainda não cosigo ordenar

Avatar do usuário
neyton
Master
Master
Mensagens: 1669
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton » Qua 10 Jun 2009 9:54:04 am

a partir da seleção de polilinhas (selection set)

gere uma lista assim:
[lsp](Setq lista '
(
( area1 ename1 )
( area2 ename2 )
( area3 ename3 )
( area4 ename4 )
( areaN enameN )
)
)[/lsp]

ai usa o vl-sort para ordenar.......
[lsp]( vl-sort lista ' ( lambda(e1 e2) (< (car e1) (car e2)))[/lsp]
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!

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

Mensagem por cracksther » Qua 10 Jun 2009 3:30:16 pm

Houve um erro de digitação do neyton.
[lsp](Setq area ( vla-get-area ( vlax-enmae->vla-object ent ) ) )[/lsp]
Deveria ser:
[lsp](Setq area ( vla-get-area ( vlax-ename->vla-object ent ) ) )[/lsp]

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com

Responder