明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1932|回复: 5

[基础] item 属性怎样写

[复制链接]
发表于 2009-12-23 21:14:00 | 显示全部楼层 |阅读模式

在集合对象A中,要得到它的第一个对象,在VB中为A.item(1);获得名称为"nn"的对象,在VB中为A.item("nn");

但在Vlisp中,(vlax-get  a  'item 1),(vlax-get  a  'item "nn"),(vlax-get  a  'item '("nn"))等多种方法都不成功,请高人赐教

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-12-23 22:04:00 | 显示全部楼层
本帖最后由 作者 于 2009-12-23 22:33:10 编辑

举一个例子,模型空间的某个对象

(vl-load-com)
(setq *AcadApp*
       (vlax-get-acad-object)
) ;_ end of setq
(setq *ActiveDocument*
       (vla-get-ActiveDocument
         *AcadApp*
       ) ;_ end of vla-get-ActiveDocument
) ;_ end of setq
(setq *ModelSpace*
       (vla-get-ModelSpace
         *ActiveDocument*
       ) ;_ end of vla-get-ModelSpace
) ;_ end of setq

(vla-item *ModelSpace* name)

发表于 2009-12-23 22:50:00 | 显示全部楼层
使用vla-item 在集合中检索时,如果没有该对象,易出错,所以可以这样使用:
  1. (defun GetItem (col name / obj)
  2.   (vl-catch-all-apply
  3.     '(lambda () (setq obj (vla-item col name)))
  4.   )
  5.   obj
  6. )
发表于 2009-12-23 23:14:00 | 显示全部楼层

;;也可以这样写

(setq *MSP* (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object)))
      coun (vla-get-count *MSP*));_ end of setq

(if (< n coun);;; n为整数
  (vla-item *MSP* n)
  )

 楼主| 发表于 2009-12-24 08:47:00 | 显示全部楼层

谢谢各位帮助。

我是从Excel中的集合对象Worksheets中,获得规定名称的Worksheet。似乎上述方法都不奏效。

目前的笨办法是用vlax-for遍列,找出规定名称的Worksheet,但我觉得应该有更好的方法。

谢谢各位。

发表于 2009-12-24 09:08:00 | 显示全部楼层
对非CAD对象操作应该用vlax-类方法。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 21:24 , Processed in 0.188715 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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