Escolar Documentos
Profissional Documentos
Cultura Documentos
AutoLISP - III
Funções de repetição e condicionais,
Obter e converter informação
João Manuel R. S.
Tavares
Função condicional - if
Figura A: If A<0 executa a função prog1.
(if (< A 0)
(prog1)
) S S
Figura B: If A<0 executa as
N N
funções prog1 e prog2.
(if (< A 0)
(progn
(prog1)
(prog2)
)
) CFAC: AutoLISP (III) - Funções de repetição e
2 @2001 João Tavares condicionais, Obter e converter informação
Função condicional - if
(if (< A 0)
(prog1)
(prog2)
)
Função condicional - if
Figura D: If A<0 executa as funções prog1 e prog2, senão executa
as funções prog3 e prog4.
(if (< A 0)
(progn S N
(prog1)
(prog2)
)
(progn
(prog3)
(prog4)
)
)
Função condicional - if
N
S
N
S
Função condicional - if
Função condicional - if
Função condicional - if
(cond
(= A 1) (prog1)
(= A 2) (prog2)
(= A 3) (prog3)
)
Operadores de comparação
z = (igual)
(if (= A B C) (rotina))
z /= (diferente)
(if (/= A B) (rotina))
z < (menor)
(if (< A B) (rotina))
Operadores de comparação
z > (maior)
(if (> A B) (rotina))
z eq (idêntico)
(if (eq A B) (rotina))
z equal (resultar em =)
(if (equal A B) (rotina))
CFAC: AutoLISP (III) - Funções de repetição e
10 @2001 João Tavares condicionais, Obter e converter informação
Operadores lógicos
z and (e lógico)
– Command: (setq a 103 b nil c "string") ;retorno: "string"
– Command: (and 1.4 a c) ;retorno: T
– Command: (and 1.4 a b c) ;retorno: nil
z or (ou lógico)
– Command: (or nil 45 '()) ;retorno: T
– Command: (or nil '()) ;retorno: nil
z not (negação)
– Command: (setq a 123 b "string" c nil) ;retorno: nil
– Command: (not a) ;retorno: nil
– Command: (not b) ;retorno: nil
– Command: (not c) ;retorno: T
– Command: (not '()) ;retorno: T
CFAC: AutoLISP (III) - Funções de repetição e
13 @2001 João Tavares condicionais, Obter e converter informação
S S
N N
Obter dados
z Exemplos:
(initget "A B C") (setq OPC (getkword "\nOpcao (A, B ou C)? "))
Se algo diferente de A, B ou C for digitado, a mensagem
“INVALID OPTION KEYWORD” será apresentada e o programa
pausa para nova inserção de dado.
CFAC: AutoLISP (III) - Funções de repetição e
24 @2001 João Tavares condicionais, Obter e converter informação
–exemplos de strings:
z"S N s n"
z"Sim Não"
z"Aprovado Reprovado Exame"
z Exemplos:
z getvar
Obtém o valor de uma variável do sistema (do AutoCAD).
(setq LAYERATIVA (getvar "clayer"))
z setvar
Altera o valor de uma variável do sistema.
(setvar "clayer" "2D-PAR")
z getenv
Obtém o valor de uma variável do sistema operativo.
(getenv "path")
Converter dados
Funções de conversão
Funções de conversão
Funções de impressão
z princ:
– Imprime uma expressão na linha de comando ou num arquivo aberto.
– Se a expressão contém caracteres de controle (como \\, \", \e, \n, \t ....)
estes são interpretados e executados; isto é: \n equivale a uma nova
linha.
z prin1:
– Igual a função princ excepto que caracteres de controle não são
interpretados e sim impressos literalmente.
z print:
– Igual a função princ excepto que imprime sempre a expressão numa
nova linha e com um espaço a seguir ao que foi impresso.
z prompt:
– Semelhante a princ, no entanto em configurações de dois ecrãs a
informação é escrita em ambos os ecrãs do AutoCAD.
CFAC: AutoLISP (III) - Funções de repetição e
34 @2001 João Tavares condicionais, Obter e converter informação
Sintaxe:
(princ [expressão [nome-de-arquivo]])
Exemplos:
(setq A 123 B ´(A))
(princ 'A) ;imprime A e retorna A
(princ A) ;imprime 123 e retorna 123
(princ B) ;imprime (A) e retorna (A)
(princ "\nOla") ;imprime "Ola" numa nova linha e retorna
;"Ola"
(princ "Ola" f) ;imprime "Ola" no arquivo f e retorna "Ola"