Sim nerd é possível!!! e sem aquele recurso de usar as variaveis de sistema!! navegando na net encontrei um esquema jóia!!!
Vamos lá então, veja o código VBA:
E por fim, experimente isto:
no console do visual lisp (ou na linha de comando do cad), faça:
(setq muitobom "que beleza!!!")
depois edite a macro "pegar" para ficar assim:
E veja os resultados!!
Vamos lá então, veja o código VBA:
Function ReadLispVariable(varname As String) As Variant
Dim VL As Object
If VL Is Nothing Then
Set VL = CreateObject("VL.APPLICATION.16")
End If
With VL.ActiveDocument.Functions
Set SYM = .Item("read").funcall(varname)
ReadLispVariable = .Item("eval").funcall(SYM)
End With
End Function
Sub SetLispVariable(varname As String, value As Variant)
Dim VL As Object
Dim SYM As Object
If VL Is Nothing Then
Set VL = CreateObject("VL.APPLICATION.16")
End If
With VL.ActiveDocument.Functions
Set SYM = .Item("read").funcall(varname)
.Item("set").funcall SYM, value
End With
End Sub
'para testar, rode esta macro primeiro:
Sub setar()
SetLispVariable "nomevar", "Funciona!!"
End Sub
'depois rode esta:
Sub pegar()
MsgBox ReadLispVariable("nomevar")
End Sub
E por fim, experimente isto:
no console do visual lisp (ou na linha de comando do cad), faça:
(setq muitobom "que beleza!!!")
depois edite a macro "pegar" para ficar assim:
Sub pegar()
MsgBox ReadLispVariable("muitobom")
End Sub
E veja os resultados!!
Ah, esqueci de mencionar onde encontrei:
ResponderExcluirhttp://augiru.augi.com/content/library/au07/data/paper/CP205-3.pdf