Theace 发表于 2003-7-22 13:49:00

[求助]请问如何在VBA中引用VLISP的VLAX扩展函数?

VLAX扩展函数提供了一些VBA对象和属性不能实现的功能,如何引用VLAX以加强VBA的功能?

mccad 发表于 2003-7-22 23:41:00

用vlax类模块

Theace 发表于 2003-7-23 13:34:00

谢谢,但还求一个例程以加深理解。

谢谢,我已下载了这个类模块,但还求斑竹给一个例程以加深理解。例如求
曲线某点到起点的长度。也求教于网上各位大虾!

mccad 发表于 2003-7-23 18:45:00

如以下函数:
http://www.mjtd.com/function/list.asp?id=309&ordertype=byletter
http://www.mjtd.com/function/list.asp?id=308&ordertype=byletter

WWWDONG 发表于 2003-7-24 08:52:00

使用vlax类时遇到点麻烦,用vlax无发读出点坐标,可能是类型的问题吧?
如要取得line的起点和终点,用vba的属性比较简单。用vlax我用了下列语句÷
Dim line1 As AcadLine
dim point asVariant
point1=GetDXFCodeValue(line1,10)
出错,请教何故?

Theace 发表于 2003-7-25 09:34:00

多谢斑竹,还有一些问题

多谢斑竹的热心指教,受益非浅。
尚有一些问题请斑竹百忙中看一下:
1、使用楼上的函数时,总是在SET OBJ=NEW VLAX处中断,提示“在装载应用程序时出现问题”,若是先在命令行运行(VL-LOAD-COM)则程序可调试通过。后来我在此句前加入一句Thisdrawing.Sendcommand("(VL-LOAD-COM)")。问题解决!
2、但以上方法只在R2002中通过,在R2004中问题依旧。奇怪的是,以前我用VLAX函数编的一些LISP程序在R2004中运行提很好。是不是“VL.Application.1"版本的问题?
3、我在本站下载的ACADX库,也是在R2002中可行而在R2004中不能用。
4、以下是我对楼上函数中某些代码的理解,是否适当请指教。
   .EvalLispExpression执行字符串中的LISP代码
    .SetLISPSymbol       将VBA变量的值传递给LISP变量
   .getLISPSymbol       将LISP变量的值传递给VBA变量
   .NullifySymbol          释放LISP变量

Theace 发表于 2003-7-25 09:47:00

对不起,我的电脑有点问题,又重复发贴了。

WWWDONG 发表于 2003-7-28 18:21:00

我仍然无法用vlax取得点的坐标
不知那里出错,此问题已困惑了我
很长时间,请斑竹赐教

mccad 发表于 2003-7-28 19:38:00

X坐标用:
    retVal = obj.EvalLispExpression("(cadr (assoc " & gCode & " (entget(handent " & _
                                     Chr(34) & ent.Handle & Chr(34) & "))))")
Y坐标用:
    retVal = obj.EvalLispExpression("(caddr (assoc " & gCode & " (entget(handent " & _
                                     Chr(34) & ent.Handle & Chr(34) & "))))")
Z坐标用:
    retVal = obj.EvalLispExpression("(cadddr (assoc " & gCode & " (entget(handent " & _
                                     Chr(34) & ent.Handle & Chr(34) & "))))")

WWWDONG 发表于 2003-7-29 18:42:00

谢谢斑竹
页: [1]
查看完整版本: [求助]请问如何在VBA中引用VLISP的VLAX扩展函数?