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/

Rotinas de AutoLisp rodando no ZWCAD

Dúvidas sobre AutoLISP...

Moderador: Moderadores

Responder
Indionei.matos
Madeira
Madeira
Mensagens: 13
Registrado em: Qua 16 Out 2019 9:54:56 am

Rotinas de AutoLisp rodando no ZWCAD

Mensagem por Indionei.matos » Qui 26 Mar 2020 6:49:07 pm

Boa Tarde a todos.

Já dei uma pesquisada a respeito desse assunto e não consegui resposta.
Eu trabalho com o programa ZWCAD-2020 que é uma "cópia do AutoCAD", que também funciona as rotinas feitas no Visual Lisp (que é nativo do AutoCAD).
O ZWCAD usa o Visual Studio Code para fazer as rotinas em AutoLisp, até ai tudo certo, abro umas rotinas antigas do AutoCAD, faço outra agora e assim vai.

Acontece que teve uma delas que abriu mas aparece um determinado caractere (Ø), esse em específico, no lugar dele vem um losango com um ponto de ? dentro "�".
Aí eu não consigo fazer o programa rodar no ZWCAD. No AutoCAD está funcionando tudo certo.
Já tentei trocar o encoding (uso o UTF-16 LE), coloquei outros mas não funciona. Todos os comentários que eu faço que contem algum acento, também vem desta forma " Posição = Posi��o ". Já digitei novamente o Ø e até aparece, mas a rotina não funciona.

(cond
((= STR� "�4.2") (setq PESO42 (+ PESO42 PESOKGR)))
((= STR� "�5.0") (setq PESO50 (+ PESO50 PESOKGR)))
((= STR� "�6.0") (setq PESO60 (+ PESO60 PESOKGR)))
((= STR� "�6.3") (setq PESO63 (+ PESO63 PESOKGR)))
((= STR� "�8.0") (setq PESO80 (+ PESO80 PESOKGR)))
((= STR� "�10.0") (setq PESO100 (+ PESO100 PESOKGR)))
((= STR� "�12.5") (setq PESO125 (+ PESO125 PESOKGR)))
((= STR� "�16.0") (setq PESO160 (+ PESO160 PESOKGR)))
((= STR� "�20.0") (setq PESO200 (+ PESO200 PESOKGR)))
((= STR� "�22.5") (setq PESO225 (+ PESO225 PESOKGR)))
((= STR� "�25.0") (setq PESO250 (+ PESO250 PESOKGR)))
)


A versão do Visual Studio é:
Version: 1.32.3 (system setup)
Commit: a3db5be9b5c6ba46bb7555ec5d60178ecc2eaae4
Date: 2019-03-14T22:49:40.955Z
Electron: 3.1.6
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Windows_NT ia32 10.0.18363

Se alguém souber resolver, me ajudar eu agradeço muito.

Atenciosamente:
Indionei C. de Matos

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

Re: Rotinas de AutoLisp rodando no ZWCAD

Mensagem por Carlos Fernando » Ter 31 Mar 2020 8:39:09 pm

Boa noite
eu ia sugerir que vc fizesse uma conversão para o UTF-16 LE atráves de algum
conversor online mas parece que vc já tentou e não funcionou, então
vamos torcer para que o pessoal do fórum que trabalha no zwcad de as caras por aqui.

Uma bela gambiarra provisória é vc usar o (chr 216) no lugar do simbolo do diametro em todos os locais em que ele aparece, concatenendo com o resto da string. E tb retirar esse simbolo da variavel strØ
Dai ficaria assim:

Código: Selecionar todos

(cond
((= STR (strcat (chr 216)"4.2") (setq PESO42 (+ PESO42 PESOKGR)))
((= STR (strcat (chr 216)"5.0") (setq PESO50 (+ PESO50 PESOKGR)))
etc
ou melhor ainda: se livrar de trabalhar com esse simbolo na rotina e só usar o (chr 216) quando vc quiser usar o comando text para escrever o simbolo do diametro na tela do cad.

Indionei.matos
Madeira
Madeira
Mensagens: 13
Registrado em: Qua 16 Out 2019 9:54:56 am

Re: Rotinas de AutoLisp rodando no ZWCAD

Mensagem por Indionei.matos » Qua 08 Abr 2020 7:57:27 pm

Carlos Fernando escreveu:
Ter 31 Mar 2020 8:39:09 pm
Boa noite
eu ia sugerir que vc fizesse uma conversão para o UTF-16 LE atráves de algum
conversor online mas parece que vc já tentou e não funcionou, então
vamos torcer para que o pessoal do fórum que trabalha no zwcad de as caras por aqui.

Uma bela gambiarra provisória é vc usar o (chr 216) no lugar do simbolo do diametro em todos os locais em que ele aparece, concatenendo com o resto da string. E tb retirar esse simbolo da variavel strØ
Dai ficaria assim:

Código: Selecionar todos

(cond
((= STR (strcat (chr 216)"4.2") (setq PESO42 (+ PESO42 PESOKGR)))
((= STR (strcat (chr 216)"5.0") (setq PESO50 (+ PESO50 PESOKGR)))
etc
ou melhor ainda: se livrar de trabalhar com esse simbolo na rotina e só usar o (chr 216) quando vc quiser usar o comando text para escrever o simbolo do diametro na tela do cad.
Boa noite Carlos.
Obrigado pela resposta.

Desculpe a demora, pois ta bem corrido aqui na empresa, mas vamos lá.

Eu fiquei testando vários encoding para ver ver qual funcionava, até que cheguei nesse: " windows1252: Windows-1252 ", e por enquanto está dando certo.
Uma coisa que percebi foi que nos comentários que eu faço e contem palavras que contem acento (´`~^) ou até mesmo alguns caracteres de símbolos aparece certinho.
Vou continuar a tentar outros encoding para ver se tem outros que também funciona, aí coloco aqui para servir de informação para quem também tiver esse problema.

Um grande abraço!
Indionei C. de Matos

Responder