明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 290|回复: 12

[提问] 如何通过块名称获取图块的外围宽度和高度?

[复制链接]
发表于 2020-6-29 21:16 | 显示全部楼层 |阅读模式
本帖最后由 小万LISP 于 2020-6-29 22:35 编辑


在CAD图形中制作了一个块,取名为name,如上图。请问 如何用LISP通过name这个名称来获得这个块的外围宽度和高度呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2020-6-29 23:58 来自手机 | 显示全部楼层
我也想知道,跪求大神解惑,帮推
发表于 2020-6-30 00:22 | 显示全部楼层
就算是同块名如果插入的比例变了大小就不一样了,如果比例没变就随便插入一个再提取外框就行了
发表于 2020-6-30 08:22 | 显示全部楼层
要想纯粹通过name来获得块的外围和高度还是有难度的,简单的处理办法是先插入图块,然后用 vla-getBoundingBox 得到两个角点,再将图块删除。
发表于 2020-6-30 08:40 | 显示全部楼层
1比1的尺寸是可以实现的
 楼主| 发表于 2020-6-30 20:56 | 显示全部楼层
jun353835273 发表于 2020-6-30 08:40
1比1的尺寸是可以实现的

就是1:1的。
发表于 2020-6-30 21:49 | 显示全部楼层
[code="lisp] (setq BLK (tblsearch "block" "TEST"))
(SETQ ENNAME (CDR (LAST BLK)))
(SETQ OBJ (Vlax-Ename->Vla-Object ENNAME))
(Vlax-Invoke-Method OBJ 'GetBoundingBox 'P1 'P2)
(setq minp (vlax-safearray->list P1)
      maxp (vlax-safearray->list P2)
)

[/code]

这样就实现了,不用插入块
 楼主| 发表于 2020-6-30 22:18 | 显示全部楼层
jun353835273 发表于 2020-6-30 21:49
这样就实现了,不用插入块

厉害。 测试 能求出 块的 最小坐标 和 最大坐标, 但是 我用 大坐标 - 小坐标 ,得出的 宽、高 ,与 实际块的 尺寸 相差很大,是什么原因呢?
发表于 2020-6-30 23:10 | 显示全部楼层
小万LISP 发表于 2020-6-30 22:18
厉害。 测试 能求出 块的 最小坐标 和 最大坐标, 但是 我用 大坐标 - 小坐标 ,得出的 宽、 ...


块的比例不一样吧,这个是原始的,创建块时候的尺寸
发表于 2020-7-2 08:31 | 显示全部楼层
小万LISP 发表于 2020-6-30 22:18
厉害。 测试 能求出 块的 最小坐标 和 最大坐标, 但是 我用 大坐标 - 小坐标 ,得出的 宽、 ...

(tblsearch "block" "TEST")返回的图元名是块中第一个图元,因此得出的坐标是这个图元的,而不是整个块的坐标。

点评

原来如此。您真博学。  发表于 2020-7-3 06:13
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2020-7-8 09:28 , Processed in 1.551128 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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