这里是#039;这是Frank Oquendo的一段代码#039;s VLAX。处理设置lisp符号的CLS。请注意,它与您的不同之处在于,他使用lisp函数来转换数据类型
- Public Sub SetLispSymbol(symbolName As String, value)
- Dim sym As Object, ret, symValue
-
- symValue = value
- Set sym = VLF.Item("read").funcall(symbolName)
- ret = VLF.Item("set").funcall(sym, symValue)
- EvalLispExpression "(defun translate-variant (data) (cond ((= (type data) 'list) (mapcar 'translate-variant data)) ((= (type data) 'variant) (translate-variant (vlax-variant-value data))) ((= (type data) 'safearray) (mapcar 'translate-variant (vlax-safearray->list data))) (t data)))"
- EvalLispExpression "(setq " & symbolName & "(translate-variant " & symbolName & "))"
- EvalLispExpression "(setq translate-variant nil)"
- End Sub
|