Função S::STARTUP: execução após a inicialização

Você pode definir uma função S::STARTUP para executar quaisquer operações de configuração necessárias depois que o desenho for inicializado.

Os arquivos de inicialização LISP (acad.lsp, acaddoc.lsp e MNL) são todos carregados na memória antes da inicialização completa do desenho. Normalmente, isso não significa um problema, exceto se desejar utilizar a função command, que pode não funcionar depois da inicialização do desenho.

Se a função S::STARTUP definida pelo usuário for incluída em um arquivo acad.lsp, acaddoc.lsp ou MNL, ela será chamada quando você inserir um novo desenho ou abrir um desenho existente. Portanto, você pode incluir uma definição de S::STARTUP no arquivo de inicialização AutoLISP para executar quaisquer operações de configuração.

Por exemplo, se você deseja sobrepor o comando HACHURA padrão ao adicionar uma mensagem e a seguir alternando para o comando HACHURAB , utilize um arquivo acaddoc.lsp que contém o seguinte:

(defun C:HATCH ( ) 
 (alerta "Using the BHATCH command!")
 (princ "\nDigite OLDHATCH para obter o comando HATCH atual.\n")
 (comando "BHATCH")
 (princ)
) 
(defun C:OLDHATCH ( ) 
 (comando "HATCH")
 (princ)
) 
(defun-q S::STARTUP ( ) 
 (comand "undefine" "hatch") 
 (princ "\nHATCH redefinido para HACHLIM!\n")
)

Antes da inicialização do desenho, novas definições para HATCH e OLDHATCH são definidas com a função defun. Depois da inicialização do desenho, a função S::STARTUP é chamada e a definição padrão de HATCH é indefinida.

ObservaçãoPara ser anexada, a função S::STARTUP deve ser definida com a função defun-q em vez de defun.

Como uma função S::STARTUP pode ser definida em vários locais (um arquivo acad.lsp, acaddoc.lsp ou MNL ou em outro arquivo do AutoLISP carregado de um desses arquivos), é possível sobrescrever a função S::STARTUP definida anteriormente.

O exemplo a seguir mostra um método de certificação com o qual a função de inicialização trabalha com outras funções.

(defun-q MYSTARTUP ( )

... sua função de inicialização...

)
(setq S::STARTUP (anexar S::STARTUP MYSTARTUP))

O código anterior anexa sua função de inicialização à função S::STARTUP existente e, em seguida, redefine a função S::STARTUP para incluir o código de inicialização. Isso funciona adequadamente independente da existência anterior de uma função S::STARTUP.