明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1015|回复: 7

[经验] 批量处理选择集中的图元,为每个原始图层名称添加前后缀创建新图层,并将对应图元...

[复制链接]
发表于 2025-6-21 22:19:29 | 显示全部楼层 |阅读模式
本帖最后由 寒潮大冬瓜 于 2025-6-23 17:54 编辑

批量处理选择集中的图元,为每个原始图层名称添加前后缀创建新图层,并将对应图元移动到各自的新图层中
相当于批量分离选择集中的图元到新的图层里,同时这些图元还保留原来图层的名,不需要全部归集到一个图层里!
打开一个块,选择块内图元也能顺利运行,实现代码功能!

我写这个代码的理由是:自己已经框选了一些图元,突然觉得我需要临时关闭这些图元,为避免影响其他同在一个图层的图元被关闭了!但是又不想把这些都放进一同一个图层里,于是我输入TGG命令→输入前缀→回车跳过后缀→回车→代码运行→选择集里的每个图元都与原来的图层分开了!而且带有同一个前缀的特征!方便以后进一步处理!

输入图层前缀 <直接回车忽略>: 我试试

输入图层后缀 <直接回车忽略>:
*** 输入参数: 前缀='我试试', 后缀='' ***
*** 选择要处理的图元 ***
选择对象:
指定对角点:
找到 121 个
选择对象:处理图元13 - 图层: TGG-0SSC线长202506211824 ***
*** 处理图元12 - 图层: TGG-0SSC线长202506211824 ***
……
*** 处理图元6 - 图层: TGG-0 ***
*** 处理
*** 选择集包含 121 个图元 ***
*** 开始收集图层信息 ***
*** 处理图元121 - 图层: TGG-结-尺寸 ***
……
*** 处理图元2 - 图层: TGG-0 ***
*** 处理图元1 - 图层: TGG-0 ***
===== 选择集中包含的图层列表 (14个) =====
  - TGG-0SSC线长202506211824
  - TGG-0
  - TGG-0BB65-z9920250621103756
  - TGG-0BB65-z9920250621103745
  - TGG-GC200-20250621100040
  - TGG-结-钢筋标注
  - TGG-0-垫层FXX-2025062118
  - TGG-0BB56-z99-SSC-20250621100618
  - TGG-结-剖面轮廓
  - TGG-结-细线
  - TGG-JZ生产管线
  - TGG-结-填充层
  - TGG-结-文字
  - TGG-结-尺寸
=====================================
*** 开始创建新图层 ***
*** 处理原始图层: TGG-0SSC线长202506211824 ***
……
  成功创建图层: 我试试TGG-结-尺寸
*** 开始移动图元到新图层 ***
*** 移动图元121 (DIMENSION) 从图层 'TGG-结-尺寸' 到 '我试试TGG-结-尺寸' ***
*** 移动图元120 (DIMENSION) 从图层 'TGG-结-尺寸' 到 '我试试TGG-结-尺寸' ***
……
*** 移动图元3 (LWPOLYLINE) 从图层 'TGG-0' 到 '我试试TGG-0' ***
*** 移动图元2 (LWPOLYLINE) 从图层 'TGG-0' 到 '我试试TGG-0' ***
*** 移动图元1 (LWPOLYLINE) 从图层 'TGG-0' 到 '我试试TGG-0' ***
*** 成功移动 121 个图元到新图层 ***
TGG操作完成! 已将所有图元移动到添加前缀/后缀的新图层

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 2025-6-22 01:39:09 | 显示全部楼层
本帖最后由 你有种再说一遍 于 2025-6-22 02:06 编辑

你真的会看一次自己打的字吗?
不觉得你的话很难停顿吗?
而且论坛的编辑器造成你写出来的东西没有主次,
你应该去学习一下如何写markdown,
用多级标题去强化自己写作层次.

你把功能标题写得乱七八糟的.
我的第一个老板告诉我:一本书最重要是目录.
只要写好了别人看到就明白你写什么了.
写作是为了传播知识,而不是要绕圈子去理解你,
并且这还是可以让你加深自己代码逻辑的方式.

不要把测试数据全部粘贴上来,没有任何意义,
用一两条示意不就好了.
你要是这也不学那也不学,就写了自己用得了.

人家的标题就几个字而已:创建图层前缀后缀.
然后,我会去想你写得这个东西有什么用...
你得加上你为什么要选择集修改图元图层的前缀后缀?
如果没有意义写来做什么...
你要是没有什么事情做就去把 源泉/迷你 这两插件抄一次.


AI修改通顺版本:
功能需求:
批量处理选择集中的图元,为每个原始图层名称添加前后缀创建新图层,并将对应图元移动到各自的新图层中。

具体实现要求:
处理对象:
当前选择集内的所有图元

图层处理:
保留原始图层名称
为每个原始图层创建带前后缀的新图层(如原图层"ABC"可变为"前缀ABC后缀")

图层移动:
将选择集中的每个图元分别移动到其原始图层对应的新图层

特殊场景支持:
支持在块编辑状态下运行
处理块内图元时也能正常执行

输出要求:
返回处理结果的图层变更列表

注意:
不是将所有图元归集到单一新图层,而是保持原始图层的对应关系,仅做图层名称的扩展迁移。
回复 支持 1 反对 0

使用道具 举报

发表于 2025-6-23 17:57:38 | 显示全部楼层
临时关闭选中的对象,可以选择隐藏对象啊。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-6-23 19:15:52 | 显示全部楼层
本帖最后由 寒潮大冬瓜 于 2025-6-23 22:04 编辑
e2002 发表于 2025-6-23 17:57
临时关闭选中的对象,可以选择隐藏对象啊。

感谢指导!我尽量改变自己原来的不快捷的的绘图习惯!
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-6-22 02:18:45 | 显示全部楼层
你有种再说一遍 发表于 2025-6-22 01:39
你真的会看一次自己打的字吗?
不觉得你的话很难停顿吗?
而且论坛的编辑器造成你写出来的东西没有主次,

感谢指导!我马上修改!
回复 支持 反对

使用道具 举报

发表于 2025-6-23 16:11:18 | 显示全部楼层
好不容易明白了是什么意思

我觉得是不是你可以换个思路?为什么要去操作对象呢?
只需要:
1. 对SelectionSet的的对象,获得所有涉及到的Layers 的 LayerName的集合
2. 遍历此LayerName集合,对每一个 LayerName:获取其对应的 Layer对象全部的Properties值列表,保存,然后字符串处理前缀后缀这些,得到 NewLayerName,Rename LayerName 为 NewLayerName,
3. 创建对应的一个NewLayer 对象, 读取保存的就的Properties,并赋值到这个NewLayer对象的各个Properties(包括旧的图层名称)。此处需要注意:图层名称是否会有重名,需要在之前进行检测。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-6-23 17:49:18 | 显示全部楼层
e2002 发表于 2025-6-23 16:11
好不容易明白了是什么意思

我觉得是不是你可以换个思路?为什么要去操作对象呢?

感谢指导!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 09:19 , Processed in 0.201611 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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