乐筑天下

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

[编程交流] 重命名所有层

[复制链接]

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 14:00:24 | 显示全部楼层 |阅读模式
你好
 
我想使用rename命令为图形中的所有图层添加前缀。但是,如果我在命令行运行rename命令,它将不允许我输入*作为旧的层名称来选择所有层。它将与对话框一起显示。无论如何,由于这个原因,我想用rename命令创建一个lisp。
谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:15:50 | 显示全部楼层
你可以自己做
 
  1. (defun c:test (/ wcm new pos)
  2. (vl-load-com)
  3. (setq wcm (getstring t "\nSpecify Old Name: "))
  4. (setq new (getstring t "\nSpecify New Name: "))
  5. (vlax-for lay (vla-get-layers
  6.                  (vla-get-ActiveDocument
  7.                    (vlax-get-acad-object)))
  8.    (setq Nme (vla-get-Name lay))
  9.    (if (and (wcmatch Nme wcm) (/= "0" Nme))
  10.      (if (setq pos (vl-string-position 42 new))
  11.        (vla-put-Name lay
  12.          (strcat
  13.            (substr new 1 pos) Nme
  14.              (substr new (+ 2 pos)))))))      
  15. (princ))
回复

使用道具 举报

145

主题

590

帖子

446

银币

中流砥柱

Rank: 25

铜币
725
发表于 2022-7-6 14:23:30 | 显示全部楼层
我想让它更具体一些。我如何从用户和硬代码中获得控制,因为所有层都以“CCC\u OSMAP\u”作为前缀?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:26:19 | 显示全部楼层
在这种情况下,用户对前缀没有选择权,这要短得多:
 
[code](定义c:测试(/pref)(vl负载com)(setq pref“CCC\U OSMAP”);;
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:39:21 | 显示全部楼层
我认为VL是继续这一步的方式。
 
AutoLISP替代方案有点不那么直观:
 
[code](定义c:测试(/pref tdef tObj)(setq pref“CCC\U OSMAP”);;
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 14:47:28 | 显示全部楼层
需要注意的几件事:
[列表]
  • 外部参照图层
  • 层已具有前缀
  • 已存在且具有新名称的层
  • 李抓到的第0层
  • 层名称字符串长度(我想在某些地方仍然有限制)
    无论如何我都能想到的-达武德
  • 回复

    使用道具 举报

    114

    主题

    1万

    帖子

    1万

    银币

    中流砥柱

    Rank: 25

    铜币
    543
    发表于 2022-7-6 14:53:24 | 显示全部楼层
    谢谢David,
     
    我没有想到这一切!
     
    我想是这样的:
     
    [code](定义c:测试(/pref Nme)(vl load com)(setq pref“CCC\U OSMAP”);;
    回复

    使用道具 举报

    145

    主题

    590

    帖子

    446

    银币

    中流砥柱

    Rank: 25

    铜币
    725
    发表于 2022-7-6 15:00:46 | 显示全部楼层
    谢谢各位,
    这应该不是太大的问题,因为我将在上面运行此操作的图形是限制在大约30个标准层的地图,但我认为它对于其他类型的图形可能很方便。
    回复

    使用道具 举报

    发表回复

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

    本版积分规则

    • 微信公众平台

    • 扫描访问手机版

    • 点击图片下载手机App

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

    GMT+8, 2025-3-5 03:00 , Processed in 0.323115 second(s), 68 queries .

    © 2020-2025 乐筑天下

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