明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1339|回复: 9

[提问] 如何获取块编辑器的块名

[复制链接]
发表于 2022-10-29 14:40:31 | 显示全部楼层 |阅读模式
如图,用lisp或者vlisp获取块编辑器的块名

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-10-29 16:32:57 | 显示全部楼层
先选择图元,获取块名的信息,然后在用COMMAND打开块编辑器,对这个块编辑不就行了吗?为什么一定要在编辑器里获取呢?
发表于 2022-10-29 16:44:09 | 显示全部楼层
vla-get-EffectiveName 不就是块名吗 和块编辑器有什么关系
 楼主| 发表于 2022-10-31 14:33:48 | 显示全部楼层
楼上两位说的方法我会 只想在这种情况下得到块名
发表于 2022-10-31 14:54:21 | 显示全部楼层
(getvar "REFEDITNAME")
 楼主| 发表于 2022-10-31 15:59:45 | 显示全部楼层
黄翔 发表于 2022-10-31 14:54
(getvar "REFEDITNAME")

这个方法只有在位编辑的时候好使  进去块编辑器就没办法得到了  
发表于 2022-11-4 09:10:15 | 显示全部楼层
一个变通的办法是,首先进行 “在位编辑(refedit)” ,这样的话就能获得块名,然后再切入到“块编辑(blockedit)” 刚才获得的块名就能用了。

一个国外的讨论贴,最后得到的结论似乎也是这样。
https://forums.autodesk.com/t5/v ... %20BEDIT%2C%20while,A%20Top%20Secret%20Command%20for%20Editing%20Your%20Blocks

贴子最后说:
Ok i think i have an idea how to make this work but i still need to retrieve some information while in the block editor. I can make it work if i can get the list of visibility states and the current visibility state. I dont know if the information is available while in block editor. Any help would be greatly appreciated. Thanks


黄明儒黄工帮我写过一个程序,似乎就是这样变通的。
http://bbs.mjtd.com/thread-176128-1-1.html
发表于 2022-11-4 14:10:41 | 显示全部楼层
本帖最后由 kozmosovia 于 2022-11-4 14:14 编辑

从当前块编辑器内任选一个进入块编辑时就有的原图块中的实体,提取句柄。然后遍历块表内图块,找到包含该句柄的图块,提取块名。
要提高遍历效率,可以增加判断块内元素数量大于当前块编辑器内实体总数,以及标志实体的位置特征,防止相同实体用于多个块记录。
 楼主| 发表于 2022-11-5 10:46:51 | 显示全部楼层
似乎没有太好的办法  我想弄一个历遍所有图元的程序  遇到块编辑更改块内图元属性  现在无法得知是还在这个块中还是跳出到其他块定义了  现在的笨方法是吧所有子图元添加扩展信息 通过读取扩展信息确定在哪个块定义中  挺费劲 所以看看有没有变通的方法
发表于 2022-11-5 20:29:31 | 显示全部楼层
CAD不支持同时进入多个块编辑器,同一时间只可能有一个活动的块编辑器。如果是程序调用的bedit命令,进入时就需要指出快名,这时候保存快名就是了。至于是否处于块编辑器状态,可以直接通过系统变量判定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 00:42 , Processed in 0.209179 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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