Sparky 发表于 2008-9-12 15:25:05

在 VBA 中计算 LISP 表达式(脚本?)

(vlax-curv-getClosestPointTo curv-obj givenPnt[扩展])
任何人都知道如何在Vba中使用该Lisp函数。或者VBA有等效的方法吗??
**** Hidden Message *****

Sparky 发表于 2008-9-12 15:30:27

对,太棒了。据我所知,类库是危险的,但我想它们有很多Vlax和curve函数,对公众开放。到目前为止我是对的吗?我如何使用它们?(对不起!)它们是类模块吗<我得去抽支烟,然后我会好好看看。谢谢你的链接。

Sparky 发表于 2008-9-12 15:44:48

我不太清楚如何使用这个代码,但我会试一试。但我可以看到代码,功能和所有的。

Sparky 发表于 2008-9-12 16:00:06

这是标题的一部分。…
VLAX。cls允许开发人员从<br>的Visual Basic或VBA<br>中计算AutoLISP表达式。<br>注:<br>‘此类模块的所有代码都可通过以下网址公开获得:<br>>news://discussion.autodesk.com/autodesk.autocad.customization.vba.我不要求这些帖子中的代码的版权或作者身份,只要求该代码的编译。此外,还有一个大大的“谢谢!”向Cyrille Fauvel演示VisualLISP ActiveX模块的使用
'
'依赖项:
'使用此类模块需要以下应用程序:
1.VisualLISP
请注意末尾的粗体斜体位。问题:Autocad是否安装了此VisualLISP应用程序。我已经编写了一些代码,并在This Drawing模块中实例化了VLAX类的一个变量…<br>将VlaxClass作为VLAX<br>将Dim ClosestPt作为Variant<br>并将Dim Idunno作为Variant‘我不知道它将是什么<br><br>VlaxClasss=New VLAX'(vlax曲线GetClosestPoint到曲线obj Givennt)
VlaxClass。SetLispSymbol“Curveobj”,acadSet2.Item(0)
VlaxClass。SetLispSymbol“Givennt”,在VlaxClass中。EvalLispExpression“(setq ClosestPt(vlax curve getClosestPointTo curve obj givenPnt)”
设置closestft=VlaxClass。GetLispSymbol(“ClosestPt”)“还不确定我将得到什么<br>设置为Idunno=VlaxClass。GetLispList(“ClosestPt”)也不确定
我单步遍历代码,在“VlaxClass=New VLAX”处切换到类模块初始化过程,但在以下情况下失败…
私有VL作为对象
私有VLF作为对象
私有子类_Initialize()
设置VL=ThisDrawing.Application.GetInterfaceObject(“VL.Application.1”)
设置VLF=VL.ActiveDocument。功能<br>结束子<br>在哪里可以找到此应用程序?我尝试打开VLisp API,但没有帮助。它还在那里坏了

Sparky 发表于 2008-9-12 17:22:29

实际上,我刚刚搜索了Autocad 2008目录,发现了一个名为vl.arx的ARX应用程序。 任何想法它有什么程序ID对于这个版本的Autocad?

Sparky 发表于 2008-9-12 17:38:30

设法打开Vl应用程序
在继续执行代码时,我得到了这个错误…运行时错误94对象变量或未设置块变量

Bryco 发表于 2008-9-12 18:51:58

当你搜索vlax时,这里有相当多的东西可用,我在下面使用它来获得正确的vl号,如果AcadVer = 2000,那么
设置VL =这个图。应用程序. GetInterfaceObject("VL。Application.1")
否则
设置VL = ThisDrawing。应用程序. GetInterfaceObject("VL。Application.16")
如果
设置VLF = VL,则结束。ActiveDocument.Functions结束Sub

Jeff_M 发表于 2008-9-13 14:18:25

你应该把弗兰克·奥肯多的名字写在代码里。尽管Frank否认了他对该代码的贡献,但他通过他的acadx.com(我认为该网站并未关闭)网站将它汇编并广泛提供给大众。如果我没记错的话,早期版本可能也是托尼·坦齐罗的作品。我会谷歌搜索,找到与你发布的代码直接相关的代码,并相应地注明其归属。

Sparky 发表于 2008-9-13 15:23:57

Sparky,
除了Bryco提到的和MP建议的以外,下面是一些函数的示例。请注意,在模块中使用CURVE.CLS时,您不需要执行所有的环跳操作代码0]
高温

Jeff_M 发表于 2008-9-13 19:17:03

这是格雷特!我是一名经验丰富的VLisp作家,但已决定学习VBA。我的抱负是从那里跳到VB.Net。是的,我知道……这是一项长期战略。我已经编写了一些简单的脚本,但阅读对象模型时没有注意到Curve/Vlax方法。你的回答都很亲切,我很感激。
我还没有意识到94错误代码是什么…但也许我需要使用curve类…需要找时间坐下来解决它。如果我有一种无法理解的失落感,如果我能回到你们身边,我将不胜感激。
我将在这里搜索vlax…我想知道你是否可以从VL应用程序(变体、多边形等)中获取AciveX对象。
也许…你们是“迈斯特”(德语中的大师!)
页: [1] 2
查看完整版本: 在 VBA 中计算 LISP 表达式(脚本?)