You are on page 1of 85

Zaya

1
APRESENTAO
1. Apresentao
O AutoCAD um programa CAD de propsito geral que pode ser utilizado
na criao de uma variedade muito grande de projetos.
Uma das principais caractersticas que fazem do AutoCAD um Software de
grande penetrao e aceitao pelo mercado sua arquitetura aberta; desta
forma, o AutoCAD pode ser adequado s necessidades especficas de seus
usurios, atravs de recursos tais como criao de macro -comandos, configuraes
especiais de menus e, principalmente atravs do desenvolvimento de rotinas em
AutoLlSP.
No por acaso que, atualmente, existam milhares de aplicativos
desenvolvidos por empresas de software e por usurios ao redor do mundo que,
aproveitando os recursos disponveis no ncleo grfico do programa, tornam o
AutoCAD uma ferramenta de projeto para reas to diversas como manufaturas,
mapeamento, projetos de plantas industriais, entre outras.
Este curso tem como objetivo apresentar conceitos de programao
avanada em AutoLlSP.
Atravs de explicaces e exemplos, voc aprender como tornar o AutoCAD
uma ferramenta ainda mais produtiva para o desenvolvimento de projetos,
adequando o AutoCAD ao seu ambiente de trabalho.
Esta apostila est organizada da seguinte maneira:
Cap. 2 : apresenta os conceitos bsicos da AutoLlSP.
Cap. 3 : explica como feito o gerenciamento de memria do AutoLlSP e apresenta
as funes do AutoLlSP a ele relacionadas.
Cap. 4 : apresenta as funes de entrada e sada do AutoLlSP (leitura e gravao
de arquivos).
Zaya
2
Cap. 5: apresenta as funes avanadas de manipulao de listas, tais como:
APPLY, FOREACH e MAPCAR.
Cap. 6 : apresenta as funes de acesso s entidades grficas do AutoCAD.
Cap.7 : apresenta as funes de seleo de entidades grficas do AutoCAD.
Cap.8 : apresenta as funes de acesso s tabelas internas do AutoCAD.
Cap.9 : faz um resumo dos tpicos apresentados no curso.
Apndice I : apresenta a lista de todas as funes disponveis no AutoLlSP,
ordenadas por funcionalidade.
Apndice II : contm as tabelas de cdigos DXF das entidades grficas do
AutoCAD.
O AutoLlSP uma linguagem de programao para o desenvolvimento de
aplicativos exclusivamente no ambiente do software AutoCAD.
Voc pode criar programas em AutoLlSP digitando-os na prpria rea de
comando do AutoCAD, ou criando um arquivo ASCll contendo as rotinas.
Arquivos de programas AutoLlSP devem possuir extenso LSP e podem ser
carregados no AutoCAD via funo LOAD do prprio AutoLlSP, que pode ser
acionada na rea de comando da seguinte forma:
Command: (Ioad "ASHADE")
A linha de comando acima carrega as rotinas em AutoLlSP contidas no
arquivo ASHADE.LSP.
Zaya
3
2.1. EIementos bsicos do AutoLISP
O AutoLlSP uma linguagem baseada em LlSTAS. A seguir, sero
apresentados os elementos bsicos que compem a sintaxe desta linguagem:
TOMO : unidade bsica do AutoLlSP. Pode ser literal ou numrica.
ExempIos:
tomo literal: ABC, PALAVRA TAMANHO GlGANTE, STRlNG
tomo numrico: 1,0,0.1,-0.32,-93e+3
Num programa AutoLlSP, variveis e valores constantes so tomos.
LISTA :agrupamento de tomos ou listas delimitados por (e) e identificado
como um nico elemento.
ExempIos:
() ou NlL ;lista vazia
(AB XX 1'(0.3 Y) ) ; uma lista pode conter tomos ou listas
EXPRESSO : pode ser um tomo ou uma lista.
Exemplo:
( ), 89, (Funo PARAM1 0)
; : em um arquivo de programa em AutoLlSP, o caracter ponto - e- vrgula
indica incio de comentrio.
ExempIo:
(SETQ VMlN (MlN 0 1-1)) ; VMIN recebe o mnimo entre 0, 1 e -1
\ ou PAUSE : indica pausa, espera entrada de dados do usurio.
T : indica resultado verdadeiro (TRUE) em funes booleanas.
NIL : indica resultado falso (NULL) em funes booleanas ou lista vazia.
2.2. AvaIiao de expresses
Zaya
4
Um programa em AutoLlSP uma seqncia de expresses (tomos ou
listas) e a execuo do programa nada mais AVALlAO de cada uma dessas
EXPRESSES.
O que AVALIAR UMA EXPRESSO ?
se a expresso for um valor constante, avaliar a expresso significa retornar o
seu prprio valor.
se a expresso for uma varivel, avaliar a expresso significa retornar o
contedo da varivel.
se a expresso for uma chamada de funo, avaliar a expresso significa
executar a funo e retornar o valor retornado pela ltima expresso a valiada
dentro da funo.
OBS: Para diferenciar uma lista de expresso de uma lista de dados o AutoLlSP
utiliza o smbolo ou a funo QUOTE.
ExempIo:
(+1 2 3) : esta lista reconhecida como uma funo de soma, e a avaliao
da mesma retorna o nmero 6.
(+ 1 2 3) : esta lista reconhecida apenas como uma lista que contm 4
tomos. Sua avaliao retorna a prpria lista '(+1 2 3 ).
2.3. Funes eIementares: CAR e CDR
O AutoCAD possui duas das funes elementares para manipulao de
listas:
CAR : retorna o primeiro elemento de uma lista.
ExempIos:
(CAR '('( A B )) retorna A
(CAR '('( 1 2 3 ) 2 3 )) retorna '(1 2 3 )
Zaya
5
CDR : retorna a lista sem o primeiro elemento.
Exemplos:
(CDR'(AB)) retorna '(B)
(CDR '('( 1 2 3 ) 2 3 )) retorna '(2 3)
(CDR '(UNlCO)) retorna '() ou NIL, lista vazia
Essas funes podem ser usadas, combinadas, como nos exemplos abaixo:
(CAAR '('(A B)1 2)) = (CAR (CAR'('(A B) 1 2))) = (CAR '( A B )) = A
(CDR'('(A B) 1 2)) = (CAR (CDR '('(A B) 1 2))) = (CAR'(1 2)) = 1
(CDDR'('(A B) 1 2)) = (CDR (CDR '('(A B) 1 2))) = (CDR '(1 2)) = '(2)
(CDAR '('(A B) 1 2)) = (CDR (CAR '('(A B) 1 2))) = (CDR '(A B)) = '(B)
OBS: No AutoLlSP, pontos so representados por listas com dois o trs elementos:
20.3 -32.9)) '(10.5 20.3) ;ponto bi - dimensional
'(10.5 20.3 -32.9) ;ponto tri- dimensional
As funes CAR e CDR so muito utilizadas para decompor coordenadas:
(CAR '(10.5 20.3 -32.9)) = 10.5, coordenada X
(CADR '(10.5 20.3 -32.9))= 20.3, coordenada Y
(CADDR '(10.5 = -32.9 , coordenada Z
2.4. Sintaxe geraI de definio de funo
A forma geral para definio de uma funo em AutoLlSP uma lista onde:
o primeiro elemento o tomo DEFUN que indica incio de definio de
funo.
o segundo elemento o nome da funo (deve ser um tomo literal).
Zaya
6
o terceiro elemento uma lista dividida em duas partes pelo caracter /:
os elementos que ficam antes do caracter / so os parmetros de entrada, os que
ficam depois, so variveis locais.
os demais elementos so expresses (chamadas funes).
(DEFUN FUNO (PARAM- 1 ... PARAM-N / VAR- 1 ... VAR-N) (...) ... (...))
ExempIo: funo PTMED, retorna uma lista contendo as coordenadas do ponto
mdio do segmento definido por dois pontos dados.
(DEFUN PTMED (p1 p2 / xm ym zm)
(SETQ xm (/(+ (CAR p1) (CAR p2)) 2.0)
ym (/(+ (cadr p1) (CADR p2)) 2.0)
zm (/(+ (CADDR p1) (CADDR p2)) 2.0) )
(LIST xm ym zm)
Observaes:
(DEFUN PTMED (p1 p2 / xm ym zm )
inicia a definio da funo PTMED com dois parmetros de entrada, p1 e
p2, e trs variveis locais : xm, ym e zm.
SETQ xm (/ (+ CAR p1) (CAR p2)) 2.0)
p1 e p2 so os pontos que definem o segmento. Para calcular o ponto
mdio necessrio somar as coordenadas dos pontos e dividir por dois (em X, Y e Z
separadamente).
(CAR p1) e (CAR p2) so as coordenadas X dos pontos dados.
SETQ a funo de atribuio : (SETQ VARlVEL VALOR), no exemplo,
xm recebe a coordenada X do ponto mdio.
Zaya
7
+ a fun0 de soma: (+NUM1 NUM2 ...) retorna a soma dos nmeros.
/ a funo de diviso: (/DlV1 DlV2), no exemplo, retorna o resultado da
diviso da soma das coordenadas em X por 2.
ym (/(+ (CADR p1) (CAR p2)) 2.0)
zm (/(+ (CADDR p1) (CADDR p2)) 2.0)
executa a mesma operao para as coordenadas Y e Z.
a funo SETQ pode conter vrias atribuies.
(LIST xm ym zm )
LlST uma funo de construo de listas: (LIST EXPR1 EXPR2 ... )
retorna (EXPR1 EXPR2 ...)
(LIST xm ym zm)
2.5. Sintaxe geraI para chamada de funo
A forma geral para chamada de qualquer funo em AutoLlSP (funes
prprias do AutoLlSP ou criadas pelo usurio) uma lista onde:
o primeiro elemento o nome da funo (deve ser um tomo literal).
os demais elementos so parmetros. Parmetros so expresses (tomos
ou listas).
(FUNO PARAM1 PARAM2...)
ExempIo:
PTMED '(1.0 2.3 4.5) '(10.9 -2.0 6.0))
a funo PTMED retorna a lista '(5.95 0.15 5.25)
2.6. AutoLISP e Macros
Zaya
8
A combinao de macros e rotinas em AutoLlSP cons iste num poderoso
recurso de customerizao de menus do AutoCAD. Vejamos, atravs de um
exemplo, como isso pode ser feito:
lncluso da opo (ZOOM IN) no menu DISPLAY :
(ZOOM IN ) ^C ^C ^P (SETQ p1 (GETPOINT "Primeiro canto da janeIa
"));\+
(SETQ p2 (GETCORNER p1 'Outro canto: "));\ZOOM;w;IP1;IP2;^p
Observaes:
(ZOOM IN) ^C^C^P
^C^C cancela o comando anterior.
^P faz com que as linhas de programao em AutoLlSP no sejam
exibidas na rea de comando.
(SETQ p1 (GETPOINT "Primeiro canto da janeIa: "))
esta linha de programa inicial a varivel p1 com as coordenadas de um
ponto fornecido pelo usurio atravs da funo GETPOlNT.
GETPOlNT requisita a entrada de um ponto:
(GETPOINT (ponto ncora) (mensagem))
- ponto ncora : ponto usado para gerar rubber -band (eco de linha). Este parmetro
pode ser omitido.
- mensagem: mensagem de prompt. Este parmetro pode ser omitido.
;\
Zaya
9
; eqivale a um < ENTER>/<RETURN>, significa fornecer a expresso para o
AutoCAD avaliar (executar as funes GETPOlNT e SETQ).
\espera a entrada do ponto (PAUSE).
+
indica que a macro continua na prxima linha.
(SETQ p2 (GETCORNER (ponto ncora ) (mensagem)
-(ponto ncora): ponto usado para gerar o rubber -band (eco de retngulo). Este
parmetro NO pode ser omitido.
-(mensagem): mensagem de prompt . Este parmetro pode ser omitido.
ZOOM;W;Ip1;Ip2;
executa o comando ZOOM com opo W (window) fornecendo o contedo das
variveis p1 e p2 como pontos da janela.
o sinal l serve para obter o contedo de uma varivel.
3. Gerenciamento de memria do AutoLISP
3.1. AutoLISP
trabalhar, o AutoLlSP utiliza duas grandes reas de memria:
HEAP : rea onde so armazenados TODOS os smbolos (variveis,
nomes de funes, cadeias de caracteres) utilizados pelas rotinas em AutoLlSP.
Cada um desses smbolos chamado de n (NODE). Quanto maior for o nmero de
smbolos utilizados, maior o espao de rea STACK necessrio.
O espao padro de memria reservado para essas reas :
- 40000 bytes para rea HEAP.
- 30000 bytes para rea STACK.
Essa configurao pode ser modificada atravs de duas variveis de
ambiente (ENVlRONMENT) do sistema operacional DOS:
Zaya
10
C:> SET LISPHEAP = 40000, configura nmeros de bytes para rea HEAP
C;> SET LISPSTACK = 3000, configura nmero de bytes para rea
STACK
ATENO: o total de memria alojada somando-se as duas reas no pode
ultrapassar 45000 bytes.
Se, durante a execuo de uma rotina em AutoLlSP, for detectada falta de
memria na rea STACK, a rotina interrompida e a seguinte mensagem ser
exibida na rea de comando:
Command : error : LlSPSTACK overflow
Se o problema ocorrer na rea HEAP, a rotina interrompida e uma das
duas mensagens a seguir aparecer na rea de comando:
Command: lnsufficient node space
ou
Command: lnsufficient string space
3.2. EXTENDED AutoLISP
Extended AutoLlSP um recurso fornecido pelo AutoCAD R10 que
permite configurar as reas HEAP e STACK em memria estendida, acabando com
a limitao de 45000 bytes para execuo das rotinas em AutoLlSP.
O Extended AutoLlSP exige:
um microcomputador 286 ou 386 com 640Kb de memria bsica (RAM), no
mnimo 512Kb de memria extendida (padro lBM-AT) e disco winchester.
verso de sistema operacional PC-DOS/MS-DOS 2.0 ou superior.
Zaya
11
verso do AutoCAD R10 com ADE-3 (arquivos ACADLX.OVL, EXTLISP.EXE e
REMLISP.EXE)
Para utilizar o Extended AutoLlSP, necessrio executar o programa
EXTLISP.EXE antes de entrar no AutoCAD. Este programa fica res idente na
memria e faz a pr- alocao da memria a ser utilizada pelo AutoLlSP. Para
retirar o EXTLlSP.EXE da memria, aps a execuo do AutoCAD , execute o
programa REMLISP.EXE.
A quantidade de memria a ser alojada pelo EXTLISP.EXE configurada
pela varivel de ambiente LlSPXMEN. Esta varivel configura o tamanho e a posio
inicial da rea de memria reservada para o AutoLlSP.
C: SET LISPXMEN=BASE,Nkbytes
onde BASE estabelece o incio da rea e Nkbytes o tamanho (em Kbytes).
Se o parmetro BASE no for fornecido, o AutoCAD faz a alocao partindo
do endereo de memria disponvel mais alto para o mais baixo. Esta a
configurao mais segura tendo em vista possveis incompatibilidades de alocao
de memria envolvendo outros programas residentes.
ExempIo:
C:> SET LISPXMEM=,1K
ou
C:> SET LISPXMEM=0,1K
aloja 1 Kb a partir do endereo mais alto disponvel.
Para maiores detalhes, consulte o lnstallation and Performance Guide - lBM
PC and PS/2 ou o manual Autolisp Programmer's Reference fornecidos junto com a
documentao do software AutoCAD.
Zaya
12
3.3 AutoLISP em AutoCAD verso 386
No AutoCAD verso 386 no necessrio configurar nenhuma das
variveis de ambiente LlSPHEAP, LlSPSTACK, LlSPXMEM, pois o prprio AutoCAD
se encarrega de gerenciar a memria utilizada pelo AutoLlSP, fazendo paginao
automtica entre a memria extendida, a memria bsica e o disco winchester
quando necessrio.
3.4.1. ALLOC
(ALLOC <nmero-de-ns)
A funo ALLOC configura o tamanho (nmeros de ns ) dos segmentos de
memria. O valor padro 512 ns.
ExempIo:
(ALLOC 500)
Considerando a verso PC-DOS/MS-DOS do AutoLlSP , na qual um n
ocupa 10 bytes, (ALLOC 500) configura segmentos de memria de 5000 (500 vezes
10) bytes.
3.4.2 EXPAND
(EXPAND < nmero-de-segmentos>)
Zaya
13
A funo EXPAND configura o nmero de segmentos de memria a serem
utilizados pelos programas AutoLlSP.
ExempIo:
(ALLOC 500)
(EXPAND 5)
Considerando a verso PC-DOS/MS-DOS do AutoLlSP, na qual um n
ocupa 10 bytes, o trecho de programa acima configura 5 segmentos de memria de
5000 bytes a serem utilizados pelos programas AutoLlSP, que resulta num total de
25000 bytes necessrios na rea HEAP.
3.4.3 GC
(GC)
A funo GC fora a execuo de uma operao de garbage collect ion
(liberao dos ns livres para re-utilizao pelos programas AutoLlSP.
Ateno! O prprio gerenciador do AutoLlSP se encarrega de fazer
automaticamente um garbage collection toda vez que julgar necessrio. Chamadas
desnecessrias da funo GC podem prejudicar a performance dos programas, pois
trata de uma funo cuja exceo demorada.
3.4.4. MEM
(MEM)
Zaya
14
Exibe o estado atual do AutoLlSP com relao a utilizao de memria e
nmero de ns disponveis.
Command: (MEM)
Nodes: 1028 , nmero totaI de ns
Free nodes: 454 , totaI de ns Iivres
Segments: 2 , nmero de segmentos de memria
Allocat : 514 , tamanho (em bytes) de cada segmento
Collections: 3 , nmero de "garbage coIIections" executados
3.4.6. VMON
(VMON)
A funo VMON habilita a utilizao de memria virtual (paginao) pelos
programas AutoLlSP, possibilitando a execuo de programas que exigem muito
espao em memria.
4. FUNES DE ENTRADA E SADA
O AutoLlSP possui funes que permitem ler e gravar arquivos em formato
ASCll.
Na descrio de comandos apresentadas neste captulo, os parmetros entre ( )
so opcionais.
4.1.1. CLOSE
(CLOSE <"FILE-DESCRIPTOR"> )
Zaya
15
Fecha o arquivo associado ao valor retornado pela funo OPEN qu e abriu o
arquivo; este valor recebe o nome de FlLE-DESCRlPTOR.
A funo sempre retorna NIL.
ExempIo:
(setq fd (open "ARQUIVO.DAT"))
...
(cIose fd)
4.1.2. FINDIFILE
(FINDFILE <nome-do-arquivo>)
Procura um arquivo no disco, considerando o seguinte cr itrio para busca: o
diretrio corrente, o diretrio configurado pela varivel de ambiente ACADe os
diretrios contidos no path.
Se o arquivo no for encontrado a funo retorna NIL, caso contrrio,
retorna o nome completo do arquivo (incluindo o pa th).
N nome do arquivo retornado pela funo FlNDFlLE pode ser utilizado
diretamente pela funo OPEN que abre arquivos (o caracter \ est substitudo
por /).
ExempIo: Supunha que o arquivo TXT.SHX esteja no diretrio \ACAD
(findfiIe "TXT.SHX"))
retorna /ACAD/TXT.SHX
Zaya
16
4.1.3. OPEN
(OPEN <nome-do-arquivo> <modo> )
Abre um arquivo. Retorna um 'file-descriptor para ser utilizado como
senha de acesso a esse arquivo nas funes de entrada/sada.
No parmetro <modo> configura o tipo de acesso ao arquivo:
"r" : "read-onIy" , abre o arquivo somente para leitura. Se o arquivo no
existir, a funo retorna NIL.
"w" : "write-onIy" , abre arquivo somente para gravao. Se o arquivo j
existir, os dados anteriores sero apagados.
"a" : "append" , abre o arquivo para anexao de novos dados. Se o
arquivo no existir, cria um novo arquivo. Caso contrrio, o arquivo aberto e os
dados anteriores so mantidos.
Exemplos: O comando abaixo abre o arquivo "DADOS.TXT" para leitura ;
se o arquivo existir retorna um file-descriptor na forma <FiIe #nnn>; caso
contrrio, retorna NIL.
(setq fd (open ("DADOS.TXT " "r"))
4.1.4. PRIN 1
(PRIN1 < expresso> (<"fiIe-descriptor:>)
Se o parmetro <file-descriptor> (parmetro opcional) for fornecido, a
funo grava o resultado da avaliao do parmetro <expresso> no arquivo
associado ao <file-descriptor>. Caso contrrio, exibe esse resultado na rea de
dilogo. Retorna o valor da expresso.
Zaya
17
ExempIo:
(setq VAR "\nBOM DIA") ; a funo PRlN1
(PRIN1 VAR FD) ;grava\ nBOM DIA" no arquivo FD.
4.1.5. PRINC
(PRINC <expresso> (<"fiIe-descriptor">)
Esta funo idntica funo PRlN1. A nica diferena que a funo
PRlNC grava (ou exibe) a expresso sem expandir os caracteres de controle.
Caracteres de controIe:
\n : pula alinha e vai para a prxima.
\ t : tabulao
\nnn : cdigo octal, \014 o cdigo octal para o avano de folha em
impressora.
ExempIo:
(setq VAR "\nBOM DIA ") ; a funo PRlNC pula uma linha (dentro do
arquivo) e
(princ VAR FD ) ; grava o 'BOM DIA" no arquivo FD.
4.1.6. PRINT
(PRINT <expresso > (<"fiIe-descriptor">)
Zaya
18
Esta funo idntica funo PRlN1. A nica diferena que a fun o
PRlNT pula uma linha antes de gravar (ou exibir) a expresso.
ExempIo:
(setq VAR "BOM DIA" ; a funo PRlNT pula uma linha (dentro do
arquivo) e
(print VAR FD) ; grava o "BOM DIA" no arquivo FD
4.1.7. READ-CHAR
(READ-CHAR (<"fiIe-descriptor'>)
Se o parmetro <file-descriptor> (parmetro opcional) for fornecido, a
funo l um caracter do arquivo associado ao <file -descriptor>. Caso contrrio, l
o caracter do teclado. Retorna o cdigo ASCll do caracte r.
ExempIo:
(setq COD (READ-CHAR FD))
4.1.8. READ-LINE (<"fiIe-descriptor">)
Se o parmetro <file-descriptor> (parmetro opcional) for fornecido, a
funo l uma cadeia de caracteres do arquivo associado ao <file -descriptor>.
Caso contrrio, l a cadeia de teclado. Retorna a cadeia lida.
(setq STR (read-Iine) FD))
(WRITE-CHAR <cdigo-ASCII> (<"fiIe-descriptor">)
Se o parmetro <file-descriptor> (parmetro opcional) for fornecido, a
funo grava o caracter correspondente ao <cdigo-ASCll> dado no arquivo
Zaya
19
associado ao <'file-descriptor>). Caso contrrio, exibe o caracter na rea de
dilogo. Retorna o caracter.
ExempIo:
(write-char 65 FD) ; grava o carater A' no arquivo.
4.1.10. WRITE-LINE
(WRITE-LINE <string> (<"fiIe-descriptor">)
Se o parmetro <file-descriptor> (parmetro opcional) for fornecido, a
funo grava a cadeia na rea de dilogo. Retorna a cadeia.
ExempIo:
(write-Iine "REG.01" FD) ; grava "Reg.01" no arquivo.
4.2. ExempIo
A rotina AutoLlSP a seguir, importa um texto contido num arquivo ASCll
para dentro do AutoCAD transformando cada linha deste arquivo num elemento
texto.
;____________________________________________;
;LETEXTO ;
(defun LETEXTO ( / arq ; nome do arquivo
path ; "path"do arquivo
fd ; "fiIe-descriptor"
reg ; registro Iido (texto)
pt ; ponto de insero do texto
; Pede o nome do arquivo de texto
(setq arq (getstring "\nNome do arquivo de texto:")
;Retorna o "path" compIeto do arquivo
path (findfiIe arq)
Zaya
20
)
;Verifica se o arquivo existe
(Iif (/=path NIL)
; Ponto de insero do texto
if (setq pt (getpoint "\nincio do texto: "))
;Abre o arquivo para Ieitura
(if (seqt fd (open path "r"))
; L o primeiro registro
(if (setq reg (read-Iine fd))
(progn
;Cria o texto
(command "TEXT" pt pause '''' REG
L o resto do arquivo
(whiIe (setq reg (read-Iine fd)
; Cria o texto
(command "TEXT" ''' reg)
)
;Fecha o arquivo
(cIose fd)
)
)
;Erro na abertura do arquivo
(princ "\nErro na abertura do arquivo.")
)
) ; Arquivo no encontrado
(princ "\nArquivo no encontrado.")
)
(princ)
)
5. FUNES DE MANIPULAO DE LISTAS
Zaya
21
As funes de manipulao de listas apresentadas neste captulo consistem
o ponto forte do AutoLlSP . So essas funes que fazem do AutoLlSP uma
linguagem poderosa e compacta.
5.1. Funes de pares associados
O AutoLlSP possui um tipo de lista especial composta por apenas dois
elementos que so decompostos pelas funes CAR e CDR da seguinte forma:
a funo CAR retorna o primeiro elemento dessa lista.
a funo CDR retorna o segundo elemento dessa lista.
Essa lista recebe o nome de PAR ASSOCIADO representada por uma
lista comum com apenas elementos separados por um ponto . (por essa razo,
pares associados tambm so chamados de dotted pairs).
ExempIos:
(setq pa 1 '(1 . 2 )) ; pa1 contm um par associado
(car pa1) ; retorna 1
(cdr pa1) ; retorna 2 , ao invs de retornar '(2)
(setq pa2 ( "abc" . '( "a" "b" "c" ) ))
(car pa2 ) ; retorna "abc"
(cdr pa2 ) ; retorna '( "a" "b" "c" )
Neste item sero apresentadas as funes de manipulao de pares
associados . Essas funes so extremamente importantes para o tratament o de
elementos grficos do AutoCAD via AutoLlSP.
5.1.1. ASSOC
Zaya
22
(ASSOC <item> <Iista-de-pares-associados>)
Dado uma lista de pares associados e um item, retorna o par associado cujo
primeiro elemento por igual ao item fornecido. Caso nenhum par seja encon trado, a
funo retorna NIL.
ExempIo (veja na prxima pgina) :
(setq LPA (Iist '(1 . "um") '(2 . "dois") '(3 . "trs")
(assoc 1 LPA) ; retorna '(1 . "um")
(assoc "um" LPA ) ; retorna NIL
5.1.2. CONS
(CONS <item1> <item2>
Constri pares associados. Retorna o par associado formado pelos
parmetros <item1> e <item2>
ExempIos:
(cons 1 "LINE") ; retorna (1 . "LINE")
(cons "ab"2) ; retorna ("ab" . 2)
(cons 10 '(1.0 2.0 3.0 )) ; retorna (10 . '(1.0 2.0 3.0 ))
5.2. Funes especiais de manipuIao de Iistas
Algumas funes de manipulao de lista possuem caractersticas muito
especiais que podem confundir o programador, provocando erros e gerando horas e
horas de depurao de rotinas.
Preste ateno s explicaes e dicas apresentadas neste item. lsto poder
evitar muitos erros de programao.
5.2.1. SUBST
(SUBST <novo-item> <veIho-item> <Iista>
Zaya
23
Substitui toda ocorrncia de <velho-item> na lista <lista> por <novo-item>.
Retorna a nova lista.
ExempIo:
(setq L '(1 "AA" '(2 3 ) "AA" '(2 3 ) ) )
(subst "BB" '(2 3 ) L) ; retorna '(1 "AA" "BB" "AA" "BB")
A funo SUBST , juntamente com a funo ASSOC apresentada no item
anterior, muito utilizada no acesso a elementos do AutoCAD via AutoLlSP.
5.2.2. APPEND X LIST
APPEND e LlST so funes de composio de listas, primeira
vista muito parecidas; porm ambas geram resultados totalmente diferentes.
A funo APPEND agrupa vrias LISTAS numa nica Iista. Por exemplo:
(append '( 1 ) '( 2 ) '( 3 )) ;retorna '( 1 2 3 )
(append NIL '( 1 )) ;retorna '( 1 )
( append 1 2 3 ) ; resuIta ERRO (parmetros invlidos)
A funo LIST agrupa vrios ELEMENTOS numa nova Iista.
Por exempIo:
(Iist '(1 ) '(2 ) '( 3 )) ;retorna '( '(1 ) '( 2 ) '( 3 )
(Iist NIL '( 1 )) ; retorna '( NIL '( 1 ))
(Iist 1 2 3 ) ; retorna '( 1 2 3 )
5.2.3. APPLY
Zaya
24
(APPLY <funo> <Iista>)
Executa a funo especificada por <funo> utilizando os elementos do
parmetro <lista> como parmetros.
ExempIo:
; LNUM uma Iista composta por nmeros
(setq LNUM '( 5 10 20 ))
(appIy '+ LNUM)) ; retorna a 35, a soma de todos os nmeros da lista.
5.2.4 FOREACH
(FOREACH <nome> <Iista> <expr1> <expr2> ...)
Para cada elemento do parmetro <lista., a funo FOREACH avalia as
expresses <expr1>, <expr2>, ... substituindo o identificador <nome> pelo
elemento da lista em questo. A funo retorna o valor da ltima expresso avaliada
com o ltimo elemento da lista.
ExempIo:
; testa a existnia dos arquivos
(foreach ARQ '("ACAD.PAT" "ACAD.LIN" "ACAD.OVL"))
(princ ARQ)
(if (nuII (findfiIe ARQ)
(princ ": Arquivo NO encontrado)
)
)
5.2. LAMBDA
'(LAMBDA <Iista-de-parmetros> <expr1> <expr2> ...)
Zaya
25
Esta funo utilizada para definir funes annimas para serem
utilizadas juntamente com as funes APPLY e MAPCAR.
ExempIo:
; Converte um nguIo de grau para radiano.
;Pi um vaIor constante (aproximadamente 3.1415926)
; fornecido peIo AutoLISP
'(Iambda (AG) (/ * AG Pi) 180.0))
; Incrementa todos os nmeros de uma Iista,
; (exempIo do manuaI de AutoLISP)
(setq L '(10 20 30 ))
(mapcar '1 + L) ;retorna '(11 21 31 )
;LAMBDA e MAPCAR: retorna o ponto mdio de um segmento
;definido por dado dois pontos dados
(setq P1 '( 5 10 20 )
P2 '( 15 10 30)
)
(mapcar '(Iambda ( K1 K2 ) ; .K1 e K2 so coordenadas
( ( + K1 K2) 2.0) ; soma e divide por dois
) ; . P1 e P2 so duas listas
P1P2 ; . correspondentes aos pontos
) ; . retorna '( 10 10 25 )
)
trecho de programa acima equivale a :
(Iist (/ ( + 5 15) 2.0) ; primeira execuo/primeiros elementos)
(/ ( + 10 10) 2.0) ; segunda execuo/segundos elementos)
Zaya
26
(/ ( + 20 30) 2.0) ;terceira execuo/terceiros elementos)
; LAMBDA e APPLY : a funo verifica o arquivo
; cujo nome "ACAD" e cuja extenso "CFG" existe
(setq NARQ '(Iambda (NOME EXTENSO / ARQ)
(appIy (Iambda ( NOME EXTENSI / ARQ)
(setq ARQ (streat NOME "." EXTENSO))
(if (findfiIe ARQ)
(princ (streat "\ nArquivo" "ARQ " existe."))
(princ (streat "\nArquivo "ARQ" NO existe."))
)
)
NARQ
)
Obs1: na funo APPLY, os elementos da lista NARQ so os parmetros
de entrada de funo definida por LAMBDA.
Obs2: variveis locais podem ser definidas dentro da funo LAMBDA. No
exemplo, ARQ uma varivel local.
5.2.6. MAPCAR
(MAPCAR <funo> <Iista1> <Iista2> ...)
MAPCAR executa a funo dada pelo parmetro <funo> utilizando os
elementos da lista <lista1> <lista2> ... como entrada da seguinte forma:
o nmero de listas deve ser igual ao nmero de parmetros de entradas da
funo .
essas listas devem ter o mesmo nmero de elementos.
Zaya
27
<funo> executada N-vezes, onde N o nmero de elementos de
cada lista.
a primeira execuo de<funo> utiliza como parmetro de entrada todos
os primeiros elementos das listas, a segunda, utiliza os segundos elementos e
assim por diante.
MAPCAR retorna uma lista de N elementos ( tamanho de cada lista)
contendo resultado de cada uma das execues realizadas.
ExempIos na prxima pgina:
6. FUNES DE ACESSO A ENTIDADES
Este captulo explica como as entidades grficas do AutoCAD podem ser
consultadas e alteradas via AutoLlSP.
6.1. Conceitos
AutoLlSP possui funes que permitem acessar, consultar e editar entidades
do banco de dados grficos do AutoCAD. lsto feito atravs de um tipo de dado
especial denominado ENTlTY NAME ( nome de entidade).
Entity Name um cdigo atravs do qual se obtm a lista contendo os
dados propriamente ditos de uma entidade. Esta lista recebe o nome de ENTlTY
LlST (lista de entidade).
'ENTlTY LlST uma lista composta por pares associados, um para cada
dado :
o primeiro elemento do par associado um nmero inteiro que indica o tipo
de informao. Este nmero considerado como CDlGO DXF ( o mesmo cdigo
utilizado nos arquivos de DXF)
o segundo elemento o prprio dado.
ExempIo: entity list de uma linha.
Zaya
28
( (-1 . <Entity name:5000012>) (0 . "LINE") (8 . "0")
(10 3.0 5.0 0.0) (11 1.0 2.0 1.0) )
-1 o cdigo DXF de ' entity name:
0 o cdigo DXF de tipo de elemento.
Veja tabela de cdigos DXF das entidades do AutoCAD no apndice ll
desta apostila.
6.2. Acesso a entidades
6.2.1. ENTLAST
(ENTLAST)
Retorna o entity name da ltima entidade criada no desenho.
ExempIo:
(command "LINE" "0,0" "1,1" "' ) ;cria uma linha
(setq EN (ENTLAST)) ; entity-name da linha.
6.2.2. ENTNEXT
(ENTNEXT [< "ENTITY-NAME">]
Retorna o entity-name da entidade seguinte <entity-name > no banco
de dados do AutoCAD. Se <entity-name> no for fornecida, retorna a primeira
entidade do banco de dados do AutoCAD. Caso no exista entidade seguinte,
retorna NIL.
ExempIo:
Zaya
29
(setq EN1 (entnext)) ; primeira entidade no desenho
(setq EN2 (entnext EN1)) ; segunda entidade no desenho.
6.2.3. ENTSEL
(ENTSEL [<mensagem>]
Retorna uma lista contendo o entity-name e o ponto de identificao de um
elemento selecionado pelo usurio. < mensagem> o texto de prompt a ser
exibido na rea de dilogo.
ExempIo:
(setq EL (entseI "\ nSeIecione eIemento: "))
Na linha de comando surgir a seguinte mensagem:
Command: Selecione elemento:
Aps a seleo , a ENTSEL retorna uma lista com dois elementos: ; entity -
name
do elemento e o ponto de identificao.
( <Entity name5000e03> (10.0 14.0 0.0))
6.2.4. NENTSEL (R11))
(NENTSEL [<mensagem>]
Retorna um elemento identificado pelo usurio:
se o elemento identificado for uma entidade simples (no for nem polyline
nem bloco), a funo NENTSEL tem o mesmo comportamento da funo ENTSEL
e retorna uma lista contendo o entity-name da entidade e o ponto de identificao.
Zaya
30
se o elemento for uma polyline, a funo NENTSEL retorna uma lista
contendo o entity-name do vrtice mais prximo onde foi identificada a polyline e
o ponto de identificao.
se o elemento for um bloco, a funo NENTSEL retorna uma lista com
quatro elementos:
-entity-name do sub-elemento identificado do bloco.
T o ponto de identificao.
- Matriz de transformao: Model to World Transformation
T lista d entity-names de blocos que contm a entidade identificada.
Pode ser mais que um dependendo do nvel de alinhamento (blocos compostos
por outros blocos).
Quando um bloco definido atravs de comando BLOCK , as entidades
que o compem so armazenadas no desenho numa coordenada especial
denominada MCS-Model Coordinate System (Sistema de Coordenadas do
Modelo do Sistema).
Quando um bloco inserido no desenho os seus sub-elementos no so
duplicados. O AutoCAD apenas constri uma matriz de transformao que , aplicada
aos sub-elementos , transporta-os do MCS para o WCS e reposiciona-os no espao
na posio, ngulo e escalas desejados. Essa matriz de transformao retornada
pela funo NENTSEL na forma de uma lista composta por quatro outras listas de
trs elementos cada uma:
( ( X1 Y1 Z1 ) ( X2 Y2 Z2 ) ( X3 Y3 Z3 ) ( X4 Y4 Z4 ) )
Zaya
31
Para transformar um ponto em MCS para WCS necessrio fazer o
seguinte clculo;
Xwcs = ( X1 * Xmcs) + ( X2 * Ycms ) + ( X3 * Zmcs ) + X4
Ywcs = ( Y1 * Xmcs) + ( Y2 * Ycms) + ( Y3 * Zmcs ) + Y4
Zwcs = ( Z1 * Xmcs) + ( Z2 * Ycms) + ( Z3 * Zmcs) + Z4
6.2.5. HANDENT
(HANDENT <handIe > )
Retorna o entity-name da entidade associada ao <handle> fornecido.
ExempIo:
(setq EL (handent "1E3")) ; retorna a entidade associada ao
; handle 1E3
6.3. ManipuIao de entidades
6.3.1. ENTDEL
(ENTDEL <" entity-name"> )
Elimina a entidade do desenho. A segunda chamada da funo ENTDEL
com o mesmo "entity-name restaura a entidade do desenho.
ExempIo:
(setq EL (entIast))
(entdeI EL) ; Elimina o ltimo elemento criado
(entdeI EL ) ; Restaura o elemento
Zaya
32
6.3.2. ENTGET
(ENTGET < "entity-name">
Retorna a lista de dados da entidade.
; identifica uma Iinha
(setq EL (entseI "\ nidentifique uma Iinha; '))
(setq NEL (car EL ) ; nome da entidade
PTI (cadr EL) ; ponto de identidade
LEL ( entget NEL ) ; lista de dados
;( ( -1 . < Entity name:5000012>)
;(0 . LlNE )
; (8 . 0)
; (10 3.0 5.0 0.0)
;( 11 1.0 2.0 1.0)
; )
6.3.3.
6.3.4. ENTMAKE
(ENTMAKE < "entity-Iist ">)
Cria uma entidade grfica no AutoCAD a partir de uma lista de pares
associados semelhantes s listas retornadas pela funo ENTGET. Se a entidade
for criada com sucesso a funo retorna a prpria lista de dados, caso contrrio,
retorna NIL.
ExempIo:
(setq LD (Iist
( cons 0 "LINE") ; tipo de entidade: linha
( cons 10 (Iist 3.0 5.0 0.0)); vrtices da linha
( cons 11 (Iist 1.0 2.0 1.0))
)
)
Zaya
33
(entmake LD) ;cria a li nha
OBS: os dados LAYER, TIPO DE LINHA e NDICE DE COR no foram
fornecidos, neste caso, a funo assume os valores correntes configurados no
momento da criao da entidade.
6.3.4. ENTMOD
(ENTMOD <"entity-Iist">)
Atualiza o banco de dados do AutoCAD com a lista de dados fornecida. A
lista de dados deve ser uma lista de pares associados semelhante lista retornada
pela funo ENTGET. A funo ENTMOD serve para efetivar alteraes feitas na
entitu-list atravs das funes SUBST, CONS e ASSOC.
ExempIo:
(setq EL (entget (entIast))) ; EL recebe a entity-list da
; ltima entidade criada:
; (-1 . <Entity name:5000012>)
; (0 . LlNE)
; (8 . 0)
; (10 3.0 5.0 0.0)
; (11 1.0 2 .0 1.0 )
;)
(setq PT (Iist 10.0 20.0 0.0 )) ; Novo vrtice
(setq EL subst ( cons 10 PT) ; substitui o vrtice
(assoc 10 EL) ; ( (-1 . <Entity name:5000012>)
EL ; (0 . LlNE)
) ; (8 . 0)
) ; (10 10.0 20.0 0.0 )
; (11 1.0 2.0 1.0 )
Zaya
34
; )
(entmod EL) ; atualiza o banco de dados do AutoCAD
6.3.5. ENTUP
(ENTUPD <"entity-name">)
A funo ENTUP serve para efetivar alteraes feitas nas entity -list's
dos sub-elementos de entidades complexas (polylines e blocos ) atravs
das funes SUBST, CONS e ASSOC. O <entity-name> fornecido deve ser o
nome de uma entidade complexa.
ExempIo:
; Suponha que o Itimo eIemento criado seja uma poIyIine
(setq PLL (entIast))
(setq VT (entget (entnext PLL) ; VT recebe o entity-list
; do primeiro vrtice
; ( ( -1 . <Entity name:5000012>)
; ( 0 . VERTEX)
; ( 8 0 )
; ( 10 3.0 5.0 0.0)
; ( 40.0 ) (41.0)
; ( 42.0 ) ( 50.0 )
; ( 70.0 )
;)
(setp PT (Iist 10.0 20.0 0.0 )); Novo vrtice
(setp VT (subst (cons 10 PT) ; substitui o primeiro vertice
(assoc 10 VT) ;( -1 < Entity name: 50000 12 > )
VT ; ( 0. VERTEX)
; (8 . 0)
Zaya
35
; (10 10.0 20.0 0.0 )
; (40.0) (41.0)
; (42.0) (50.0)
; (70.0)
;)
(entmod TV) ; atualiza o vrtice
(entupd PLL) ; atualiza a polylin
7. FUNES DE SELEO DE ENTIDADES
Este captulo explica como selecionar conjuntos de entidades grficas
do AutoCAD via AutoLlSP.
7.1 Conceitos
O AutoLlSP possui funes que permitem definir conjuntos de
entidades do banco de dados grfico do AutoCAD. lsto feito atravs de um tipo de
dado especial denominado SELECTlON-SET.
Selection-Set um cdigo que identifica um conjunto de entidades
grficas. Atravs desse cdigo possvel obter a seqncia de Entity -names das
entidades que fazem parte desse conjunto.
Selection-Sets so interpretados pelo AutoLlSP como selees simples
feitas via AutoCAD, por exemplo, atravs do comando SELECT. No entanto, os
recursos de seleo de elementos das funes do AutoLlSP so mais poderosos
que os fornecidos pelos comandos do AutoCAD.
ExempIo:
(setp SS (ssget)); exemplo de definio de selection-set
(princ SS) ;exibe <Selection set:1>
(command "ERASE" SS"") ; apaga os elementos do selection-set SS
7.2 SeIeo de conjuntos de entidades
7.2.1. SSADO
(SSADD [< "entity-name'> [<"seIection-set">]])
Zaya
36
Adiciona a entidade <entity-name> no conjunto <selection-set> e retorna
o nome do selection-set. Se o parmetro <selection-set> no for fornecido, a
funo cria um novo selection-set contendo apenas a entidade fornecida. Se
nenhum dos parmetros for fornecido, a funo cria um novo selection-set
contendo apenas a entidade fornecida. Se nenhum dos parmetros for fornecido, a
funo cria um selection-set vazio.
No caso em que novos selection-setsso criados, a funo retorna um
novo nome para esses selection-sets.
Veja exemplo na prxima pgina.
ExempIo:
( setq LE entIast)) ; ltima entidade criada no AutoCAD
(setq SS1 (ssget)) ; conjunto selecionado pelo usurio
(setq SS1 (ssad LESS1) ; acrescenta a entidade LE ao
; conjunto SS1
(setq SS2 (ssadd LE)) ; cria SS2 apenas com LE
(setq SS3 (ssadd)) ; cria SS3, conjunto vazio
7.2.2. SSDEL
(SSDEL <"ENTITY-NAME"> <"SELECTION-SET">
Elimina a entidade <entity-name> do conjunto <'selectio-set> e retorna o nome
do selection-set. Se a entidade no estiver no conjunto, a funo no faz nenhuma
alterao.
ExempIo:
(setq LE (entIast)) ; ultima entidade criada no AutoCAD
(setq SS1 (ssdeI LE SS1)) ; Se LE estiver no conjunto SS1, a f uno
; retira LE e retorna o nome doSS1
; Caso contrrio, o nome do SS1
Zaya
37
; retornado sem nenhuma alterao
7.2.3. SSGET
(ssget [<PONTO>])
Retorna um selectio-set> . Se o <ponto> for fornecido, a funo retorna um
conjunto contendo apenas a entidade identificada por <ponto>. Caso contrrio, a
funo pede para o usurio selecionar um conjunto, considerando vlido qualquer
modo de seleo disponvel no AutoCad.
ExempIo:
(setq PT '(1.0 1.0 0.0))
(setq SS1 (ssget PT)) ; Retorna um selection-set contendo
; a entidade identificada por PT.
; Caso nenhuma entidad e tenha sido
; identificada, retorna NlL
(setq SS2 (ssget)) ; pede que o usurio selecione um
; conjunto. A mensagem Select objects
; ;e exibida na rea de dilogo.
7.2.4. SSGET
(SSGET "X"<Iista)
Retorna um selection-set contendo entidades selecionadas atravs de um filtro
definido pelos elementos do parmetro <lista>. Os elementos de<lista> devem ser
pares associados cujo primeiro elemento um cdigo DXF que define o critrio de
seleo e o segundo, o valor desse cdigo.
Veja tabela com alguns exemplos de cdigos DXF
Zaya
38
DXF Significado e ExempIo
0 tipo de entidade : ( 0 . LlNE)) )
2 nome do bloco: (2 . BLK1)
6 tipo de linha: (6 . DASHED)
7 estilo de texto: ( 7 . STANDARD)
8 layer': ( 8 . 0)
38 'elevation: ( 38 . 10.0000)
39 thickness: (39 . 5.0000)
62 ;indice de cor: (62 . 3)
66 attribute follow flag: (66 . 1)
210 direo de extruso: (210 ( 0.0 0.0 1.0 ))
ExempIo:
;Seleciona todos os crculos do desenho
(setq SSCIRCLE (ssget "X" (Iist ( cons 0 "CIRCLE")))
Seleciona todos os blocos do desenho com nome BLK1
"(setq SS2 (ssget "X" (Iist (cons 2 "BLK1")))
Seleciona todos os textos do layer DESENHO
(setq SS3 (ssget "X" (Iist ( cons 0 "TEXT) (cons 8 "DESENHO")))
7.2.6. SSLENGTH
(SSLENGTH <"seIection-set">)
Retorna o nmero de entidades contidas no <selection-set>).
ExempIo:
; NSS : nmero de bIocos "BLK1"no desenho
(setq SS (ssget "X"( Iist ( cons 2 "BLK1")))
(setq NSS (ssIength SS))
Zaya
39
7.2.7. SSMEMB
(SSMEMB <"entity-name"> <"seIection-set">
Retorna T se a entidade estiver no conjunto e NlL caso contrrio.
ExempIo:
(setq SS ( ssget))
(if (ssmemb (entIast) SS)
(princ '\ nPertence ao conjunto.")
(princ "\ nNao pertence ao conjunto."))
7.2.8. SSNAME
(SSNAME <"seIection-set"> <ndice> )
retorna a N-sima entidade do <selection-set>, onde N dado pelo parmetro
<ndice>. A contagem comea a partir do 0 , isto , a primeira entidade acesa pelo
nmero 0.
ExempIo:
(setq n 0) ; ndice
(setq SS (ssget)) ; Selection-set
(repeat (ssIength)) Acessa todas as entidades do conjunto
(setq EL (sname SS n )
n ( 1+ n)
)
...
)
8. FUNES DE ACESSO A TABELAS
Zaya
40
AutoLlSP possui funes de consulta (apenas consulta) s tabelas do AutoCAd que
armazenam informaes internas do sistema:
"LAYER" : tabela de descrio de layers
'LTYPE" : tabela de descrio de tipo de linhas
"VIEW" : tabela de descrio de vistas salvas
"STYLE" : tabelas de descrio de estilo de texto
"BLOCK" : tabela de descrio de blocos
"UCS" : tabela de descrio de UCS's salvos
"VPORTS" : tabela de descrio de diviso de janelas
"APPID" : tabela de aplicaes ((R11))
"DIMSTYLE" : tabela de estilos de dimensionamento ((R11))
8.1. Acesso a TabeIas
8.1.1. TBLNEXT
(TABLMEXT <nome-da-tabeIa> [<fIag>])
Retorna o prximo registro da tabela. Caso o parmetro <flag> seja diferente de
NlL , volta para o incio da tabela e retorna o primeiro registro.
<nome-da-tabela> pode assumir qualquer um dos valores listados anteriormente.
Veja exempIo na prxima pgina:
ExempIo:
.desenho definido com dois layers: "0" e "LINHAS_DE_CENTRO
; Primeiro layer definido
(setq La1 (tbInext "LAYER" T))
Zaya
41
; TBLNEXT retorna lista:
( (0 . LAYER ) ; tipo : LAYER
(2 . 0) ; nome do layer: 0
(70 . 0) ; layer no est congelado (frozen)
(62. 7) ; ndice de cor do layer: 7 (branca)
(6 . CONTlNUOUS) ; tipo de linha : contnua)
;Segundo layer definido
(setq LA2 (tbInext "LAYER"))
; TBLNEXT retorna a lista:
( ( 0 . LAYER) ; tipo: LAYER
( 2 . LlNHAS_DE_CENTRO) : nome do Layer: LlNHAS_DE_CENTRO
(70 . 1) ; layer est congelado (frozen)
(62.5.) ; ndice do layer: 5 (azul)
( 6 . CENTER) ;tipo de linha: linha de centro
)
; Na terceira chamada. A funo retorna NlL
(setq LA3 (tbInext "LAYER"))
8.1.2. TBLSEARCH
(TBLSEARCH <nome-da-tabeIa> <smboIo> <smboIo> [<fIag>])
Zaya
42
Retorna o registro identificado por <smbolo> . Caso <flag> seja diferente de NlL,
chamadas posteriores da funo TBLNEXT retornaro subsequentes ao registro
encontrado.
ExempIo:
; Procura o estilo "ROMANC" na tabela "STYLE
"(setq EST1 (tbIsearch "STYLE" "ROMANC"))
; Se o estilo estiver definido, a funo retorna uma lista
; semelhante lista abaixo . Caso contrrio, retorna NIL
( ( 0 . STYLE) ; tipo STYLE
( 2 . ROMANC ) ; nome do estilo: ROMANC
(70 . 0 ) ; texto definido na horizontal
(40 . 10 .0) ; altura fixa do texto
( 41. 0.75) ; fator de escala de largura (width factor)
(50 . 0.0) ; ngulo de inclinao
(71 . 0) ; texto gerado da es querda para direita
(3. ROMANC) ; arquivo de fonte de texto
(4. ''') ; arquivo de Bigfont
)
APNDICE 1: Lista por funcionaIidade das Funes do AutoLISP
Zaya
43
OBS1: os parmetros entre [ ] so opcionais
OBS2: ((R11)) indica que a funo ou a opo s est disponvel a partir do
Release 11.
SMBOLOS ESPECIAIS
,
Abreviao da funo QUOTE
\
lndica pausa, espera entrada de dados do usurio
C:
Prefixo utilizado nos nomes de funes para construo de novos
comandos do AutoCad em AutoLlSP.
NIL
Lista vazia ou smbolo falso.
PI
Valor de Pl = 3.1415
PAUSE
Eqivale ao smbolo \.
T
Smbolo verdadeiro
FUNES DE MANIPULAO DE LISTAS
Zaya
44
(APPEND LST1 LST2 ...)
Retorna uma lista composta pela juno de todas as listas dadas.
(APPLY ITEM ALST)
Dada a lista de pares associados ALST , retorna o par associado cujo
primeiro elemento dado por lTEM.
(ASSOC ITEM ALST)
Dada a lista de pares associados ALST, retorna o par associado cujo
primeiro elemento dado por lTEM.
(CAR LST)
Retorna o primeiro elemento da lista LST.
(CDR LST)
Retorna a lista LST sem o primeiro elemento.
(C??..? R LST)
Retorna a lista ou o elemento definid o pela combinao das funes CAR
e CDR identificadas pelas letras A e D. Exemplo: CADDE , CDADR.
(CONS EXPR1 EXPR2)
Zaya
45
Retorna o par associado formado por EXPR1 e EXPR2.
(LAST LST)
Retorna o ltimo elemento da lista LST.
(MAPCAR FUNC LST1 LST2)
Retorna uma lista cujos elementos so o resultado da execuo da
funo especificada por FUNC utilizando os elementos das listas LST1, LST2 ,
etc. , como argumentos. Todas as listas devem ter o mesmo nmero d e
elementos; alm disso, o nmero de listas fornecidas deve ser igual ao nmero
de parmetros de entrada da funo FUNC.
(LENGTH LST)
Retorna o nmero de elementos da lista LST.
(LIST EXPR1 EXPR2 ...)
Retorna uma lista formada por todas as expresses dadas.
(MEMBER ITEM LST)
Retorna o resto da lista LST a partir da posio do elemento especificado
por lTE (inclui o prprio elemento). Caso lTEM no pertena a LST, a funo
retorna NlL.
(NTH N LST)
Retorna o N-simo elemento da lista LST. A contagem comea a partir
do zero.
Zaya
46
(REVERSE LST)
Retorna a lista LST invertida.
(SUBST ITEM1 ITEM2 LST)
Substitui toda ocorrncia de lTEM2 na lista LST por lTEM1 e retorna a nova
lista.
FUNES ARITMTICAS
( + NUM1 NUM2 ...)
Retorna o resultado da soma de todos os nmeros.
( - NUM1 NUM2 ....)
Retorna o resultado da diferena do primeiro nmero menos a soma dos
outros .
( * NUM1 NUM2 ...)
Retorna o resultado do produto de todos os nmeros.
( / NUM1 NUM2 .. )
Retorna o resultado da diviso do primeiro nmero pelo produto dos outros.
( 1 + NUM)
Zaya
47
Retorna o valor do nmero incrementado de 1.
( 1 - NUM)
Retorna o valor do nmero decrementado de 1.
(ABS NUM)
Retorna o valor absoluto do nmero.
(EXP NUM)
Retorna E elevado a NUM
(EXPT NUM1 NUM2)
Retorna NUM1 elevado a NUM2.
( GCD NUM1 NUM2)
Retorna o mximo divisor comum dos nmeros.
(LOG NUM)
Retorna o logaritmo neperiano do nmero.
(MAX NUM1 NUM2 ...)
Retorna o valor mximo.
Zaya
48
( MIN NUM1 NUM2 ... )
Retorna o valor mnimo.
(REM NUM1 NUM2 ... )
Retorna o resto da diviso do primeiro nmero pelo produto dos outros.
( SQRT NUM)
Retorna a raiz quadrada do nmero .
FUNES TRIGONOMTRICAS
(ATAN NUM1 NUM2])
Retorna o arco tangente (em radianos) e NUM1 ou, caso NUM2 seja
fornecido , arco tangente de NUM1/NUM2.
(COS NUM)
Retorna o co-seno dos nmeros ( em radianos).
(SIN NUM)
Retorna o seno do nmero (em radianos).
FUNES GEOMTRICAS
(ANGLE PT1 PT2)
Retorna o ngulo (em radianos) do segmento definido pelos dois pontos.
Zaya
49
(DISTANCE PT1 PT2)
Retorna a distncia entre os dois pontos.
( INTERS PT1 PT2 PT3 PT4 [FLG])
Retorna o ponto de interseo entre o segmento definido pelos dois
primeiros pontos e o segmento definido pelos dois ltimos. Se FLAG for Nil, o
ponto de interseo s retornado se pertencer aos segmentos.
(POLAR PT ANG DIST)
Retorna o ponto cuja distncia polar de PT definida pelo ngulo ANG e
pela distncia DlST.
(> AT1 AT2 ...)
Retorna T se os elementos esto em ordem decrescente.
(< AT1 AT2 ... )
Retorna T se os elementos esto em ordem crescente.
(> = AT1 AT2 ... )
Retorna T se os elementos esto em ordem decrescente 9faz a
comparao com maior ou igual).
(/ = AT1 AT2)
Zaya
50
Retorna T se os elementos so diferentes.
( = AT1 AT2 ... )
Retorna T se todos os elementos so iguais.
(AND EXPR1 EXPR2 ..)
Retorna T se todas as expresses so verdadeiras.
( ATOM ELEM)
Retorna T se o elemento for um tomo (no for nem uma lista nem NlL)
(BOUNDUP AT)
Retorna T se o tomo contm um valor diferente de NlL.
(EQ VAR1 VAR2 )
Retorna T se os contedos das variveis so iguais.
(EQUAL EXPR1 EXPR2 [PREC])
Retorna T se as expresses so iguais. PREC indica a preciso numrica a
ser considerada na comparao.
(LISTP ELEM)
Retorna T se o elemento for uma lista.
Zaya
51
(MINUSP NUM)
Retorna T se o nmero for negativo.
(NOT EXPR)
Retorna o contrrio da expresso. Se a expresso for NlL, retorna T , caso
contrrio, retorna NlL.
(NULL ELEM)
Retorna T se o elemento for NlL.
(NUMBERP ELEM)
Retorna T se o elemento for um tomo numrico.
(OR EXPR1 EXPR2 ... )
Retorna T se uma das expresses for verdadeira.
(ZEROP NUM)
Retorna T se o nmero for igual a zero.
FUNES DE MANIPULAO DE BITS
( ~ NUM)
Retorna o resultado da operao lgica NOT com os bits do nmero.
Zaya
52
(BOOLE FUNC NUM1 NUM2 ... )
Retorna uma das 16 possveis operaes booleanas indicada pelo
parmetro FUNC aplicada aos nmeros inteiros fornecidos.
(LOGAND NUM1 NUM2 ... )
Retorna o resultado (um nmero inteiro) da operao lgica de bits
AND entre os nmeros inteiros fornecidos.
(LOGIOR NUM1 NUM2 ... )
Retorna o resultado (um nmero inteiro ) da operao lgica de bits
OR entre os nmeros inteiros fornecidos.
(LSH NUM NUMBITS)
Retorna o resultado da operao de BlTWlSE SHlFT sobre o valor
do nmero inteiro NUM, NUMBlTS positivo indica o nmero de bits a serem rodados
para a esquerda. NUMBlTS negativo indica o nmero de bits a serem rodados para
a direita.
FUNES DE CONVERSO
(ANGTOS ANG [MODO] [PREC])
Zaya
53
Converte o ngulo em cadeia de caracteres segundo os par metros
opcionais MODO e PREC. MODO indica a unidade angular e PREC a preciso
numrica a serem utilizadas na converso. Em caso de omisso desses parmetros
, a funo considera os valores configurados na variveis de sistema AUNlTS e
AUPREC.
(ASCII STR)
Retorna o cdigo ASCll do primeiro caracter se DTR.
(ATOF STR)
Converte cadeia de caracter em nmero real.
(ATOI STR)
Converte cadeia de caracter em nmero inteiro.
(CHR NUM)
Retorna o caracter correspondente ao cdigo ASCll indicado por
NUM.
(FIX NUM)
Transforma um nmero real em nmero inteiro. A converso feita
truncando-se a poro fracionria do nmero real.
(FLOAT NUM)
Transforma um nmero inteiro em nmero real.
(ITOA NUM )
Zaya
54
Converte um nmero inteiro em cadeia de caracter.
(RTOS NUM [MODO] [PREC])
Converte nmero real em cadeia de caracteres segundo os
parmetros opcionais, MODO e PREC. MODO indica a unidade linear e PREC., a
preciso numrica a serem utilizadas na converso. Em caso de omisso desses
parmetros, a funo considera os valores configurados nas variveis de sistema
LUNITS e LUPREC.
(TRANS PT COORD1 COORD2 [FLAG])
Converte um ponto da coordenada COORD1 para a COORD2. Se
FLAG for diferente de NlL, a funo considera PT como des locamento e no como
ponto. COORD1 e COORD2 podem assumir os seguintes valores:
VALOR SISTEMA DE COORDENADAS
0 World Coordinate System (WCS)
1 User Coordinate System (UCS)
2 Display Coordinate System (DCS)
3 Paper Space Coordinate System ((R11))
NENT (nome de entidade) Entity Coordinate System (ECS)
FUNES DE MANIPULAO DE CADEIA DE CARACTERES
(READ STR)
Zaya
55
Retorna o primeiro tomo ou lista contida na cadeia de caracteres
STR.
(STRCASE STR [FLAG] )
Converte os caracteres de STR para maisculo. Se FLAG for T ,
converte para minsculo.
(STRCAT STR1 STR2 ... )
Retorna a cadeia resultante da concatenao de todas as cadeias
dadas.
(STRLEN STR)
Retorna o nmero de caracteres que compem a cadeia.
(SUBSTR STR INIC [INCAR])
Retorna uma sub-cadeia de STR , comeando pela posio dada
por lNlC com comprimento NCAR. Se NCAR no for fornecido , a sub-cadeia vai
at o final da cadeia original .
(WCMATCH STR PADROES) ((R11))
Verifica se a cadeia de caracteres STR se encaixa num dos padres
contidos na cadeia de caracteres PADROES.
FUNES DE ACESSO A TELA E DISPOSITIVOS DE ENTRADA
(GRAPHSCR)
Muda a tela para modo grfico.
Zaya
56
(GRCLEAR)
Limpa temporariamente a tela grfica.
(GRDRAW PT1 PT2 COR [FLAG])
. Desenha um trao de PT1 a PT2. O COR indica do trao . Se FLAG for
diferente de zero, o trao ser desenhado no modo HlGHLlGHT.
(GRREAD [FLAG])
. L dados diretamente de um dispositivo de entrada. Retorna uma lista cujo
primeiro elemento o cdigo de identificao do dispositivo de entrada e o
segundo, o valor lido. Se FLAG for T, a funo retorna uma coordenada de ponto
sem que o boto de identificao de ponto tenha que ser pressionado.
CDIGO TIPO DE ENTRADA VALOR LIDO
2 teclado cdigo ASCll da tecla
3 seleo de ponto coordenadas do ponto
4 campo de menu de tela ndice do campo
5 seleo de ponto sem boto de
identificao
coordenada do ponto
6 menu BUTTONS nmero do boto
7 menu TABLET1 ndice do campo
8 menu TABLET2 ndice do campo
Zaya
57
9 menu TABLET3 ndice do campo
10 menu TABLET4 ndice do campo
11 menu AUX1 ndice do campo
12 coordenada associada ao menu
BUTTONS
coordenada do ponto
13 menu de tela selecionado via
teclado
ndice do campo
(GRTEXT [BOX TEXT [FLAG]])
.Exibe o texto TEXT na linha de status ou no menu de tela. O parmetro BOX
para assumir os seguintes valores.
BOX REA
0 a 20 campos do menu lateral (0 indica o campo no topo da tela)
-1 linha de status (regio do layer corrente)
-2 linha de status (regio das coordenadas).
.Se FLAG for T, os textos colocados no menu de tela sero exibidos em modo
highligt. Caso nenhum parmetro seja fornecido, a funo restaura a tela original.
(PROMPT STR)
N Exibe a cadeia de caracteres STR na rea de dilogo.
(REDRAW NENT [MODO])
N Redesenha a entidade NENT de acordo com o valor em MODO:
Zaya
58
MODO EXIBIO
1 redesenha a entidade na tela
2 apaga a entidade da tela
3 desenha a entidade em highlight
4 desfaz o highligt
(TERPRI)
Provoca um avano de linha na rea de dilogo.
(TEXTPAGE) ( (R11) )
Muda a tela para modo texto, limpando a tela automaticamente.
(TEXTSCR)
Muda a tela para modo texto.
FUNES DE MANIPULAO DE ARQUIVOS
(CLOSE FD)
Fecha arquivo em disco referenciado pelo file descriptor FD
(FINDFILE ARQ)
Procura o arquivo ARQ. Se encontrar, retorna o path completo. Caso
contrrio retorna NIL
Zaya
59
(OPEN ARQ MODO)
Abre arquivo com nome fornecido em ARQ segundo o modo especificado
MODO: r (READ ONLY), w (WRlTE ONLY), a(APPEND). Se a operao for bem
sucedida, retorna o file descriptor do arquivo.
(PRIN1 EXPR [FD])
Se FD for fornecido, grava a expresso EXPR no arquivo. Caso contrrio,
exibe expresso na rea de dilogo
(PRINC EXPR [FD])
Esta funo idntica funo PRlN1. A nica diferena que a funo
PRlNC grava/exibe a expresso sem expandir os caractere s de controle.
(PRINT EXPR [FD])
Esta funo idntica funo PRlN1. A nica diferena que a funo
PRlNT pula uma linha antes de gravar/exibir a expresso.
(READ-CHAR [FD])
Se FP for fornecido, l um caracter do arquivo. Caso contrrio, l o cara cter
do teclado. A funo retorna o cdigo ASCll do caracter lido.
(READ-LINE [FD])
Se FD for fornecido, l uma cadeia de caracteres do arquivo. Caso contrrio,
l do teclado.
Zaya
60
(WRITE-CHAR NUM [FD])
Se FD for fornecido, grava o caracter correspondente a o cdigo ASCll dado
por NUM. Caso contrrio, exibe o caracter na rea de dilogo.
(WRITE-LINE STR [FD])
Se FD for fornecido, grava a cadeia de caracteres STR no arquivo. Caso
contrrio, exibe na rea de dilogo.
FUNES DE ESTRUTURA DE CONTROLE DE PROGRAMAO
(COND (TESTE1 EXPR1) (TESTE2 EXPR2) .)
Avalia a expresso EXPRl pertencente a primeira lista cujo
(COND (TESTE1 EXPR1) (TESTE2 EXPR2).)
Avalia a expresso EXPRl pertencente a primeira lista cujo teste TESTEl
resultar T.
(FOREACH NOME LST EXPR)
Avalia a expresso EXPR para cada elemento da lista LST. Os elementos da
lista LST so identificados dentro da expresso EXPR atravs do nome fornecido em
NOME. A funo retorna o resultado da ltima avaliao executada.
(IF TESTE EXPR1 [EXPR2])
Se TESTE resultar verdadeiro, avalia a expresso EXPR1. Se EXPR2 for
fornecida, essa expresso avaliada no caso de TESTE retorna NlL.
Zaya
61
(PROGN EXPR1 EXPR2.)
Agrupa vrias expresses de modo que possam ser executadas como uma
nica expresso.
(REPEAT NM EXPR1 EXPR2)
Avalia cada uma das expresses dada NUM vezes. NUM deve ser um
nmero (ou tomo numrico) inteiro.
(TRACE FUNC1 FUNC2)
Exibe os parmetros de entrada e o valor retornado pelas funes dadas. A
funo TRACE utilizada como ferramenta de depurao de programas.
(UNTRACE FUNC1 FUNC2.) Retira as funes dadas da lista de funes
afetadas pela funo TRACE.
(WHILE TEST EXPR1 EXPR2.)
Avalia as expresses enquanto a expresso TEST retornar T.
FUNES DE ENTRADA DE DADOS
(GETANGLE [PT] [MSG])
Espera a entrada de um valor de ngulo no sistema de unidade angular e
retorna o valor em radianos. Se um ponto PT for fornecido, a funo pedir mais um
ponto e retornar o ngulo (em relao ao eixo X) do segmento formado por PT e o
ponto dado. A mensagem MSG, caso seja fornecida, aparecer na rea de
comandos.
Zaya
62
(GETCORNER PT [MSG])
Espera a entrada de um ponto com rubber -band (eco de retngulo ancora
ponto PT. A mensagem MSG, caso seja fornecida, aparecer na rea de comando.
(GETDIST [PT] [MSG] )
Espera a entrada de um valor de distncia no sistema de unidade linear
corrente retorna esse mesmo valor. Se um ponto PT for fornecido, a funo mais
ponto e retornar a distncia entre o PT e o ponto dado. A mensagem MSG, caso
fornecida, aparecer na rea de coma ndo.
(GETINT [MSG])
Espera a entrada de um nmero inteiro. A mensagem MSG, caso seja
fornecida, aparecer na rea de comando.
(GETKWORD [MSG]}
Espera a entrada de uma cadeia de caracteres que seja uma palavra -chave,
palavra-chave so configuradas vi a funo lNlTGET. A mensagem MSG, caso
fornecida, aparecer na rea de comando.
(GETORIENT [PT] [MSG])
Esta funo similar GENTANGLE. A nica diferena que quando o
ngulo for fornecido por dois pontos, o clculo ser tomando-se como base a
direo do ngulo 0 configurado pelo comando UNITS.
(GETPOINT [PT] [MSG])
Zaya
63
Espera a entrada de um ponto com rubber -band (eco de linha) ancorado no
ponto PT. A mensagem MSG, caso seja fornecida, aparecer na rea de comando.
(GETREAL [MSG])
Espera a entrada de um nmero real. A mensagem MSG, caso seja fornecida,
aparecer na rea de comando.
(GETSTRING [FLAG] [MSG])
Espera a entrada de uma cadeia de at 132 caracteres. Se o parmetro FLAG
no for fornecido, a funo no aceitar cadeias de caracteres que con tenham
espaos. A mensagem MSG, caso seja fornecida, aparecer na rea de comando.
(INITGET [BITS] [STR])
Define restries para as funes de entrada tipo GETxxx. Os bits do
parmetro BlTS possuem os seguintes significados:
- 1 no permite entrada nula
- 2 no permite entrada de zero (ex: 0, 0.0000)
- 4 no permite a entrada de valores negativos
- 8 no verifica os limites de coordenadas
- 16 retorna pontos em 3D ao invs de 2D
- 32 utiliza linha pontilhada para fazer rubber -band (eco)
Esses bits podem ser combinados atravs de operaes de adio.
O parmetro STR contm palavras-chaves que sero reconhecidas pela funo
GETKWORD
Zaya
64
FUNES DE ACESSO A ENTIDADES
(ENTDEL NENT)
Elimina a entidade do desenho. A segunda chamada da funo ENTDEL com
a mesma entidade faz com que ela seja restaurante ao desenho.
(ENTGET NET)
Retorna a lista de dados correspondente a entidade dada.
(ENTLAST)
Retorna a ltima entidade criada no desenho.
(ENTMAKE [LENT]) (( R11))
Cria um elemento grfico no AutoCAD a partir de uma lista de pares
associados semelhante s listas retornadas pela funo ENTGET. Se o elemento foi
criado com sucesso a funo retorna prpria LENT, seno retorna NlL.
(ENTMOD LENT)
Modifica a lista de dados de uma entidade.
(ENTNEXT [NENT])
Retorna a primeira entidade do desenho. Caso o parmetro NENT seja
fornecido retorna a entidade seguinte NENT no banco de dados.
Zaya
65
(ENTSEL [MSG])
Espera que o usurio selecione uma entidade. Retorna uma lista contendo a
entidade selecionada e o ponto de identificao da mesma.
(ENTUPD NENT)
Modifica entidade complexa (por linhas e blocos).
(HANDENT HANDLE)
Retorna a entidade associada ao handle fornecido.
(NENTSEL [MSG]) ((R11))
Espera que o usurio selecione uma entidade. Se for uma entidade simple s,
retorna uma lista contendo a entidade selecionada e o ponto de identificao da
mesma. Se for uma polyline retorna o entity-name do vrtice identificado. Se for um
bloco, retorna uma lista contendo o entity-name da sub-entidade identificada, o
ponto de identificao, uma matriz de transformao e a lista dos entity -names do
bloco que contm a sub-entidade em questo.
FUNES DE SELEO DE ENTIDADES
(SSADD [NENT] [SS])
Retorna o selection set resultante da adio da entidade NENT ao selection
set SS. Caso os parmetros NENT e SS no sejam fornecidos, a funo retorna um
selection set vazio.
Zaya
66
(SSDEL NENT SS)
Retorna o selection set resultante da eliminao da entidade NENT do
selection set SS
(SSGET [PT])
Retorna um selection set com elementos selecionados pelo usurio atravs
dos modos de seleo convencionais do AutoCAD. Se o ponto PT for fornecido,
retorna um selection set contendo o elemento identificado por PT.
(SSGET MODO [PT1] [PT2])
Retorna um selection set de acordo com o critrio determinado pelo
parmetro MODO: P seleciona entidades pr-selecionadas, L seleciona a ltima
entidade criada, W e C selecionam entidades por janela e exigem o fornecimento
dos dois pontos que determinam as diagonais da janela de seleo .
(SSGET "X' LST)
Retorna um selection set contendo entidades selecionadas atravs de um
filtro definido pelos elementos da lista LST. Os elementos de LST devem ser pares
associados ( construdas atravs da funo CONS) cujo primeiro elemento um
cdigo DXF que define o critrio de seleo e o segundo elemento o valor desse
cdigo DXF a ser utilizado como chave para a busca de entidades, conforme
mostrado nos exemplos da tabela:
DXF SIGNIFICADO EXEMPLO DE SELEO
0 Tipo da entidade (cons 0 LlNE): linhas
2 Nome de bloco (cons 2 FlG1): blocosFlG1
Zaya
67
6 Tipo de linha (cons 6 DASHED'):linhas
pontilhadas
7 Estilo de texto (cons 7 FONTE1 :texto com
fonte FONTE1
8 Layer (cons 8 0): entidades do
layer 0
38 Elevation (cons 38 10.0): entidades com
elevao 10.0
39 Thickness (cons 39 5.0): entidades com
thickness 5.0
62 lndice de cor (cons 62 2): entidades com
cor (vermelha)
66 Atribute follow (cons 66 1):blocos com
atribute follow flag1
210 Vetor de extruso (cons 210 (0 0 1): entidades
com vetor de extruso (0 0 1)
(SSLENGTH SS)
Retorna o nmero de entidades do selection set SS
(SSMEMB NENT SS)
Retorna T se a entidade NENT fizer parte do selection-set SS
(SSNAME SS N)
Retorna a N-sima entidade do selection-set SS. A contagem comea a
partir de 0.
Zaya
68
FUNES DE ACESSO A TABELAS
(TBLNEXT NTAB [FLAG])
Retorna o prximo registro da tabela NTAB. Caso o parmetro FLAG seja
fornecido, retorna o primeiro registro da tabela NTAB. O parmetro NTAB pode
assumir os seguintes valores:
- "LAYER" : tabela de descrio de layers
- "LTYPE" : tabela de descrio de tipos de linha
- "VIEW" : tabela de descrio de vistas salvas
- "STYLE" : tabela de descrio de estilos de fontes de texto
- "BLOCK" : tabela de descrio de blocos
- "UCS" : tabela de descrio de UCS's
- "VPORT" : tabela de descrio de diviso de janelas (viewports)
- "APPID" : tabela de aplicaes ((R 11))
- "DIMSTYLE": tabela de estilo de dimensionamento ((R11))
(TBLSEARCH NTAB SIMB [FLAG])
Retorna o registro da tabela NTAB identificada por SlMB. Caso o parmetro FLAG
seja fornecido, chamadas posteriores da funo TBLNEXT retornaro os registros
subsequentes ao registro encontrado.
FUNES DE GERENCIAMENTO DE MEMRIA
(ALLOC NUM)
Configura o tamanho de cada segmento de memria reservado para AutoLlSP.
Zaya
69
(EXPAND N)
Aloca N segmentos de memria com tamanho configurado pela funo ALLOC.
(GC)
Garbage Colector . Libera (torna disponvel) todos os ns no utilizados.
(MEM)
Exibe o estado corrente de alocao de memria do AutoLisp.
(VMON)
Ativa o modo de paginao de funo em memria virtual.
FUNES ESPECIAIS DO AUTOLISP
(ADS) ((R11))
Retorna uma lista contendo os nomes dos programas ADS carregados na
memria.
(COMMAND ARG1 ARG2.)
Executa comandos do AutoCAD.
(DEFUN NFUN (PARAM1 PARAM2.) EXPR1 EXPR2.)
Define novas funes no AutoLlSP.
(*ERROR* MSG)
Funo de tratamento de erro interno.
(EVAL EXPR)
Retorna o resultado da avaliao da expresso EXPR.
(GETENV VAR)
Zaya
70
Retorna o valor da varivel de ambiente (environment) VAR.
(GETVAR VARSIS)
Retorna o valor da varivel de sistema VARSlS.
(LAMBDA (ARG1 ARG2.) EXPR1 EXPR2.)
Define funes temporrias sem nome-las.
(LOAD NARQ [EXPR]
Carrega um arquivo contendo rotinas AutoLlSP. Se o parmetro EXPR
(expresso) for fornecido, em caso de erro no carregamento do arquivo, ao invs de
acusar erro, o AutoLlSP avaliar a expresso EXPR e a funo LOAD retornar o
valor retornado por EXPR.
(MENUCMD STR)
Carrega ou mostra um menu na tela grfica do AutoCAD.
(OSNAP PT STR)
Retorna o ponto notvel (SNAP POlNT) determinado pelo ponto PT e pelo
mode de snap configurado em STR; por exemplo, END, CEN seleciona pontos
finais e centros.
(QUOTE EXPR)
Retorna a expresso EXPR sem avali-la.
(SET SIMB EXPR )
Atribui o valor da expresso EXPR ao smbolo SlMB, onde SlMB apenas
um smbolo e no uma varivel.
(SET VAR1 EXPR1 [VAR2 EXPR2].)
Atribui o valor da expresso EXPR1 varivel VAR1. A mesma chamada da
funo SETQ pode conter vrias atribuies.
Zaya
71
(SETVAR VARSIS EXPR)
Atribui o valor da expresso EXPR varivel de sistema VARSlS.
(TYPE ITEM)
Retorna o tipo do item fornecido: REAL, FILE, STR, INT, SYM, LIST, SUBR,
PICKSET, ENAME, PAGETB.
(VER)
Retorna a verso corrente do AutoLlSP.
(VPORTS)
Retorna uma lista com a descrio da configurao de janelas (viewports)
corrente.
(XLOAD NADS) ((R11))
Carrega uma aplicao desenvolvida em ADS.
(XUNLOAD NADS) ((R11))
Retira a aplicao ADS da memria .
OBS1: Se na lista de qualquer entidade a descrio de tipo de linha (cdigo DXF 6)
no existir, ento a entidade tem tipo de linha definida por layer.
OBS 2: Se na lista de qualquer entidade a descrio de cor (cdigo DXF 62) no
existir, ento a entidade tem cor definida por layer.
OBS 3: ((R 11)) indica cdigo disponvel a partir do Release 11.
ENTIDADE: LINE
CDIGO DESCRIO
0 tipo do elemento: LlNE
-1 nome da entidade
Zaya
72
6 tipo de linha
8 layer
10 primeiro vrtice
11 segundo vrtice
38 elevao ( elevation)
39 altura (thickness)
62 cor da linha
210 direo de extruso
Ex: ((0.LlNE) (8. 0) (10 (3.0 4.0 0.0)) (11 (5.0 6.5 0.0))
(-1 . <Entity name: E0000100>) (210 (0.0 0.0 1.0)))
ENTIDADE: CIRCLE
CDIGO DESCRIO
0 tipo de elemento: ClRCLE
-1 nome da entidade
6 tipo de linha
CDIGO DESCRIO
8 Layer
10 Centro do crculo
38 Elevao (elevation)
39 Altura (thickness)
40 Raio do crculo
62 Cor do crculo
Zaya
73
210 Direo de extruso
Ex: ((0. ClRCLE) (8.0) (10 (3.0 4.0 0.0 )) (40 . 2.0)
(-1 . <Entity name: E0000200>) (210 (0.0 0.0 1.0)))
ENTIDADE: ARC
CDIGO DESCRIO
0 Tipo de elemento: ARC
-1 Nome da entidade
6 Tipo de linha
8 Layer
10 Centro do arco
38 Elevao (elevation)
39 Altura (thickness)
40 Raio do arco
50 ngulo inicial
51 ngulo final
62 Cor do arco
210 Direo de extruso
Ex: ((0 . "CIRCLE") (8 ."0") (10 (3.0 4.0 0.0)) (40 . 2.0)
(-1 . <Entity name: E00002000>) (210 (0.0 0.0 1.0)))
Zaya
74
ENTIDADE: TEXT
CDIGO DESCRIO
0 tipo de elemento: TEXT
-1 nome da entidade
1 texto
6 tipo de linha
7 estilo de fonte de texto
8 layer
10 ponto de insero
11 pon to de alinhamento
38 elevao (elevation)
39 altura (thickness)
40 altura do texto
41 fator de escala da largura
50 ngulo de rotao
62 cor do texto
71 flag de gerao de texto:
0: texto normal
2: texto escrito de trs para fr ente (espelhado em Y)
4: texto escrito de cabea para baixo (espelhado em X)
72 flag de justificao horizontal do texto:
Zaya
75
0: justificado left
1: justificao center
2: justificao right
3: justificao align
4: justificao midle
5: justificao 'fit
Veja continuao na prxima pgina:
CDIGO DESCRIO
73 Flag de alinhamento vertical ((R11))
0: alinhado pela linha base
1: alinhado pela linha inferior
2: alinhado pela linha central
3: alinhado pela linha de topo
210 Direo de extruso
ExempIo:
((0. TEXT) ( 8.0) (10 (.30 4.0 0.0 )) (40 . 2.0)
(41 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (72 . 0) (73 .0)
(-1. <Entity name: E0000400>) (210 (0.0 0.0 1.0)))
ENTIDADE : POLYLINE
CDIGO DESCRIO
0 Tipo de elemento: POLYLlNE
-1 Nome da entidade
6 Tipo de linha
8 Layer
38 Elevao (elevation)
39 Altura (thickness)
Zaya
76
40 Espessura inicial (start width)
41 Espessura final (end width)
62 Cor da polyline
66 Vrtices folow flag : sempre 1
67 Tipo de polyline:
0: polyline aberta
1: polyline fechada
2: curve fit polyline
4: spline fit polyline
8: 3D polyline
16: 3D polygon mesh (ver cdigo 75 a seguir)
32: polygon mesh fechado na direo N
64: polyface mesh ((R11))
68 No caso de 3D MESH: nmero de vrtices na direo M
69 No caso de 3D MESH : nmero de vrtices na direo N
70 No caso de 3D MESH: nmero de vrtices na direo M com
smooth
71 No caso de 3D MESH: nmero de vrtices na direo N com
smooth
72 No caso de 3D MESH:
0: superfcie simples
5: superfcie tipo B-spline quadrtica
6: superfcie tipo B-spline cbica
8: superfcie de Bezier
210 Direo de extruso
ExempIo: ((0. POLYLlNE) (8. 0) (40. 0.0) (41 . 0.0) (66 . 1)
(70 . 0) ( 71 . 0) (72 . 0) (73 . 0) (74 . 0) (75 . 0)
(-1 . <Entity name: E0000500>) (210 (0.0 0.0 1. 0) ))
ENTIDADE: VERTEX
CDIGO DESCRIO
Zaya
77
0 Tipo de elemento: VERTEX
-1 Nome da entidade
6 Tipo de linha
8 Layer
10 Coordenada do vrtice
39 Altura (thickness)
40 Espessura inicial (start width)
41 Espessura final (end width)
42 Fator BULGE de definio de arco
No caso de curve fit: tangente da curva
62 Cor
70 Tipo de vrtice:
0: vrtice simples
1: vrtice criado por curve fitting
2: no caso de curve fit: vrtice de definio de tangente
8: vrtice criado por spline fitting
16: ponto de controle da spline
32: vrtice de polyline 3D
64: vrtice de 3D MESH
128: vrtice de polyface mesh ((R11))
Zaya
78
ExempIo: ((0. VERTEX (8 . 0) (40 . 0.0) (41 . 0.0) (42 . 0.0)
(70 . 0) ( -1. <Entity name: E0000600>))
ENTIDADE: SEQEND
CDIGO DESCRIO
0 Tipo de elemento: SEQEND
-1 Nome da entidade
6 Nome da entidade pai
8 Layer
ExempIo:
((0 . SEQEND) (8. 0) (-1 . < Entity name: E0000700>)
(-2 . < Entity name:E0000500>)
ENTIDADE: POINT
CDIGO DESCRIO
0 Tipo de elemento: POlNT
-1 Nome da entidade
6 Tipo de linha
8 Layer
10 Coordenada do ponto
38 Elevao (elevation)
Zaya
79
39 Altura (thickness)
50 ngu lo de rotao
62 Cor do ponto
210 Direo de extruso
ExempIo:
((0. POlNT) ( 8 . 0) (10 (3.0 4.0 0.0)) (50 0.0)
(-1 . <Entity name: E0000800>) (210 (0.0 0.0 1.0)))
ENTIDADE: SOLID
CDIGO DESCRIO
0 Tipo de elemento: SOLlD
-1 Nome da entidade
1 Tipo de linha
8 Layer
10 Coordenada do primeiro vrtice
11 Coordenada do segundo vrtice
12 Coordenada do terceiro vrtice
13 Coordenada do quarto vrtice
38 Elevao (elevation)
39 Altura (thickness)
62 Cor do slido
210 Direo de extruso
ExempIo:
((0. SOLlD) (8 .0) (10 (3.0 4.0 0.0))
(11 (3.0 5.0 0.0)) (12 (7.0 5.5 0.0)) (13 (2.0 4.0 0.0)
(-1 . <Entity name: E0000900>) (210 (0.0 0.0 1.0)
ENTIDADE: INSERT
Zaya
80
CDIGO DESCRIO
0 Tipo de elemento: lNSERT
-1 Nome da entidade
2 Nome do bloco
6 Tipo de linha
8 Layer
10 Ponto de insero
38 Elevao (elevation)
41 Fator de escala em X
42 Fator de escala em Y
Fator de escala em Z
50 ngulo de rotao
62 Cor
210 Direo de extruso
ExempIo: ((0 lNSERT) (2 . A1) (10 (3.0 4.0 0.0)) (41 . 1.0)
(42 . 1.0) (43 . 1.0) (50 . 0.0)
(-1 . <Entity name: E0000A00>) (210 (0.0 0.0 1.0)))
ENTIDADE: ATTDEF
CDIGO DESCRIO
0 Tipo de elemento: ATTDEF
-1 Nome da entidade
1 Valor default do atributo
2 tag do atributo
3 prompt do atributo
6 Tipo de linha
7 Estilo de fonte de texto
8 Layer
10 Ponto de insero
38 Elevao (elevation)
39 Altura (thickness)
Zaya
81
40 Altura do texto
41 Fator de escala da largura
50 ngulo de rotao
62 Cor do atributo
70 Tipo de atributo
0: normal
1: atributo invisvel
2: atributo constante
4: atributo com verificao
8: atributo pr-definido
71 Flag de gerao de texto:
0: texto normal
2: texto escrito de trs para a frente (espelhado em Y)
4: texto escrito de cabea para baixo (espelhado em X)
72 Flag de justificao do texto:
0: justificao left
1: justificao center
2: justificao right
3: justificao align
4: justificao middle
5: justificao fit
210 Direo de extruso
ExempIo:
((0. ATTDEF) (1 . 0) (2. COD) (3. Cdigo)
(10 ( 3.0 4.0 0.0)) (40 . 2.0) (41. 1.0) (70 . 0) (71 . 0)
(72 . 1 ) (-1. < Entity name: E0000B00>) (210 (0.0 0.0 1.0)) )
ENTIDADE: ATTRIB
Zaya
82
CDIGO DESCRIO
0 Tipo de elemento: ATTRlB
-1 Nome da entidade
1 Valor do atributo
2 Tag do atributo
3 prompt do atributo
6 Tipo de linha
7 Estilo de fonte de texto
8 Layer
10 Ponto de insero
38 Elevao (elevation)
39 Altura (thickness)
40 Altura do texto
41 Fator de escala da largura
50 ngulo de rotao
62 Cor do atributo
70 Tipo de atributo
0: normal
1: atributo invisvel
2: atributo constante
4: atributo com verificao
8: atributo pr-definido
71 Flag de gerao de texto:
Zaya
83
2: texto escrito de trs para a frente (espelhado em Y)
4: texto escrito d cabea para baixo (espelhado em X)
72 Flag de justificao do texto:
0: justificao left
1: justificao center
2: justificao right
3: justificao align
4: justificao middle
5: justificao fit
210 Direo de extruso
ExempIo:
((0 . ATTRlB) (1 . 90-A) (2 . COD) (3 . Cdigo)
(10 (5.0 3.0 0.0)) (40 . 2.0) (41 . 1.0) (70 . 0) ( 71 . 0)
(72 . 1) (-1 . <Entity name: E0000C00>) (210 ( 0.0 0.0 1.0)
ENTIDADE: 3DFACE
CDIGO DESCRIO
0 Tipo de elemento: 3DFACE
-1 Nome da entidade
6 Tipo de linha
8 Layer
10 Coordenada do primeiro vrtice
11 Coordenada do segundo vrtice
12 Coordenada do terceiro vrtice
13 Coordenada do quarto vrti ce
62 Cor da 3DFACE
70 Tipo de 3DFACE:
Zaya
84
0:3DFACE normal
1: primeira aresta invisvel
2: segunda aresta invisvel
4: terceira aresta invisvel
8: quarta aresta invisvel
ExempIo:
((0.3DFACE) ( 8. 0) ( 10 ( 1.0 2.0 0.0)
(11 (2.0 2.0 0.0)0 (12 (3.0 4.0 0.0 ) (13 (5.0 2.0 0.0)
(70 . 0) (-1 . <Entity name: E0000D00>) (210 (0.0 0.0 1.0)))
ENTIDADE: DIMENSION
CDIGO DESCRIO
0 Tipo de elemento: DlMENSlON
-1 Nome da entidade
2 Nome do bloco (de dimensionamento)
6 Tipo de linha
8 Layer
10 Ponto de definio do cota
11 Ponto mdio do texto de cota
12 Ponto auxiliar de definio de cota
13 Ponto auxiliar de definio de cota
14 Ponto auxiliar de definio de cota
15 Ponto auxiliar de definio de cota
16 Ponto auxiliar de definio de cota
38 Elevao (elevation)
Zaya
85
39 Altura (thickness)
40 Comprimento da linha guia
50 ngulo de rotao da cota
62 Cor da cota
Veja continuao na prxima pgina:
70 Tipo da cota:
0: rodada, horizontal ou vertical
1: alinhada
2: angular
3: diametral
4: radial
5: angular por trs pontos ((R11))
6: ordenada ((R11))
64: ordenada em X ((R11))
210 Direo de extruso
ExempIo:
((0 . DlMENSlON) (2 . *D1) (10 (3.0 4.0 0.0)
(12 (5.0 4.0 0.0)) (11 (4.0 4.0 0.0)) (50 . 0.0)
(13 (0.0 0.0 0.0)) (14 (0.0 0.0 0.0) ) (15 ( 0.0 0.0 0.0)
(16 (0.0 0.0 0.0)) (70 . 0) (-1 . <Entity name: E0000E00>)
(210 ( 0.0 0.0 1.0)))

You might also like