问一个简单的问题:为什么vla-*函数没有帮助文档?
如题,无论是Autodesk官方开发文档,还是其他社区(比如明经社区),都找不到vla-*函数的帮助文档?经常看到各种源码里有vla-*函数,但是始终找不到帮助文档。
普通的AutoLisp函数和vl-*、vlax-*、vlr-*函数都有,为什么就是找不到vla-*函数的?
问一个简单的问题:为什么别人找得到你找不到?
本帖最后由 llsheng_73 于 2022-8-6 11:04 编辑
vla-基本就是vba模型下所有对象的属性或方法的使用,其实不需要记住那么多vla-,只需要会查所使用对象的属性或方法,那么,vlax-几大神器基本可以解决一切
vlax-dump-Object 查询对象所具有的属性或方法,一般情况不同对象的属性是不一样的,支持的方法也不相同,比如直线有长度属性,而一个文字显然没有长度,但它有文本内容。。。比如可以对一个圆进行偏移,显然没法对文字也进行偏移
vlax-property-available-p检查对象是否具备某个属性,对于不确定或不太熟悉的对象的某个特性可以用它检查
vlax-method-applicable-p检查对象能否用某个方法来处理,比如能不能对一个圆设置凸度
要使用对象,必须先对它的属性、方法有足够的了解,前边几个可以帮助我们知道一个或一类对象的属性和方法,但实际上还不够,因为还不知道使用它们需要的参数,这个一般情况可以通过vba模型去查它的属性、方法及相关的说明和示例
对要使用的对象的属性和方法足够了解后,怎么使用它就简单了,只需要三个函数就够了
vlax-get-property获取对象指定属性的值
vlax-put-property修改对象指定属性的值
vlax-invoke-method执行对象的某个方法
对于这三个函数的使用,前两个对使用者要求不太高,就算不清楚对象的属性,可以用前边说的vlax-dump-Object和vlax-property-available-p来查,查到有什么属性就可以用,不知道怎么vlax-put-property那么可以先vlax-get-property来看,就这么简单
但vlax-invoke-method没这么简单,虽然vlax-dump-Object和vlax-method-applicable-p可以查出对象的方法,但对于方法的调用,通常需要一些参数,通过vlax-dump-Object只能查到某个方法需要的参数个数,但每个参数是什么,这里已经查不到了,所以还是无法使用它的方法,这就需要再到帮助的对象模型下边,去查指定对象的特定方法的说明及示例
先了解面向对象编程思想。
(vla-get-属性 对象)
(vla-put-属性 对象 值)
(vla-方法对象参数1 参数2 ...)
了解了上面三个表达式,查 CAD帮助中的 ActiveX 参数手册 套用就可以了。
不妨到这里看看,几乎全了。
https://www.highflybird.cn/autolisp.html
菜卷鱼 发表于 2022-8-6 09:34
问一个简单的问题:为什么别人找得到你找不到?
:D感谢!
确实没找到,但是也知道这是个弱智问题,所以特地加了一个定语。
再次感谢! 菜卷鱼 发表于 2022-8-6 09:34
问一个简单的问题:为什么别人找得到你找不到?
这个帮助文档里,只有vla-get-*、vla-put-*函数,其他的vla-*函数去哪里找? ThinkerHua 发表于 2022-8-6 09:55
这个帮助文档里,只有vla-get-*、vla-put-*函数,其他的vla-*函数去哪里找?
https://help.autodesk.com/view/OARX/2021/ENU/?guid=GUID-5D302758-ED3F-4062-A254-FB57BAB01C44 llsheng_73 发表于 2022-8-6 10:46
vla-基本就是vba模型下所有对象的属性或方法的使用,其实不需要记住那么多vla-,只需要会查所使用对象的属性 ...
感谢耐心指教! highflybird 发表于 2022-8-6 16:30
不妨到这里看看,几乎全了。
https://www.highflybird.cn/autolisp.html
感谢分享{:1_1:}{:1_1:}{:1_1:} highflybird 发表于 2022-8-6 16:30
不妨到这里看看,几乎全了。
https://www.highflybird.cn/autolisp.html
Nice!非常感谢!
页:
[1]
2