Olá,
Caros amigos existe algum meio de fazer com que uma rotina detecte que está sendo utilizada pela primeira vez e apartir desta informação e se configure para poder rodar direito por exemplo:
Estou criando uma rotina para calculo de vão entre suportes de tubulação está rotina tem uma caixa de dialogo, arquivos de base de dados, etc. Porem o usuario quando salva está rotina no computador pode fazer isso em qualquer lugar e se o diretorio não constar na lista de suporte do autocad a rotina nao funciona direito então eu queria algo assim:
Se FIRSTRUNFLAG faça
configurar os diretórios do autocad para acrescentar o local onde a rotina esta salva
Configura os arquivos da base de dados
etc..
senao
roda o programa normalmente
fim se
Como detectar que é a primeira vez que o arquivo está rodando? Eu tentei acrescentar uma linha num arquivo de configuração mas depois me lembrei que esse arquivo só vai ficar disponivel se o diretorio estiver mapeado no autocad
Valeu.
Olá TrashBR
em vez de testares para a primeira utilização, porque não
testar se o path da rotina é válido
se sim -> correr a rotina
se não -> adicionar o path ao registo e correr o aplicativo...
É apenas uma ideia
Henrique
Sua odéia é boa, eu até já havia considerado algo detes tipo mas infelizmente não consegui fazer o programa localizar arquivos que estejam fora dos diretórios de suporte do autocad, você sabe como faze-lo?
TrashBR escreveu:
Sua odéia é boa, eu até já havia considerado algo detes tipo mas infelizmente não consegui fazer o programa localizar arquivos que estejam fora dos diretórios de suporte do autocad, você sabe como faze-lo?
Eu já escrevi algo assim, mas tenho que procurar nos meu ficheiros antigos...quando estiver em casa, vou procurar e se encontrar, digo qualquer coisa.
Para o ficheiro funcionar correctamente, mesmo que não esteja numa directoria de suporte, porque não criar uma aplicação unica, tipo vlx, não testado, mas talvez funcione...
Henrique
TrashBR,
não é a resposta que estavas a espera, mas é uma possivel maneira de contornar a situação
(if (not (findfile "Test.dcl")) (setq NewPath (getfiled "Seleciona o Ficheiro" "Test.dcl" "dcl" 8)) )
Quando se carrega o lsp, podes testar para a existencia do teu dcl nas directorias de suporte e se não for encontrado,
pedir ao utilizador que o faça...
Henrique
costumava ter este problema, e resolvi ele compilando a rotina em VLX
facilita muito a implantação de rotinas com quadros de dialogo DCL
Você achou uma postagem útil? Então fique à vontade para curtir essas postagens!
Sua pergunta obteve uma resposta que resolveu a duvida? Então clique no botão Aceitar Solução.
Fábio Santana
Architect | CAD/BIM Manager
Caros amigos,
Depois de garimpar bastante na net eu encontrei essa rotina simplismente perfeita:
(defun _findfile ( pattern root / file ) ;; Lee Mac 2011 (cond ( (setq file (car (vl-member-if (function (lambda ( file ) (wcmatch (strcase file) (strcase pattern)) ) ) (vl-directory-files root nil 1) ) ) ) (strcat root "\\" file) ) ( (vl-some (function (lambda ( path ) (_findfile pattern (strcat root "\\" path)) ) ) (vl-remove "." (vl-remove ".." (vl-directory-files root nil -1))) ) ) ) )
Grande Lee Mac!
Se não tiveres mais ou menos a noção do path, e se por exemplo for fornecida á função a penas um path tipo "c:\\"
o tempo de procura pode ser elevado, mas se isso não importar, aquí está uma versão recursiva dessa função,
é sempre um bom sitio para se procurar grandes funções...
Henrique
Não encontrou o que está procurando? Pergunte à comunidade ou compartilhe seu conhecimento.