明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6490|回复: 14

如何用vlax-for遍历块参照中的各个图元

  [复制链接]
发表于 2012-9-25 09:53:29 来自手机 | 显示全部楼层 |阅读模式
如题,我将块参照转为vla对象后(变量值为vla)这样引用(vlax-for v vla 表达式)运行时提示参数类型错误,我想应该是因为vla不是集合对象所致,但不知正确的改怎么写,请高手赐教!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-9-25 09:59:12 | 显示全部楼层
块参照是对象,不是集合!所以不可以使用 vlax-for !
块定义对象才是集合!
(vlax-for obj (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) "块名")
...
)
发表于 2012-9-25 10:06:46 | 显示全部楼层
且先看此例能否有助理解
http://www.afralisp.net/archive/Tips/code66.htm
 楼主| 发表于 2012-9-25 10:25:37 来自手机 | 显示全部楼层
Gu_xl 发表于 2012-9-25 09:59  块参照是对象,不是集合!所以不可以使用 vlax-for !  块定义对象才是集合!  (vlax-for obj (vla-item (vl ...

g版的意思是不是如果要获取一个块中所有图元属性的话只能用entnext挨个获取其中的对象然后再取得其属性?另外,我获取了块名为GC200的集合后,用vla-get-count获取其个数得到1,而我的图形中明明有两个块名为GC200的块参照啊,请版主赐教!
 楼主| 发表于 2012-9-25 10:26:54 来自手机 | 显示全部楼层
Andyhon 发表于 2012-9-25 10:06  且先看此例能否有助理解  http://www.afralisp.net/archive/Tips/code66.htm

英文实在是有点看不懂啊,呵呵。
发表于 2012-9-25 10:37:16 | 显示全部楼层
changyiran 发表于 2012-9-25 10:25
g版的意思是不是如果要获取一个块中所有图元属性的话只能用entnext挨个获取其中的对象然后再取得其属性? ...

获取属性用如下函数:
(vla-GetAttributes 块参照对象)
 楼主| 发表于 2012-9-25 10:55:04 来自手机 | 显示全部楼层
Gu_xl 发表于 2012-9-25 10:37  获取属性用如下函数:  (vla-GetAttributes 块参照对象)

我用该函数获得的属性值先用vlax-variant-value转换,再用vlax-safearray-list转换得到(#<vla-object iacadattributereference 06aaed04>),还是没法看到属性,g版,我是不是少操作一步啊?
发表于 2012-9-25 11:03:11 | 显示全部楼层
changyiran 发表于 2012-9-25 10:55
我用该函数获得的属性值先用vlax-variant-value转换,再用vlax-safearray-list转换得到(#<vla-object i ...

对的,得到的是属性对象表!建议你先去研究学习一下CAD帮助里的对象模型表!搞清楚各对象之间的关系先!
 楼主| 发表于 2012-9-25 11:14:42 来自手机 | 显示全部楼层
Gu_xl 发表于 2012-9-25 11:03  对的,得到的是属性对象表!建议你先去研究学习一下CAD帮助里的对象模型表!搞清楚各对象之间的关系先!

一会去研究下,只是现在用的比较急,还望版主告知怎么把属性对象表转为能看得懂的具体属性啊,谢谢……
发表于 2012-9-25 11:25:48 | 显示全部楼层
changyiran 发表于 2012-9-25 11:14
一会去研究下,只是现在用的比较急,还望版主告知怎么把属性对象表转为能看得懂的具体属性啊,谢谢……

http://www.mjtd.com/Functions/ArticleShow.asp?ArticleID=1167
http://www.mjtd.com/Functions/ArticleShow.asp?ArticleID=1168
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-28 00:23 , Processed in 0.170397 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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