乐筑天下

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

[编程交流] LISP需要重命名空格b

[复制链接]

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:54:54 | 显示全部楼层 |阅读模式
大家好,我是新来的,希望能找到一些帮助。我在AutoCAD MEP中使用空间,我希望能够通过选择空间,然后选择建筑师提供的房间名称/编号文本,轻松重命名我的空间。这将节省大量时间,因为必须键入数百个房间的名称和编号来重命名这些空间。
 
为了清晰起见,我附上了一张图片。
 
这将允许我导出清晰标记的gbXML空间/分区数据,以进行冷/热负荷分析。
 
如果不存在这样的lisp例程,有人能为我指出将选定文本插入属性的lisp的正确方向吗?
 
非常感谢您的帮助!
085457bkzk6aj0lk2iy9bn.jpg
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:10:09 | 显示全部楼层
看起来您愿意用AutoLISP修改MEP的自定义图元-我不知道Vanilla AutoCAD中有空间图元。因此,也很容易从使用MEP的人那里获得支持。
为了查看此实体的关联列表是否可以访问和修改,请将下面的代码粘贴到命令行,选择一个空格项并将结果发布在此处。非常感谢。
  1. (entget (car (entsel)))
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:18:05 | 显示全部楼层
谢谢你的回复。以下是命令的结果:
 
  1. Command: (entget (car (entsel)))
  2. Select object: ((-1 . <Entity name: 7ffff265c00>) (0 . "AEC_SPACE") (5 .
  3. "5BD0") (102 . "{ACAD_XDICTIONARY") (360 . <Entity name: 7ffff265c10>) (102 .
  4. "}") (330 . <Entity name: 7ffff2459f0>) (100 . "AcDbEntity") (67 . 0) (410 .
  5. "Model") (8 . "G-Spce"))
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 08:26:25 | 显示全部楼层
不幸的是,该实体的功能似乎没有直接公开,因此,如果没有访问MEP,将非常需要调试代码来修改它。
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:32:54 | 显示全部楼层
好的,明白了。无论如何,谢谢你抽出时间。
 
也许MEP的其他人可以提供一些见解。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 08:44:03 | 显示全部楼层
欢迎来到CADTutor!
 
如果文本实体没有任何不可靠的格式,则应该可以:
 
  1. (defun c:RS () (c:RenameMepSpace))
  2. (defun c:RenameMepSpace  (/ *error* _Nomutt)
  3. (princ "\rRENAMEMEPSPACE ")
  4. (vl-load-com)
  5. (defun *error*  (msg)
  6.    (and oldNomutt (setvar 'nomutt oldNomutt))
  7.    (if acDoc
  8.      (vla-endundomark acDoc))
  9.    (cond ((not msg))                                                   ; Normal exit
  10.          ((member msg '("Function cancelled" "quit / exit abort")))    ; <esc> or (quit)
  11.          ((princ (strcat "\n** Error: " msg " ** "))))                 ; Fatal error, display it
  12.    (princ))
  13. (defun _Nomutt  (on /)
  14.    (if on
  15.      (setvar 'nomutt 0)
  16.      (setvar 'nomutt 1)))
  17. ((lambda (acDoc oldNomutt / ssSpace ssText name)
  18.     (if (and (_Nomutt T)
  19.              (princ "\nSelect space object to name: ")
  20.              (_Nomutt nil)
  21.              (setq ssSpace (ssget ":S:E:L" '((0 . "AEC_SPACE"))))
  22.              (_Nomutt T)
  23.              (princ "\nSelect text to name space object: ")
  24.              (_Nomutt nil)
  25.              (setq ssText (ssget ":S:E:L" '((0 . "MTEXT,TEXT")))))
  26.       (progn
  27.         (vla-startundomark acDoc)
  28.         (setq name (vla-get-textstring
  29.                      (vlax-ename->vla-object
  30.                        (ssname ssText 0))))
  31.         (while (vl-string-search "\\P" name)
  32.           (setq name (vl-string-subst " " "\\P" name)))
  33.         (vla-put-name
  34.           (vlax-ename->vla-object (ssname ssSpace 0))
  35.           name)
  36.         (_Nomutt T)
  37.         (prompt (strcat "\n\nMEP Space renamed  >>  " name))
  38.         (*error* nil))
  39.       (cond (ssText (*error* "No space selected"))
  40.             ((*error* nil)))))
  41.    (vla-get-activedocument (vlax-get-acad-object))
  42.    (getvar 'nomutt)))

 
**使用AutoCAD MEP 2012测试
回复

使用道具 举报

1

主题

4

帖子

3

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:48:14 | 显示全部楼层
哇,太快了!非常感谢!
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:02:05 | 显示全部楼层
 
很乐意帮忙。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-9 21:22 , Processed in 0.463555 second(s), 71 queries .

© 2020-2025 乐筑天下

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