AutoCAD二次开发实用教程课件作者郭秀娟第12章节使用ActiveX.pptVIP

  • 11
  • 0
  • 约6.77千字
  • 约 38页
  • 2017-11-12 发布于广东
  • 举报

AutoCAD二次开发实用教程课件作者郭秀娟第12章节使用ActiveX.ppt

12.7 修改图形对象的属性 用带有vla-put-前缀的函数 这类函数的调用语法如下: (vla-put-property VLA图形对象 新的属性值) 2.用函数vlax-put-property修改ActiveX对象属性 函数vlax-put-property的调用格式如下: (vlax-put-property VLA图形对象 property 新的属性值)参数property为符号或字符串,标志要修改的属性。 12.8 确定方法或属性是否适用于特定对象 如果使用不适于指定对象的方法或属性,将会导致程序出错,所以在不能确定属性或方法是否应用到某个对象时,最好用vlax-method-application-p函数或vlax-property-available-p函数测试一下对象,如果方法或特性可用,则函数返回T,否则返回nil。 1.函数vlax-method-application-p 2.函数vlax-property-available-p 12.9 确定是否可以修改对象 VLISP 提供了下列函数,可用来在操作某对象前,先测试一下是否可访问该对象。 ?vlax-read-enabled-p 测试是否可读该对象。 ?vlax-write-enabled-p 测试是否可修改该对象属性。 vlax-erased-p 测试该对象是否已被删除,因为被删除的对象可能仍保留在图形数据库中。 返回值均为:如果结果为真,这些函数返回T,否则返回nil。 12.10 使用用参数带回返回值的ActiveX方法 有些ActiveX方法要求用户给它们提供变量,以使它们能对变量赋值。 有些ActiveX方法要求用户给它们提供变量,以使它们能对变量赋值。GetBoundingBox 方法就是一例。 其中,MinPoint和MaxPoint参数在定义中已经说明仅用于输出,因此所提供的输出参数必须是前面带有单引号的变量名(以声明不对此变量求值)。 12.11 使用集合对象 集合的概念是在理解AutoCAD对象模型中引入的,在AutoCAD对象模型中的所有对象都是用集合来分组的。例如,块集合是由AutoCAD文档中的所有块组成的。VLISP提供处理集合对象的函数,该类函数有vlax-map-collection和vlax-for。 12.11 使用集合对象 12.11.1 将某一个函数应用到集合中的每一个对象 vlax-map-collection函数可将某一个函数应用到集合中的每一个对象,其调用格式如下: (vlax-map-collection collection-object function) 12.11 使用集合对象 12.11.2 将一系列函数应用到集合中的每一个对象 如果要对集合中的每一个对象用一系列函数求值,可使用vlax-for函数,该函数遍历整个对象集,对每个表达式进行求值。其调用格式如下: (vlax-for symbol collection [expression1 [expression2 ...]]) 12.11 使用集合对象 12.11.3 获取集合中的成员对象 用item方法可以从集合中获取其成员对象。集合的count属性则显示集合内对象的数量。利用item方法和count属性,可以单个地处理集合中的每个对象。 12.11 使用集合对象 12.11.4 释放VLA对象和释放内存 同将多个变量指向同一个AutoCAD图元一样,也可能将多个VLA对象指向同一个图形对象。只要VLA对象还指向图形对象,AutoCAD就会保留该对象所需的内存。 用equal函数比较两个VLA对象,如果两个VLA对象指向同一个图形对象,equal 函数将返回 T。 如果不再需要引用该VLA对象,可调用函数vlax-release-object释放VLA对象。 12.11 使用集合对象 12.11.5 处理ActiveX方法返回的错误 当ActiveX方法失败时,所采取的办法是引发异常,而不是返回出错代码通知程序。因此,如果程序使用了ActiveX方法,必须在程序中设法截取异常,否则程序会中止并失去响应。 谢谢! 尚辅网 / 第12章 使用ActiveX Visual LISP为AutoCAD提供了许多新的功能,包括支持ActiveX对象的操作以及支持ActiveX与其他程序的交互等。 ActiveX Automation技术使用户可以方便地使用其他许多面向对象的高级语言来开发AutoCAD程序,它的作用

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档