Академический Документы
Профессиональный Документы
Культура Документы
AutoLISP / Visual LISP uma maneira poderosa de estender a funcionalidade AutoCAD e torn-lo mais produtivo, mas muitos evitar us-lo porque acho que muito
difcil de aprender. No to! Este curso comea no incio, definindo arquivos de chave, em seguida, move-se rapidamente atravs de sintaxe bsica, incluindo pontos,
listas, acessar a linha de comando, armazenar e recuperar variveis, escrever suas prprias funes de comando, definindo / retirar definio comandos, tipos de dados,
funes lgicas IF e NO , trabalhando com conjuntos simples e controlar o AutoCAD start-up de modo todas as funes de carga automaticamente. Para tornar tudo
mais fcil de entender, usaremos alguns exemplos do mundo real e at mesmo dar-lhe alguns projetos de casa voc pode trabalhar depois da aula para estender a sua
aprendizagem. Se voc quiser bater o poder de AutoLISP e aumentar a sua produtividade, apertar o cinto para esta sesso.
Sobre o Palestrante:
Robert o chefe da Verdes Grupo Robert Consulting e um alto-falante veterano de 14 anos na Universidade de Autodesk. Voc j
deve ter lido seu trabalho em Cadalyst revista, onde autores a coluna "CAD Manager", ou em seu bi-mensal Boletim do CAD Manager. Ele
formado em Engenharia Mecnica do Instituto de Tecnologia da Gergia e ganhou suas habilidades de CAD a partir de 23 anos de
uso do software AutoCAD, MicroStation, e MCAD. Desde que comeou a sua prpria empresa em 1991, Robert tem exercido
funes de consultoria e de ensino para clientes privados, e em todo os EUA e Canad.
rgreen@CAD-Manager.com
O AutoLISP Vusual LISP - Parte 1
Robert Green
Origens e expectativas
AutoLISP um descendente de Lisp comum, que na verdade uma linguagem de programao muito antiga que foi concebida para
aplicaes de inteligncia artificial. Ele tambm passou a ser de cdigo aberto e, portanto, um ideal (e gratuita) caminho para AutoCAD a
ser alargados com uma linguagem de programao. Desde AutoLISP no tem que ser compilado, o que significa que voc pode executar
programas diretamente, ele foi ainda mais ideal como quase ningum, mas codificadores hard-core mesmo sabia o que um compilador
programa foi em meados da dcada de 1980.
AutoLISP uma linguagem muito poderosa que pode levar anos para aprender e dominar. Eu tenho trabalhado com ele desde 1990 e
eu ainda aprender coisas novas sobre AutoLISP em cada projeto. Dito isto, eu gostaria de dizer que h muita coisa que voc pode fazer
com AutoLISP sem ter que ser um atleta de programao se voc abordar as coisas com uma abordagem de estilo livro de receitas e
usar rotinas existentes.
A primeira coisa a entender que AutoLISP tem alguns arquivos-chave e uma funo chave que realizar operaes de arranque para
voc. Os arquivos de chave pode conter cdigo personalizado AutoLISP que voc quer carregado sempre que o AutoCAD iniciado. H
tambm algumas funes teis que AutoLISP tem predefinidos para executar operaes de inicializao para voc. Vou resumir tudo
aqui:
ACAD200? .lsp Nomes como ACAD2005.LSP, ACAD2006.LSP, ACAD2008.LSP, ACAD2010.LSP, etc. Esse arquivo
MENUNAME.MNL Esse arquivo carrega depois que os arquivos anteriores, mas apenas quando o seu homlogo do
menu CUI (um CUI ou CUIx) carregado no AutoCAD. Ao colocar o cdigo do AutoLISP neste
arquivo que voc pode ter certeza que o cdigo ser carregado na memria apenas quando o
menu pai est em uso.
ACADLSPASDOC Esta varivel controla o carregamento de ACAD.LSP. arquivo acad.lsp apenas cargas uma vez a
menos que voc defina a varivel ACADLSPASDOC para
1 em vez da configurao padro de 0.
2
O AutoLISP Vusual LISP - Parte 1
Robert Green
Para verificar se voc pode criar um arquivo AutoLISP que carrega e executa, siga estes passos:
Digite a seguinte linha na sesso Notepad tomando muito cuidado para corresponder a todos os parnteses e aspas
como eu tenho
Agora salve o arquivo com o nome ACADDOC.LSP e coloque o arquivo na pasta de suporte do seu software
aplicativo AutoCAD. Os locais mais comuns seria a seguinte dependendo da sua verso do AutoCAD:
Comece AutoCAD e verificar seu histrico de linha de comandos (use a tecla F2) para ter certeza que a mensagem O
arquivo ACADDOC.LSP foi carregado Aparece.
Iniciar vrias sesses de desenho na mesma sesso de AutoCAD e verificar se a mesma mensagem exibida
para a histria prompt de comando como cada um comea a desenhar.
Recomendao
A metodologia acima recomendado para adicionar sintaxe bsica AutoLISP ao seu ambiente AutoCAD. Usando a metodologia
ACADDOC.LSP voc no precisa se preocupar com a configurao ACADLSPASDOC e desde que o arquivo provavelmente
no existe em sua instalao j, h essencialmente zero chance de voc escrever sobre ou destruir qualquer personalizao
existente.
Nota 1: Usando ACADDOC.LSP nos rendimentos diretrio APOIO resultados mximos, de baixa complexidade e muito
menos chance de estragar alguma coisa.
Nota 2: Certifique-se de usar um editor de texto simples como o Bloco de notas, em vez de um programa de processamento de texto como o
Word. Notepad ir retirar caracteres estranhos como aspas atrasadas que podem causar seu programa para funcionar mal.
3
O AutoLISP Vusual LISP - Parte 1
Robert Green
voc possa comear a escrever algum cdigo. Os temas bsicos que voc precisa entender so:
Listas e argumentos
Regras de AutoLISP
variveis
Funes
Acessando a linha de comando
Caracteres especiais
A entrada do usurio
Vamos examinar esses tpicos usando uma combinao de palestra e exibio de exemplos de cdigo. Por favor, entenda que, dadas as
limitaes de tempo eu no posso desenvolver plenamente toda a teoria por trs desses comandos. Vou ter de lhe pedir para confiar em
mim por enquanto, em seguida, pesquisar a linguagem mais bem mais tarde, quando voc tem um conhecimento prtico da lngua.
Vamos comear!
Listas e argumentos
Qualquer coisa que voc faz em AutoLISP formatado como uma lista. As listas podem ter ambos os argumentos e funes
embutidas dentro deles para que voc possa realizar vrias atividades. Aqui esto alguns exemplos:
( Linha comando 0.0 1.1 ) Aqui COMANDO a funo, todos os outros so ARGUMENTOS
Se voc estudar mais voc vai comear a ver que qualquer entidade AutoCAD pode ser descrito como uma lista complexa como esta:
((-1 <Entidade nome: 400b1580>.) (0 "LINHA") (330..... <Entidade nome: 40094cf8>) (5 "378") (100 "AcDbEntity") (67 0) (410 .
"modelo") (8 "2") (100. "AcDbLine") (10 198,441 78,786 0,0) (11
247,87 179,589 0,0) (0,0 210 0,0 1,0))
Embora no seja bvio, esta lista descreve uma linha que desenhada na camada de 2, com um ponto inicial e ponto final e um vector UCS
de 0,0,1. Uma vez que voc comear a ler listas, voc est no seu caminho! As listas so simplesmente uma maneira de informaes grupo ou
a apresentao de informaes, na forma de argumentos para uma funo como ilustrado acima. As listas de entidades AutoCAD permitem que
voc
4
O AutoLISP Vusual LISP - Parte 1
Robert Green
executar aes em entidades de AutoCAD atravs de tcnicas mais avanadas de programao do que veremos hoje. Eu s
quero voc para ter um vislumbre do que est sob o cap do AutoCAD.
Regras de AutoLISP
Assim no: (Setq nome Robert Green) ou (nome setq Robert Green)
funes aritmticas um pouco diferentes do que voc est acostumado. Por exemplo:
8+4 (8 + 4) 12
5
O AutoLISP Vusual LISP - Parte 1
Robert Green
Mais matemtica complexa fica um pouco persnickety. Olhe para os exemplos a seguir e lembrar que AutoLISP trabalha de dentro
para fora em relao ao parnteses. Por exemplo:
(8 + 4) * 3 (* (+ 8 4) 3) 36
((4 + 4) * 3) 2 (/ (* (+ 4 4) 3 2)) 12
Vou falar mais sobre os tipos de dados em uma prxima sesso, mas por agora tomar nota cuidadosa assim que voc inserir nmeros
(reais ou inteiros) tem tudo a ver com a forma como os nmeros so processadas.
comando. I aludiu idia de uma funo de comando com argumentos na seo anterior, mas eu no fiz qualquer exemplos
prticos reais. Vamos dar uma olhada em alguns exemplos possveis de falar com AutoCAD atravs da interface de linha de
comando AutoLISP. Se voc queria desenhar uma linha entre dois pontos fornecidos pelo usurio na tela, voc faria o seguinte:
Nota: A instruo PAUSE espera para o usurio e o igual a bater a tecla ENTER. Por qu? Porque essa a maneira o
pessoal da Autodesk configur-lo!
Que tal mais alguns exemplos de acesso linha de comando que voc pode querer realmente usar? Aqui esto alguns
exemplos:
6
O AutoLISP Vusual LISP - Parte 1
Robert Green
(Comando VIEWRES y 5000) Conjuntos visualizar resoluo para nenhum crculos serrilhadas
variveis
Embora sabendo sobre listas uma coisa, fazer algo funcional com listas depende de ser capaz de armazenar e passar variveis
dentro de listas.
As primeiras coisas primeiro: Como voc armazenar uma varivel? Vamos dizer que voc queria para armazenar um chamado valor da
varivel que tem o nmero de 12,7 associado a ele. A fim de definir a varivel precisamos usar a funo SETQ (pense definido igual) como
este:
Esta varivel particular seria uma varivel nmero real. Alguns outros tipos de variveis so mostrados aqui como referncia:
Agora, quando voc interage com AutoCAD voc tem que passar a varivel na linha de comando. Utilize este caso como um
exemplo:
7
O AutoLISP Vusual LISP - Parte 1
Robert Green
Isso no faria muito sentido, no ? Quando voc escreve um programa que voc tem que ter certeza de que as variveis que voc
usa corresponder-se com os comandos do AutoCAD as variveis so falar para. Faz sentido para passar um valor numrico para o
comando VIEWRES, mas no faz qualquer sentido para envi-lo uma varivel do tipo string. Compreender esse truque simples de
digitao varivel torna as coisas muito mais fcil.
A entrada do usurio
Vamos dizer que voc queria escrever um programa que iria criar uma roda com alguns raios na mesma. Bem, quantos raios devem
a roda tem? Se voc escrever um programa com um nmero conhecido de raios, digamos 8, o programa poderia, ento, desenhar
rodas com 8 raios. No seria melhor escrever um programa que desenha rodas com um nmero varivel de raios? Para essa
matria, como sobre a escrita de um programa onde voc especificar o nmero de raios e o dimetro da roda? A fim de especificar
quantos raios so no volante e quo grande o dimetro , voc precisa perguntar ao usurio definir essas variveis como este:
Agora vamos associar a entrada do usurio nos d a uma varivel chamada como esta:
8
O AutoLISP Vusual LISP - Parte 1
Robert Green
como podemos fazer tudo isso de uma forma que acrescenta ao conjunto nativa do AutoCAD de comandos? Afinal, no seria ideal se
pudssemos escrever rotinas AutoLISP que enganam AutoCAD em pensar que tinha novos comandos? Se fizermos um bom trabalho,
nossos usurios de CAD nem vai saber que j programados comandos para eles. Vamos dar alguns exemplos simples para que voc
a) (princ)
Aqui est o que a rotina est fazendo em uma base linha por linha:
(Defun C: ZA () Reserva um comando chamado ZA sem entradas para o comando que explica a
() aps o nome do comando. No se preocupe porque o () funciona como faz
agora; para obter mais para isso exigiria cobertura muito mais detalhada.
9
O AutoLISP Vusual LISP - Parte 1
Robert Green
(Defun C: VR ()
(Defun C: BL ()
A ideia: Queremos criar um comando FZ que executa um comando fil, mas garante que o raio definido
para 0,0 por isso fil cantos afiados.
(Setvar filletrad 0.0) ; Defina o raio de concordncia para 0,0 usando SETVAR
(Comando .fillet pause pausa) ; Invocar FILLET e esperar por duas entradas do usurio
Aprendemos que podemos definir as variveis do AutoCAD usando a funo SETVAR muito facilmente. Acontece que voc pode definir
uma varivel usando SETVAR e pode ler o valor de qualquer varivel usando, de forma inteligente o suficiente, getvar. No sei qual
varivel voc precisa? Consulte o arquivo de ajuda AutoCAD sob a SETVAR tpico Comando e voc encontrar uma lista de todas as
variveis e o que eles fazem!
10
O AutoLISP Vusual LISP - Parte 1
Robert Green
O programa ir funcionar, mas seria melhor se ns checar o valor do raio de concordncia em primeiro lugar e, em seguida, fez com que ns
coloc-lo de volta a forma que encontramos quando nosso programa feito em execuo. Veja como:
(Setvar filletrad 0.0) ; Defina o raio de concordncia para 0,0 usando SETVAR
(Comando .fillet pause pausa) ; Invocar FILLET e esperar por entradas do usurio
Este exemplo ilustra a leitura de um valor varivel de sistema em uma varivel de AutoLISP, em seguida, usando essa varivel mais tarde no
programa de raio de concordncia do AutoCAD ao seu valor anterior. isso a! No to ruim, realmente.
Aqui est uma funo que eu gosto de usar diariamente. Ele faz um AutoPurge e salvar (combinando assim dois comandos para um) atravs
da introduo de ATP:
(Defun c: ATP ()
11
O AutoLISP Vusual LISP - Parte 1
Robert Green
Comentrio Lines
Voc pode ter notado o meu uso do personagem-e-vrgula em alguns exemplos. O ponto e vrgula o caractere de comentrio em
AutoLISP que permite embutir notas no cdigo. Acho comentando muito til porque vrios meses a partir de agora quando eu estou
trabalhando em um programa que eu no me lembro o que eu estava fazendo caminho de volta quando eu escrevi o programa. Tudo
o que vem depois do ponto e vrgula simplesmente ignorado at a prxima linha do programa iniciado.
Eu usei o formulrio trao do comando PURGE especificamente porque eu no queria que a forma de dilogo da invocao de
comando. Embora a forma de dilogo de comandos como purga e CAMADA so legais para o usurio, um comando AutoLISP no
pode chegar e pegar o mouse para interagir com o comando, certo?
Portanto, se um comando tem uma caixa de dilogo, como CAMADA por exemplo, apenas tentar colocar um trao - em frente do comando e ver
se funciona!
Eu prefiro usar a forma pitada de comandos porque eu posso sempre ir para o prompt de comando do AutoCAD e tipo na
forma trao do comando e ver exatamente como ele ir se comportar. Por isso, cometer menos erros escrevendo meus
programas!
Crdito extra: Se voc um gluto de olhar punio na referncia funo AutoLISP (encontr-lo sob o sistema de ajuda
AutoCAD) e olhar para cima a funo INITDIA. Esta funo AutoLISP fornece uma explicao mais detalhada de como os
dilogos so tratados dentro de funes AutoLISP.
No meu exemplo de programao FILLET, por que eu digite o comando como .FILLET em vez de apenas FAIXA?
Eu usei a forma dot do comando apenas no caso de algum gerente CAD empreendedora tinha indefinido o comando FILLET
anteriormente. A forma dot do comando permite que voc chamar o comando, mesmo que tenha sido indefinido. Falaremos mais
sobre retirar definio funes em breve.
12
O AutoLISP Vusual LISP - Parte 1
Robert Green
Usurios de alerta
Voc pode enviar uma mensagem para o usurio assim: ( alerta Mensagem vai aqui)
.undefine TORUS)
Dessa forma, se voc no quiser que os usurios brincando com um comando, basta deslig-lo. Coloque o cdigo no seu arquivo
ACAD.LSP e ele vai ter o efeito equivalente a desativao vocabulrio comando do AutoCAD.
TORUS ()
13
O AutoLISP Vusual LISP - Parte 1
Robert Green
Para trazer um comando de volta simplesmente usar o comando de redefinir no prompt de comando do AutoCAD como esta:
comando: toro
Agora lev-la mais um passo e redefinir a funo com um alerta para o usurio assim:
TORUS ()
Muitas vezes voc pode ter um programa que chama um comando, mas voc no deseja que o usurio veja o comando que voc
invocado. Como exemplo, a funo BL escrevi anteriormente poderia ser feito para ser executado em STEALTH MODO fazendo isso:
(Defun C: BL ()
(Princ)
14
O AutoLISP Vusual LISP - Parte 1
Robert Green
Kicking It Up a Notch
operadores condicionais
Tudo comea com a injeo lgica em seus programas para que eles possam realmente ser inteligente via ramificao e looping estruturas. Na
Para que seus programas para executar operaes lgicas que voc precisa usar operadores condicionais como IF, WHILE e
COND dependendo das circunstncias particulares.
O IF condicional
Como voc pode ver o comando IF avalia um teste para ver se o teste verdadeiro ou falso. O resultado do
comando IF vai ento dois um verdadeiro caso e um falso caso. Portanto, o comando IF pode ser pensada como
uma bifurcao na estrada lgico uma vez que existem dois resultados distintos.
O COND condicional
15
O AutoLISP Vusual LISP - Parte 1
Robert Green
COND como um super SE comando na medida em que permite avaliar um caso de teste e tomar medidas, mas voc pode ter
qualquer nmero de resultados em vez das declaraes IF dois resultados. Vamos ver a estrutura do comando:
Note-se que h mais parnteses para acompanhar e que a estrutura um pouco diferente do que se, mas a
premissa bsica muito parecido com IF.
Nota: Veja como o operador E era usado para avaliar um caso de teste mais complexo? No caso dos raios MDIO tinha de estar
na gama de entre 10 e 15, de modo foram necessrias duas avaliaes.
O ENQUANTO condicional
A principal utilizao do ENQUANTO condicional para executar uma estrutura de loop para qualificar as entradas do utilizador. Vamos ver a
estrutura do comando:
16
O AutoLISP Vusual LISP - Parte 1
Robert Green
(Declarao 1)
(Declarao N)
Vamos dizer que queremos solicitar ao usurio uma srie de raios, mas o nmero de raios deve ser inferior a 20 para os nossos
propsitos. Como podemos lidar com um caso em que o usurio nos d um nmero incorreto? Vamos usar o ENQUANTO
condicional como este:
Neste caso, inicializar a varivel para menos de 20 por isso vamos entrar no loop while. Agora, se um usurio entra um valor para
raios que inferior a 20 que vai ser preso no lao. Se eles entram em um valor de 20 ou superior a expresso de teste verdadeiro
e a rotina cancelada. Simples o suficiente.
Exemplo condicional
Vamos agora escrever um programa que usa estruturas condicionais para conseguir alguma lgica complexa. Aqui est o cdigo
Cdigo real
Primeiro eu vou escrever o cdigo que assegura a entrada do usurio e aplica os casos mximos e mnimos raios. Esta estrutura de loop
usar uma funo ENQUANTO juntamente com um caso de teste complexo como este:
(raios setq 0)
(Enquanto (ou (<raios 8) (> raios 24))
(Raios setq (getInt \ nDigite nmero de raios [de 8 a 24]:))
)
Veja como isso vai ficar o usurio no circuito de entrada, se os raios so muito poucos ou muitos? Agora, a parte do cdigo que
faz com que o pequeno, mdio ou grande designao:
17
O AutoLISP Vusual LISP - Parte 1
Robert Green
(cond
((<Raios 10) (alertar pequena roda))
((E (> = raios 10) (<= raios 15)) (alertar RODA DE MDIO)) ((> raios 15) (alertar Grande roda))
18
O AutoLISP Vusual LISP - Parte 1
Robert Green
Nossa misso agora entender como trabalhar com os pontos para a construo de geometria. Primeiro alguns princpios bsicos:
Obter uma PT1 ponto de um usurio assim: ( setq pt1 (getpoint \ nSelecione um ponto:))
Agora obter PT2 da mesma forma como esta: ( setq pt2 (getpoint \ nSelecione um ponto:))
Voc tem agora dois pontos 3D armazenados nas variveis PT1 e PT2 certo?
Por qu? Porque assim que algum definiu! Apenas memorize essas funes e vamos mover longitudinalmente.
LISTA
Agora vamos dizer que voc gostaria de desenhar um crculo com um ponto de origem que est na coordenada X do PT1 e Y e Z
de coordenadas do PT2. Alm disso, o raio do crculo deve ter um valor de
11.5. Veja como esse cdigo seria:
(Comando .circle (lista (pt1 carro) (CADR pt2) (Caddr pt2)) 11.5)
19
O AutoLISP Vusual LISP - Parte 1
Robert Green
A parte inesperado aqui a declarao LIST, mas o conceito fcil, considerando o seguinte:
Uma vez que voc comear a pensar LISTA cada vez que voc acessar um ponto e seguir as regras bsicas acima torna-se fcil.
Exemplo expandido
Vamos agora reforar o nosso programa roda de criao, adicionando mais algumas exigncias. Aqui est o cdigo pseudo para o
exemplo:
Cdigo real
Primeiro eu vou escrever o cdigo que assegura a entrada do usurio e aplica os casos mximos e mnimos raios. Esta estrutura de loop
usar uma funo ENQUANTO juntamente com um caso de teste complexo como este:
(raios setq 0)
(Enquanto (ou (<raios 8) (> raios 24))
(Raios setq (getInt "\ nDigite nmero de raios [de 8 a 24]:"))
)
(cond
((<Raios 10) (comando ".line" wheel_center "@ 8 <0" ""))
((E (> = raios 10) (<= raios 15)) (comando ".line" wheel_center "@ 10 <0" "")) ((> raios 15) ( ".line" comando
wheel_center "@ 12 < 0" ""))
)
20
O AutoLISP Vusual LISP - Parte 1
Robert Green
Use o comando -ARRAY para que voc interagir com o prompt de comando no uma caixa de dilogo
Use o objeto LTIMA desenhado para construir o conjunto de seleo
Um pouco mais
Vamos agora mudar o programa para que ele sempre vai desenhar os raios nas rodas camada que tem uma atribuio de cor de
amarelo assim:
(raios setq 0)
(Enquanto (ou (<raios 8) (> raios 24))
(Raios setq (getInt "\ nDigite nmero de raios [de 8 a 24]:"))
)
(cond
((<Raios 10) (comando ".line" wheel_center "@ 8 <0" ""))
((E (> = raios 10) (<= raios 15)) (comando ".line" wheel_center "@ 10 <0" "")) ((> raios 15) ( ".line" comando
wheel_center "@ 12 < 0" ""))
)
Novamente, veja a sequncia de comando -CAMADA manualmente e voc vai ver onde eu recebi a ordem de operandos.
21
O AutoLISP Vusual LISP - Parte 1
Robert Green
Digamos que voc queria construir um programa que iria encontrar todos os crculos em seu desenho, no importa qual camada eles
estavam em e alter-las a uma camada chamados crculos com uma cor PORCAMADA de azul.
Primeiro, vamos desenhar um crculo em AutoCAD e usar a funo GE da sesso anterior para ter uma idia de como o crculo
construdo. Aqui est a lista resultante de uma entidade crculo:
((-1 <nome da entidade: 7efa0390>.) (0 "CRCULO") (330..... <Entidade nome: 7ef9ecf8>) (5 "14A") (100 "AcDbEntity") (67 0) (410 .
"modelo") (8. "0") (100. "AcDbCircle") (10 39,9536 25,0516
0.0) (40. 8,1027) (210 0,0 0,0 1,0))
Note-se a par (0. "CRCULO"), que indica o tipo de entidade e (8. "0"), o qual indica a camada. Sabemos que o crculo tem um
atributo de cor PORCAMADA porque a lista entidade no inclui um (62
. X) par (em que X seria o nmero cor AutoCAD). Eu sei que isso tudo pode parecer confuso no incio, mas se voc usar a funo
GE eu dar-lhe explorar diversas entidades que voc vai comear a ver os padres.
Nota: Voc tambm pode obter informaes sobre parmetros da lista entidade no Ajuda do desenvolvedor seo do sistema AutoCAD
ajuda.
Agora vamos dar o salto para a construo de conjuntos de seleo com SSGET usando um exemplo. Primeiro vamos olhar para a construo de um
conjunto que vamos armazenar como um nome de varivel chamada CIRCLE_SET que encontra todos os crculos no desenho no importa qual camada
esto em:
Este um exemplo de filtragem conjunto de seleo que denotado pelo x no formato do comando. O que vem a seguir uma
lista citado de todos os pares associativas de dados que voc gostaria de procurar na construo do conjunto. Quanto menos
itens na lista citada, mais ampla de pesquisa. Aqui est um exemplo de encontrar apenas crculos em GEOM camada:
Isso iria encontrar crculos que so amarelo. Lembre-se o parmetro (62. X) Eu te dei mais cedo?
22
O AutoLISP Vusual LISP - Parte 1
Robert Green
Em qualquer lugar que voc normalmente exigem um conjunto de seleo de objetos como este:
ou
No torn-lo muito complicado, a funo SSGET simplesmente permite que voc construa conjuntos atravs de filtragem assim como voc faria em
Carregando Cdigo
Depois de ter escrito um programa e depurado que voc gostaria de salvar o seu cdigo em seu prprio arquivo LSP para sua
convenincia. Portanto, a questo torna-se como voc pode carregar programas no ambiente AutoCAD? Bem, existem algumas
maneiras que eu vou cobrir brevemente aqui.
Voc sempre pode carregar um arquivo de LSP utilizando AutoCAD de APPLOAD comando para navegar para o arquivo e carreg-lo. O nico
problema com apploading um programa que os resultados da carga sero perdidas na prxima vez que voc sair do AutoCAD se voc no
Se voc quiser carregar o seu programa sempre AutoCAD comea simplesmente usar
d os melhores resultados
23
O AutoLISP Vusual LISP - Parte 1
Robert Green
Desde o ACADDOC.LSP automaticamente carregado durante a inicializao do AutoCAD voc pode simplesmente inserir uma linha em seu arquivo
Onde os parmetros mydirectory e MYPROGRAM so simplesmente substitudos pelos valores apropriados. Observe
os caracteres \\ necessrios para pathing!
Neste caso queremos carregar um arquivo AutoLISP externo com alguns utilitrios nele (chamados UTILS.LSP) que reside em uma
unidade de rede. O contedo do ADADDOC.LSP ficaria assim:
Agora voc tem uma maneira de carregar arquivos de um local de rede remoto para que os programas podem ser mantidos em um s
lugar! Esta a melhor maneira de carregar programas (especialmente se voc um gerente de CAD) porque voc nunca tem que visitar
Compilar o cdigo
Vamos enfrent-lo, se voc colocar o cdigo LSP desprotegido em seu algum rede vai invadir-lo e alter-lo. No seria mais
sensato simplesmente proteger seu cdigo de adulterao antes que isso acontea? Pode apostar que faria e a boa notcia que o
compilador Visual LISP permite-lhe faz-lo facilmente.
Os passos so simples:
Saiba onde o programa que voc est compilando est localizado (exemplo: C: \ TEST \ MYPROG.LSP)
Inicie o ambiente de desenvolvimento integrado Visual LISP, digitando VLIDE no prompt de comando do
AutoCAD
Compilar seu programa usando a seguinte sintaxe: (VLISP-compilar 'st c: \\ test \\ myprog.lsp)
24
O AutoLISP Vusual LISP - Parte 1
Robert Green
Os resultados desta compilao ser que agora voc tem C: \ TEST \ MYPROG.FAS como um (ou rpido Load) arquivo formatado compilado.
Este arquivo pode ser carregado no meio da funo APPLOAD ou usando um comando de carga como esta:
Voc tambm pode escrever seu cdigo na janela de VLIDE (veja abaixo) e obter o benefcio de um drop-down selector de funes e
correspondncia parntese. Alguns programadores realmente como o ambiente VLIDE enquanto outros (eu includo) preferem usar seu
prprio programa de edio. De qualquer forma bom. simplesmente uma questo de preferncia.
Se voc optar por cavar a interface VLIDE passar algum tempo com o utilitrio de ajuda fornecidos com ele.
25
O AutoLISP Vusual LISP - Parte 1
Robert Green
Enquanto ns estamos sobre o tema da ajuda, use a seo de Ajuda do desenvolvedor do sistema AutoCAD ajuda e voc encontrar
26
O AutoLISP Vusual LISP - Parte 1
Robert Green
materiais
Voc pode baixar o guia atualizado claro, PowerPoint e captura de vdeo (com quaisquer notas adicionais ou correes) para esta
apresentao no meu site www.CAD-Manager.com Na pgina de download usando a senha LISP1 (sem as aspas). Sinta-se livre
Voc pode encontrar uma grande variedade de informaes sobre personalizao, programao e gesto de CAD
no meu site: www.CAD-Manager.com
Transferncias: Eu encontrei CAD Depot a ser uma fonte muito til para domnio pblico utilitrios AutoLISP voc pode usar como
inspirao para suas prprias rotinas. Voc pode encontrar a rea de AutoLISP em:
http://www.caddepot.com
Alm rotinas AutoLISP, h um monte de outras matrias Nice em CAD Depot pena algum do seu tempo de navegao.
AutoLISP ajuda: Tambm no se esquea de verificar os recursos de ajuda do AutoCAD na seo Guia do desenvolvedor para uma
riqueza de informaes sobre comandos e funes AutoLISP. Voc pode at querer tentar trabalhar o exemplo tutorial JARDIM
PATH agora que voc tem um pouco de compreenso de como lidar com AutoLISP.
27