LISP: O que é antigo ainda é muito novo

Bem-vindo à primeira parte do meu primeiro post no Blog da Bricsys! Eu estarei escrevendo sobre LISP programação e transição de seu código existente para o ambiente BricsCAD. Analisarei a implementação, as diferenças de outros ambientes, dicas e truques e outras solicitações de tópicos de nossos leitores. Ou, se você não começou a olhar para o LISP, talvez eu possa dar um pouco de encorajamento e informá-lo que o LISP está vivo e bem. É definitivamente uma linguagem que vale a pena considerar para a customização do BricsCAD.

Primeiro, deixe-me dizer que escrevi algumas centenas de milhares de linhas de LISP nas últimas décadas. Mas eu ainda não me chamaria de especialista. Eu não conheço todos os comandos vl, ou algumas das funções mais “avançadas”. Por favor, perdoe-me se eu apresentar um método que não seja o mais eficiente, ou se eu sugerir um parágrafo de código que possa ser substituído por uma única função. As chances são boas que eu não tinha idéia de que a função "melhor" existia! Eu ainda tropeço em comandos "novos" (para mim) em uma base regular. Quando faço isso, muitas vezes me pergunto quanto tempo essa função recém-descoberta poderia ter me salvado.

Um tempo atrás eu fui questionado por um cliente sobre minha continuação de codificação no LISP. Eu realmente pensei que poderia ter se tornado um conjunto de habilidades que se tornou obsoleto. Pense nas habilidades de desenho (manual) e no domínio da máquina de desenho Vemco - agora, essas são obsoletas! Mas quando olhei para as necessidades reais do meu cliente, encontrei mais e mais motivos para atualizar ou desenvolver novas funções do LISP. Acho que será divertido compartilhar alguns desses conceitos com você para ajudar você a começar.

O LISP é a Rosetta Stone da personalização CAD?

O nome “LISP” vem das palavras “List Processing”. Os dados são armazenados em arquivos .dwg como listas e o LISP lê, grava, altera e armazena esses dados. O melhor de tudo é que esse código é independente de plataforma. É eficiente, pequeno e flexível. Eu prefiro a simplicidade de desenvolver código em uma linguagem não compilada. Embora o código LISP não precise ser compilado, você pode criptografar seus programas para proteger seu código-fonte. Muitos programas que eu escrevi vinte anos atrás em hardware / software / sistemas operacionais “antigos” ainda funcionam hoje em versões atuais do BricsCAD com pouca ou nenhuma modificação.

Recentemente, fui solicitado a resolver um problema de migração para um cliente que estava fazendo a transição do AutoCAD ™ 2014 para 2016. A configuração CAD padrão desta empresa incluiu mais de 400 arquivos de programa com 123.000 linhas de código LISP, com cerca de 4.000 funções definidas. Depois de um pouco de pesquisa, descobri que o principal problema estava relacionado a alguns aplicativos ARX (compilados) que não eram compatíveis com o AutoCAD ™ 2016. Seu código LISP, muito do qual foi escrito no final dos anos 90, funcionou perfeitamente.

Quando me pedem para consultar sobre migração de padrões CAD, eu primeiro determino o quanto do fluxo de trabalho de uma empresa depende deos ferramentas de festa. Em seguida, verifico se suas ferramentas precisam de versões ou plataformas de software específicas. Geralmente, os únicos problemas giram em torno de caminhos de pastas codificados que precisam ser atualizados.

Por que usar o LISP para programas CAD personalizados?

Então, quais são alguns motivos para criar programas personalizados em seu ambiente CAD? Normalmente, escrevo código para melhorar a automação de processos ou fluxos de trabalho, relacionando-se a entidades CAD específicas ou padrões CAD. As rotinas podem ser tão simples quanto algumas linhas de código. Essas funções podem executar manipulações de camada, alterar propriedades de entidade, automatizar desenhos e relacionamentos XREF ou ajudar a padronizar a plotagem e a publicação de fluxos de trabalho.

Ou, essas rotinas podem ser tão complexas quanto um processo de design orientado por parâmetros ou um aplicativo para automatizar o acesso ao banco de dados. Como mencionei anteriormente, um dos principais benefícios do uso do LISP é simplesmente o tamanho pequeno e a grande eficiência da linguagem em um ambiente de CAD. No exemplo que exploraremos na Parte 2 deste post, o código LISP para fazer manipulação geométrica simples (mover e girar) pode ser uma fração do que se pode escrever em uma linguagem compilada (.NET, C, C ++, et al).

Por causa do espaço da página, não estou incluindo um exemplo do .NET aqui. Mas, se você realmente quer ver o que eu estou falando, apenas o Google: “Crie um comando de movimento com o .NET API” e você verá alguns exemplos. Essas linguagens compiladas geralmente exigem centenas de milhares de linhas de código para criar os comportamentos gráficos e as interfaces intuitivas que os usuários esperam em um ambiente CAD do dia-a-dia.

(Este post será continuado na Parte 2)

Você pode personalizar o BricsCAD adicionando programas personalizados escritos em qualquer uma das várias linguagens de programação que são executadas no BricsCAD. Veja aqui quais API's estão disponíveis.