AutoCAD - Português

AutoCAD - Português

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

AutoLISP ou VIsual LISP detectar primeiro uso

290 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.367
Registrado: ‎12-17-2004
Mensagem 2 de 9 (279 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 (271 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.367
Registrado: ‎12-17-2004
Mensagem 4 de 9 (260 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.367
Registrado: ‎12-17-2004
Mensagem 5 de 9 (252 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 (232 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: 587
Registrado: ‎06-13-2007
Mensagem 7 de 9 (227 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.



Fábio Santana | Arquiteto | CAD/BIM Manager | fdscon.wordpress.com
Colaborador da Comunidade de Usuários Autodesk Brasil
Contribuições BIND Coletivo | Configurando Fonts DWG To PDF
Active Member
TrashBR
Envios: 7
Registrado: ‎01-07-2010
Mensagem 8 de 9 (221 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.367
Registrado: ‎12-17-2004
Mensagem 9 de 9 (215 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
Comunicados
Do you have 60 seconds to spare? The Autodesk Community Team is revamping our site ranking system and we want your feedback! Please click here to launch the 5 question survey. As always your input is greatly appreciated.