明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6875|回复: 8

vlax-invoke与vlax-invoke-method有什么区别?

[复制链接]
发表于 2007-1-22 17:19:00 | 显示全部楼层 |阅读模式
vlax-invoke与vlax-invoke-method有什么区别,该如何使用?
发表于 2011-11-15 11:10:47 | 显示全部楼层
xiaxiang 发表于 2011-11-15 09:30
据说vlax-invoke用在2000以前的版本。有高手知道具体的区别吗

;;不仅仅是版本的区别
;;它们还是不同的。与此相关的函数还有vlax-put,vlax-get和vlax-put-prpperty,vlax-get-property
;;vlax-invoken在一些场合下,可以直接传送数据,而不用先将他们转化为安全数组或者变量。其他的类似。
;;通常来说,vlax-put,vlax-invoke,vlax-get 用法更简单,因为它们的参数或者返回值 跟lisp相似。
;;而后者对安全数组或者变量敏感。
;;vlax-put-prpperty,vlax-invoke-method,vlax-get-property有时候需要数据转化,譬如把variant和lisp的数据类型的转化
;;或者把安全数组和lisp的点表的转化
;;在某些情况下,vlax-invoke可以缺省某些参数,而对vlax-invoke-method 不能缺省参数。
;;在某些情况下,一种可以用,而另一种却不可用。

(defun c:test(/ ent obj pnt)
  (setq ent (car (entsel "\n选择图块物体:")))
  (if (and ent (= (cdr (assoc 0 (entget ent))) "INSERT"))
    (progn
      (setq obj (vlax-ename->vla-object ent))
      ;;无需将pnt转化为variant
      (setq pnt (getpoint "\n新的插入点(方式1):"))
      (and pnt (vlax-put obj 'InsertionPoint pnt))

      ;;用(vlax-put-property obj 'InsertionPoint pnt)会出错
      (setq pnt (getpoint "\n新的插入点(方式2):"))
      (and pnt (vlax-put-property obj 'InsertionPoint (vlax-3d-point pnt)))   
    )
  )
)

点评

太精辟了!!!  发表于 2013-6-17 20:55
回复 支持 3 反对 0

使用道具 举报

发表于 2007-1-23 20:40:00 | 显示全部楼层
一个是老版本的,一个是新版本的,经验告诉我,新的不行,就用一下旧的vlax-invoke
发表于 2011-11-15 09:30:29 | 显示全部楼层
据说vlax-invoke用在2000以前的版本。有高手知道具体的区别吗
发表于 2012-9-11 14:12:40 | 显示全部楼层
highflybird 发表于 2011-11-15 11:10
;;不仅仅是版本的区别
;;它们还是不同的。与此相关的函数还有vlax-put,vlax-get和vlax-put-prpperty,vla ...

学习了,不过还是不太明白原理。
另外我见过个LISP和ACTIVEX交互的代码,把(vlax-get-acad-object)作为参数,那个用
vlax-invoke-method就没问题,我写了个DLL,必须用vlax-invoke。
发表于 2013-6-17 21:10:08 | 显示全部楼层
highflybird 发表于 2011-11-15 11:10
;;不仅仅是版本的区别
;;它们还是不同的。与此相关的函数还有vlax-put,vlax-get和vlax-put-prpperty,vla ...

这个可以进飞鸟集呀
发表于 2019-6-13 16:38:01 | 显示全部楼层
描述的很到位收藏了
发表于 2020-10-11 11:17:46 | 显示全部楼层
为什么WPS表格需要用vlax-invoke才得。
发表于 2020-11-10 16:46:16 | 显示全部楼层
楼上描述得很到位,但还是看不太懂,我一直都是两者乱用,就知道一个好像可以不写可选参数,而另一个必须要写,如果不想给参数,也要在参数位置上也nil
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-23 18:05 , Processed in 0.156451 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表