AutoCAD - Português

AutoCAD - Português

Responder
Active Member
TrashBR
Envios: 7
Registrado: ‎01-07-2010
Mensagem 1 de 9 (270 Exibições)

AutoLISP ou VIsual LISP detectar primeiro uso

270 Exibições, 8 Respostas
10-09-2013 04:52 PM

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.

*Expert Elite*
hmsilva
Envios: 3.012
Registrado: ‎12-17-2004
Mensagem 2 de 9 (259 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

[ Editado ]
10-10-2013 12:55 AM em resposta a: TrashBR

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

Active Member
TrashBR
Envios: 7
Registrado: ‎01-07-2010
Mensagem 3 de 9 (251 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

10-10-2013 02:49 PM em resposta a: TrashBR

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?

*Expert Elite*
hmsilva
Envios: 3.012
Registrado: ‎12-17-2004
Mensagem 4 de 9 (240 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

10-11-2013 01:07 AM em resposta a: TrashBR

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

*Expert Elite*
hmsilva
Envios: 3.012
Registrado: ‎12-17-2004
Mensagem 5 de 9 (232 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

10-11-2013 03:51 AM em resposta a: TrashBR

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

 

 

Active Member
TrashBR
Envios: 7
Registrado: ‎01-07-2010
Mensagem 6 de 9 (212 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

10-11-2013 12:59 PM em resposta a: hmsilva
Gostei da sua idéia vou tentar hoje se funcionar eu te falo. Na verdade eu acho que vai funcionar sim. Quando eu conseguir por a rotina para funcionar direito eu te mando uma copia.
*Expert Elite*
f_santana
Envios: 573
Registrado: ‎06-13-2007
Mensagem 7 de 9 (207 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

10-11-2013 02:41 PM em resposta a: TrashBR

costumava ter este problema, e resolvi ele compilando a rotina em VLX

facilita muito a implantação de rotinas com quadros de dialogo DCL

- Marque a resposta que resolveu o seu problema como solução, isso ajuda os outros usuários em suas buscas;
- Utilize a ferramenta de pesquisa do fórum, a sua duvida já pode estar respondida.


Send Fabio Santana a Private Message Fábio Santana | Arquiteto | CAD/BIM Manager | fdscon.wordpress.com
Colaborador da Comunidade de Usuários Autodesk Brasil
Active Member
TrashBR
Envios: 7
Registrado: ‎01-07-2010
Mensagem 8 de 9 (201 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

10-11-2013 03:22 PM em resposta a: f_santana

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)))
            )
        )
    )
)
*Expert Elite*
hmsilva
Envios: 3.012
Registrado: ‎12-17-2004
Mensagem 9 de 9 (195 Exibições)

Re: AutoLISP ou VIsual LISP detectar primeiro uso

10-11-2013 03:55 PM em resposta a: TrashBR

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

 

Post to the Community

Have questions about Autodesk products? Ask the community.

New Post