russell84 发表于 2022-7-6 17:06:55

lisp到vba

如何在vba中执行以下操作??
 
我翻译代码有困难
 

    (setq startPt (vlax-curve-getPointAtDist UpperObj stepLength))
    (setq startPt2 (vlax-curve-getPointAtDist UpperObj stepLength2))

    (setq endPt (vlax-curve-getClosestPointTo BottomObj startPt))
    (setq endPt2 (vlax-curve-getClosestPointTo BottomObj startPt2))
(setq a1 (list (car startpt)(cadr startpt)))
(setq b1 (list (car endpt)(cadr endpt)))
(setq rad1 (angle a1 b1))
   (setq ang(alg-ang UpperObj startPt))
   (setq ang2 (alg-ang UpperObj startPt2))

ASMI 发表于 2022-7-6 17:13:13

VBA没有vlax曲线函数或其他用于分析曲线几何的函数,只有VB。NET有。

russell84 发表于 2022-7-6 17:19:52

谢谢阿斯米。
 
我找到了vlax。cls和曲线。在互联网上浮动的cls文件。
 
你有过这些方面的经验吗?
 
你对使用它们有什么看法??

ASMI 发表于 2022-7-6 17:21:59

我有一些经验,在曲线测量接口。NET,但我更喜欢C而不是VB。

rocheey 发表于 2022-7-6 17:28:42

 
我以前使用过它们,但在运行循环时遇到崩溃问题(沿着样条线获取大量点,不断调用类,而不是一次发送一大堆数据)。我的猜测是(我希望我错了),即使是VLisp也像AutoLisp一样异步运行,我从VB中获取数据的速度比它处理数据的速度快。

russell84 发表于 2022-7-6 17:31:58

所以rocheey如果我要使用这些类文件,你会用什么方法来绕过这个错误??
 
你最后做了什么??
 
否则我想我可能会继续下一步,研究C#

ASMI 发表于 2022-7-6 17:38:53

如果你觉得很愉快,那么绝对没有必要学习C。的哲学。NET—编程语言的通用性和完全兼容性。在VB上。NET对您来说,它可以访问与C#或Mahaged C++上相同的对象、方法和属性,这只是算法构造中的一个问题。然而,在。NET,您将看到对象模型AutoCAD,它不同于VBA(COM),还有许多其他方法和属性。

rocheey 发表于 2022-7-6 17:42:11

虽然我涉猎过。net、vb6等,我使用VBA,因为它在这里。在所有机器上。我们是一家CAD公司,而不是开发公司,必须将代码带回家来调整错误或“快速”开发实用程序,这对我来说是无法接受的。
 
话虽如此,看起来在我们以64位结束之前,我必须做点什么,我的VBA例程会慢慢消亡。
 
如果不发动语言战争,对于一个拥有20多年PC/GW/Q/VBDos/VB基本经验的人来说,什么是自然的跳跃?我在用视觉Lisp程序调情;它在机器上,似乎支持activex。。。除非VBA被强大的东西取代,否则我可以跳下去。。。。这里有人吗?

SEANT 发表于 2022-7-6 17:46:27

可以想象,AutoCAD将在不久的将来纳入Visual Studio Tools for Applications(VSTA),取代VBA。该VSTA产品可能允许通过任何当前(甚至可能是那些正在开发的,即F#)风格的编程。净额。对于任何从事ACAD开发工作的人来说,现在专注于其中一项可能是明智之举。
 
我很想听听Visual Lisp的未来发展。由于VBA都访问同一个COM端口,因此很可能会遭受与VBA相同的长期命运。
 
顺便提一句,rocheey,我看到你在使用Mechanical:你曾经使用过McadAuto、BrepAuto、GeAuto库提供的扩展VBA功能吗?关于该线程的原始查询,GeAuto库提供了与vlax curve相同的功能。BrepAuto将允许对3dSolids进行更深入的检查。

russell84 发表于 2022-7-6 17:51:48

伙计们,有人会很好,甚至告诉我一行如何在vb中使用vlax曲线函数。网
 
例如,如何在vb中沿曲线在一定距离处获取点。网
 
 
谢谢
页: [1] 2
查看完整版本: lisp到vba