Tenha uma nova experiência ao navegar no Fórum pelo computador de forma integrada ao portal principal. Acesse o seguinte link: https://www.autolisp.com.br/board/. Entretanto para dispositivos móveis recomendamos acessar este outro link: https://www.autolisp.com.br/forum/

Inserindo bloco com atributo

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Avatar do usuário
Carlos Fernando
Madeira
Madeira
Mensagens: 24
Registrado em: Sex 29 Dez 2017 4:17:25 pm

Re: Inserindo bloco com atributo

Mensagem por Carlos Fernando » Sex 29 Mai 2020 8:26:45 pm

Boa noite
Parece que vc esta esquecendo de colocar o valor do atributo no proprio comando insert logo após o valor 0 da rotação.
Faça assim:

Código: Selecionar todos

(setq AlPLTC_tx (strcat "h=" (rtos AlPLTC 2 1) "m")); variável que recebe o valor da altura da placa
(command "_-insert" "C:\\Arquivos_Autolisp\\Biblioteca\\Placa Trânsito_Ø40-teste" PtInBlPlT "1" "1" 0 AlPLTC_tx)

Alexandre Moroni
Madeira
Madeira
Mensagens: 15
Registrado em: Dom 05 Mai 2013 8:32:11 pm

Re: Inserindo bloco com atributo

Mensagem por Alexandre Moroni » Ter 23 Jun 2020 11:00:51 am

Bom dia. Obrigado pela ajuda.

Alexandre Moroni
Madeira
Madeira
Mensagens: 15
Registrado em: Dom 05 Mai 2013 8:32:11 pm

Re: Inserindo bloco com atributo

Mensagem por Alexandre Moroni » Ter 23 Jun 2020 11:29:05 am

Bom dia.

Alguém sabe porque em algumas versões do AutoCAD, quando uso o (command "_-insert" , ele vai pedindo as informações via linha de comando, mas quando chega na hora de inserir os atributos do bloco ele abre um janela de inserção de atributos?

Faço essa pergunta porque tenho uma rotina lisp que insere blocos com atributos no desenho, em algumas versões funciona certo e em algumas a rotina para e abre a janela de inserção de atributos, esses atributos são variáveis da própria rotina.

O problema tem aparecido na versão 2016 do Autocad.

Já testei com (command "_insert" (command "-insert" (command "_.insert" (command ".-insert"

Avatar do usuário
Carlos Fernando
Madeira
Madeira
Mensagens: 24
Registrado em: Sex 29 Dez 2017 4:17:25 pm

Re: Inserindo bloco com atributo

Mensagem por Carlos Fernando » Ter 23 Jun 2020 9:01:11 pm

Alexandre

Acho que o "problema" é a sua variavel de sistema ATTDIA.
A caixa de dialogo de atributos é exibida ou não de acordo com a variavel ATTDIA.
Se ela estiver configurada como 1 a caixa de dialogo de atributos será exibida, se estiver como 0 ela não será exibida. Assim para a inserção manual do bloco o ideal é deixar como 1, mas para as nossas lisps é muito melhor deixar como 0.
Ainda existe a variavel ATTREQ que usa ou não o valor padrão do atributo, se ela estiver como 0 o valor padrao será inserido e se estiver como 1 vc deverá fornecer o valor via caixa de dialogo (se ATTDIA estiver como 1) ou pelo prompt ou rotina (se ATTDIA estiver como 0).

Vc pode tanto ler ou mudar o valor das variaveis a vontade. Por exemplo va para seu AutoCad 2016 e leia o valor de ATTDIA assim :

Código: Selecionar todos

(getvar "attdia")
com certeza irá retornar 1 indicando que a caixa de dialogo do atributo sempre será aberta. Entao basta configurar como 0 assim

Código: Selecionar todos

(setvar "attdia" 0)
. Mas como eu disse acima é bom deixar como 1 para os casos de inserçao manual do bloco e colocar como 0 apenas durante a execução da rotina.
Então faça assim:

Código: Selecionar todos

...
(setq attdia (getvar "attdia"));guarda o valor atual de ATTDIA
(setq attreq (getvar "attreq"));guarda o valor atual de ATTREQ
(setvar "attdia" 0);configura ATTDIA para não exibir a caixa de dialogo
(setvar "attreq" 1);configura ATTREQ para não colocar o valor padrão do atributo
(setq AlPLTC_tx (strcat "h=" (rtos AlPLTC 2 1) "m")); variável que recebe o valor da altura da placa
(command "_-insert" "C:\\Arquivos_Autolisp\\Biblioteca\\Placa Trânsito_Ø40-teste" PtInBlPlT "1" "1" 0 AlPLTC_tx)
(setvar "attdia" attdia);devolve o valor antigo de ATTDIA
(setvar "attreq" attreq);devolve o valor antigo de ATTREQ
...
Lembre-se que todas estas informações podem ser facilmente encontradas no Help do Autocad, basta ir no Help e pesquisar "Attdia" ou "inserção de blocos" e vc poderá ver estas informações de variaveis de sistema.

Flw

Alexandre Moroni
Madeira
Madeira
Mensagens: 15
Registrado em: Dom 05 Mai 2013 8:32:11 pm

Re: Inserindo bloco com atributo

Mensagem por Alexandre Moroni » Qua 24 Jun 2020 8:06:40 am

Carlos Fernando bom dia.

Era bem isso mesmo, funcionou perfeitamente, muito obrigado...tenho que aprender (estudar) muito ainda...mas vou tentando fazer minhas rotinas lisp

Obrigado.

Responder