Results 1 to 9 of 9

Thread: Usando forms VBA a partir do AutoLISP

  1. #1
    100 Club
    Join Date
    2001-02
    Location
    Porto Portugal
    Posts
    128
    Login to Give a bone
    0

    Default RE: Dúvida sobre VBA e Lisp

    Amigo Francisco

    Já me apercebi que é um expert em programação para o Autocad. Assim vou-lhe por a seguinte questão:
    Como sabe no Autolisp/VisualLisp se pretendermos criar uma rotina com caixa de diálogo, (correspondente ao Userform no VBA) é tarefa hercúlea! sei por experiência própria pois já criei algumas, infelizmente a Autodesk com todas as evoluções que imprime aos produtos ainda não resolveu e simplificou este processo (com alguma coisa do género "Visual DCL").
    Será que no VisualLisp com as funções Activex ou outra (ainda não estou muito familiarizado com Visuallisp) é possivel numa rotina chamar para execução uma Userform criada no VBA e passar os valores para a rotina de Visuallisp? Como é notório é muito mais fácil criar as caixas de diálogo no VBA.
    Obrigado

  2. #2
    Português - Programação Moderator Filipe Francisco's Avatar
    Join Date
    2001-12
    Location
    * PORTUGAL * Sintra *
    Posts
    859
    Login to Give a bone
    0

    Default Re: Usando forms VBA a partir do AutoLISP

    Boas,

    Em relação ao VisualLisp eu não te posso ajudar, porque não é a minha área, em relação ao VBA ai já posso dizer alguma coisa (apesar de não ser um expert).

    Dentro do VBA sei que é possível fazer correr rotinas feitas em Lisp, agora interligar as duas, não sei se é possível.

    Fiz uma busca e o que achei, foi o seguinte, através do "VL-object" é possível comunicar com o VBA, agora como se faz no VisualLisp... não sei

    Agora o que é possivel é dentro do VBA puxar e executar uma rotina Lisp, isso assim funciona bem.

    Option Explicit
    Sub CORRERUMLISP()
    Dim sLispFile As String
    Dim sCmdString As String

    sLispFile = "C:\\LISP\\LISPFILE.lsp" 'ALTERAR SO O NOME E LOCALIZAÇÃO DO LISP
    sCmdString = "(load " & Chr(34) & sLispFile & Chr(34) & ")" & vbCr
    ThisDrawing.SendCommand sCmdString
    End Sub


    Espero de alguma forma ter ajudado, é simples mas ajuda para o efeito

  3. #3
    Member fpmalard's Avatar
    Join Date
    2000-12
    Location
    Belo Horizonte, BRAZIL
    Posts
    38
    Login to Give a bone
    0

    Lightbulb Re: Usando forms VBA a partir do AutoLISP

    Filipe,

    A questão é a seguinte. Não é possível usar os forms do VBA dentro do VisualLISP de forma direta, apenas usando comandos.
    Por outro lado, o VisualLISP suporta a utilização de interfaces ActiveX a, sendo assim, você pode criar um Form em VB num projeto ActiveX e consumi-lo dentro do VisualLISP.

    Funciona mais ou menos assim:

    1) No projeto VB ActiveX:

    Code:
    Public Sub Metodo1(ByVal val As Long)
    MsgBox "Metodo1: " + Str(val)
    End Sub
    Public Sub Metodo2(ByVal strVal As String)
    MsgBox "Metodo2: " + strVal
    End Sub
    No exemplo, estou considerando que o projeto VB se chama "SeuActiveX" e o objeto exportado se chama "ObjetoExportado". Você pode usar qualquer nome que quiser.

    2) No VisualLISP:

    Code:
    (defun teste()
      (vl-load-com) 
      ;;efetua a leitura do servidor ActiveX
      (setq meuObj (vlax-invoke-method (vlax-get-acad-object) "GetInterfaceObject" "SeuActiveX.ObjetoExportado"))
      ;;aciona um método
      (vlax-invoke-method meuObj "Metodo1" 100)
      ;;aciona outro metodo
      (vlax-invoke-method meuObj "Metodo2" "Uma mensagem!!!")
      (vlax-release-object meuObj) 
    )
    Veja este artigo também, parece interessante:
    http://aec.cadalyst.com/aec/article/....jsp?id=100883

    Espero que ajude.
    Abraços,
    Fernando Malard.
    Last edited by fpmalard; 2007-05-23 at 12:32 PM.

  4. #4
    Português - Programação Moderator Filipe Francisco's Avatar
    Join Date
    2001-12
    Location
    * PORTUGAL * Sintra *
    Posts
    859
    Login to Give a bone
    0

    Default Re: Usando forms VBA a partir do AutoLISP

    Obrigado Fernando,

    Eu de Lisp não tenho bases nenhumas (tenho que começar), mas pelo que vi achei o artigo sobre vba e lisp que indicaste muito interessante. Assim que tiver um pouco de tempo vou dar uma vista de olhos mais aprofundada.

    Um Abraço

  5. #5
    100 Club
    Join Date
    2001-02
    Location
    Porto Portugal
    Posts
    128
    Login to Give a bone
    0

    Default Re: Usando forms VBA a partir do AutoLISP

    Afinal até parece que a minha ideia não era tão "idealista" assim! Já vejo luz ao fundo do túnel. Hei-de cá voltar com mais tempo
    Obrigado

  6. #6
    100 Club
    Join Date
    2001-02
    Location
    Porto Portugal
    Posts
    128
    Login to Give a bone
    0

    Default Re: Usando forms VBA a partir do AutoLISP

    Amigo F. Malard

    Agora com mais tempo e concretizando: costumo criar rotinas Lisp paramétricas para desenho, usando o dcl para as caixas de diálogo o que é trabalhoso e limitado (as ferramentas "tools" não são tão extensas como o VBA) a minha ideia seria criar um projecto dvb com a user form para substituir a caixa que habitualmente crio com dcl, criar a rotina em Visuallisp que invocasse a Userform para o utilizador colocar os dados, passasse os dados à rotina Vlisp e executasse o desenho.
    Se pudesse explorar um pouco o processo de passagem de valores (variáveis em memória) do dvb para o código Vlisp, agradecia porque ainda não estou ver bem o processo. Logo que tenha possibilidade criarei um dvb para ilustrar melhor a ideia.
    Obrigado

  7. #7
    100 Club
    Join Date
    2001-02
    Location
    Porto Portugal
    Posts
    128
    Login to Give a bone
    0

    Default Re: Usando forms VBA a partir do AutoLISP

    Amigo Francisco

    Tenho duas Newsletter da Cadalyst Harry's Code Class: Tips for Programmers que penso te irão interessar, infelizmente tentei inserir os emails mas não consegui, assim vou-te enviar directamente para o teu endereço
    Espero que te sejam uteis
    Bom fim de semana

  8. #8
    Português - Programação Moderator Filipe Francisco's Avatar
    Join Date
    2001-12
    Location
    * PORTUGAL * Sintra *
    Posts
    859
    Login to Give a bone
    0

    Default Re: Usando forms VBA a partir do AutoLISP

    Quote Originally Posted by Josue Silva
    Tenho duas Newsletter da Cadalyst Harry's Code Class: Tips for Programmers que penso te irão interessar, infelizmente tentei inserir os emails mas não consegui, assim vou-te enviar directamente para o teu endereço
    Espero que te sejam uteis
    Obrigado por te teres lembrado , mas eu sou assinante dessa newsletter

    Obrigado

  9. #9
    100 Club
    Join Date
    2001-02
    Location
    Porto Portugal
    Posts
    128
    Login to Give a bone
    0

    Default Re: Usando forms VBA a partir do AutoLISP

    Caro Amigo

    De facto, na sexta-feira, quando te tentei enviar, por qualquer mal funcionamento do correio electronico, não consegui. Hoje foi a primeira coisa que fiz mal cheguei ao alcance do meu computador, só depois li o teu último post, desculpa a inconveniência, diz-me o que achaste da leitura.

    Cumprimentos

Similar Threads

  1. Replies: 9
    Last Post: 2017-10-16, 04:27 PM
  2. Inserir blocos com atributos no AutoCAD usando C#.net
    By marcio.cartacho in forum AutoLISP
    Replies: 3
    Last Post: 2010-08-16, 09:16 PM
  3. Gerar um arquivo DWF usando o Plot em VBA
    By marcio.cartacho in forum AutoLISP
    Replies: 0
    Last Post: 2008-06-02, 12:57 PM
  4. XDATA de um objeto no AutoDesk Map usando VBA
    By lincolnrs in forum AutoLISP
    Replies: 0
    Last Post: 2008-03-20, 06:36 PM
  5. Usando mesmo o Paper Space
    By Eduardo Sampaio in forum AutoCAD General
    Replies: 26
    Last Post: 2007-11-17, 06:37 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •