乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 9|回复: 9

[编程交流] 获取块属性

[复制链接]

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 17:59:28 | 显示全部楼层 |阅读模式
朋友们好。。
我有一个问题,获得一些属性的块。。。我试着用这两种方式
 
  1. (setq blok(car(entsel "\nSelect block...")))
  2. (setq blok_vla(vlax-ename->vla-object blok))
  3. ;1
  4. (setq item_num (vlax-get-property blok_vla 'Count))
  5. ...
  6. ;2
  7. (setq item_num (vla-get-Count blok_vla))

 
但我总是得到“ActiveX服务器返回错误:未知名称:”
关于如何获取块特性的任何建议
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 18:08:01 | 显示全部楼层
你好
你想要实现什么?
 
块参照没有特性计数。
 
使用vlax Dump对象转储块以查看所有可用的属性和方法?
回复

使用道具 举报

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-5 18:17:06 | 显示全部楼层
如果要计算图形文件中的块数,我认为您不会通过计数方法访问它。如果我没记错的话,这只是计算一个块实例中有多少项。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 18:24:20 | 显示全部楼层
您无法通过引用实体(VLA-OBJECT)实现计数。。。相反,对定义实体(VLA-OBJECT)使用计数方法。。。
要获得定义,请尝试:
然后尝试计数方法。。。
 
[编辑:我错了,你应该检查块定义集合VLA-OBJECT…]
 
  1. (vla-get-count (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vla-get-effectivename (vlax-ename->vla-object (car (entsel "\nPick block reference..."))))))
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:31:49 | 显示全部楼层
这可能是你想要的
 
  1. (setq  doc (vla-get-activedocument (vlax-get-acad-object))) ; open database
  2. (setq x 0)
  3. (vlax-for block (vla-get-blocks doc)
  4. (if (not (wcmatch (strcase (vla-get-name block) t) "*_space*"))
  5. (vlax-for*ent block
  6. (setq x (+ x 1))
  7. ) ;_ end of vlax-for
  8. ) ;_ end of if
  9. (princ (strcat "\nThere are " (rtos x 2 0) "objects in block " (vla-get-name block)))
  10. ) ; end of vlax-for
回复

使用道具 举报

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 18:33:41 | 显示全部楼层
谢谢大家的回答。。。我试着做的是一个部分分解块的例程。。。有时你一定会想把一行或一段文字去掉,但什么都不做
在块中的其他部分,所以我有一个想法,让它以一种方式,你选择块,而不是用“nantsel”你选择你想分解的块的一部分,而不是用某种迭代函数(这就是为什么我需要块中项目的数量),我会从块中获取所有对象,删除那些我想分解的,并在没有它们的情况下生成相同的块。。。看起来容易还是?
Marko写的东西给了我一个区块中的项目数,所以我将从那里开始。。。我想说的是,我可能永远也不知道如何编写这行代码,但我仍然没有完全理解
如果你对我正在制作的Lisp程序有一些想法,或者已经有这种Lisp程序了,我很高兴听到你的建议。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:40:27 | 显示全部楼层
 
简单来说:
  1. 4

您可能还会发现此程序对您的任务很有用。
回复

使用道具 举报

18

主题

99

帖子

91

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 18:51:56 | 显示全部楼层
李,你让它看起来很简单,代码就是解决方案。。。。THANX公司
现在我将花一些时间来处理这段代码,以更好地理解它的机制。。。以前从未使用过矩阵。。。
您通过链接提交的另一个lisp也是一个值得学习的好例子。。。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 18:58:34 | 显示全部楼层
 
 
流畅、优雅、辉煌。。。。艺术:-)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 19:01:12 | 显示全部楼层
谢谢你们俩
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 00:37 , Processed in 0.755532 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表