乐筑天下

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

[编程交流] 多行文字到属性

[复制链接]

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:03:03 | 显示全部楼层 |阅读模式
有没有更快的方法将格式化的多行文字转换为属性?
 
 
从Revit导出的图形中的房间标记显示为多行文字,我们需要将其转换为标准房间标记属性,其中它将遵循多行文字到属性的任何格式。
 
 
例子:
在多行文字中,它在宋体中高度为500,在属性中也将相同。
 
 
我附上了一个样本文件,虽然属性中文本的高度可能会有所不同。
样品图纸
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:07:07 | 显示全部楼层
大家好,欢迎来到这个论坛,
 
 
因为工作,我没有太多时间,无论是“家”还是“这里”都是工作,所以我不能点击一下就完成这一步,但也许其他人可以。我这样做的方式是(Q)选择所有多行文字并分解它们,将所有块放在文字附近,然后使用我的VT实用程序中的行到行功能,它在这个论坛的某个地方,只需搜索我的用户名“RLX”。但它仍然是半手动的,所以如果其他人有更多或完全自动化的例程。。。甚至更好。
 
 
gr.Rlx
 
 
另外,我脑海中有一个链接可以修改以完成这项工作,现在我记得它:
 
 
http://www.cadtutor.net/forum/showthread.php?101120-Help-with-lisp-to-move-text-to-specific-locations-w-a-better-叙事
 
 
它可以自动看到哪些文本属于一个组,因此唯一需要改变的是,不是移动对象,而是将它们的值放在一个块中。也许如果你问作者真的很好。。。我认为这是一个相当精彩的节目!
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-5 16:12:16 | 显示全部楼层
你好,卡德·努布,你怎么看每组mtex都可以被选中。
我想有很多。
如果你能展示至少4到5个区域,也许会有所帮助。
我认为这样的多行文字,都在同一层,必须在一条多段线内。
如果是这样,可以从每个房间中选择
 
我开始做第一个defun,把文本作为att
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-5 16:13:15 | 显示全部楼层
我发现一个问题,多行文字没有按顺序绘制。
它是窗口设置的选择中的列表。
 
  1. ("XXXX.XX m²" "ROOM NAME" "XX-XXXX" "(XXX)")

 
你可以看到没有自然顺序,向下,也没有向上
 
 
 
 
你做了什么改变吗?
回复

使用道具 举报

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:18:44 | 显示全部楼层
是的,所有都可以是同一层。我们只需要字体样式和字体高度完全匹配
目前,我正在使用一个我在某处下载的复制文本,在其中,你选择多行文字,然后选择属性,它将匹配多行文字的内容和属性,但它不会匹配样式和高度。
谢谢你的欢迎。我会查一下这个,看看是否有帮助。
回复

使用道具 举报

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:21:45 | 显示全部楼层
是的,我就是这么看的。不过我可以孤立他们。
是否可以打开选定多行文字的窗口,并在打开窗口后输入块名(我认为最好是在Autocad支持路径中)
我更喜欢房间,然后是(xxx),然后是数字,然后是面积,如果不是太多的要求。
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-5 16:23:34 | 显示全部楼层
当然,这是一种方法,但正如我所看到的,它们不是一个自然顺序,向下,所以它必须按Y值排序。
 
再次,请给我一个真实的dwg示例,至少4个多行文字组区域中的4个。
 
我想我只需要2到3个用户选择、面积多边形、一个多行文字和样例blk参考就可以做到。然后lisp将完成所有任务。
回复

使用道具 举报

rlx

21

主题

1505

帖子

1551

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
81
发表于 2022-7-5 16:25:21 | 显示全部楼层
只是快速:
 
 
  1. (defun c:RoomTag ( / ss tl ip bn)
  2. (vl-load-com)
  3. (princ "\n<<< Select Mtexts >>> ")
  4. (if (and (setq ss (ssget '((0 . "MTEXT")))) (setq ss (sss ss))
  5.    (tblsearch "block" (setq bn "Room_Tag")))
  6.    (progn
  7.      (setq tl (mapcar '(lambda (x) (cdr (assoc 1 (entget x)))) ss)
  8.     ip (cdr (assoc 10 (entget (car ss)))))
  9.      (setvar "ATTREQ" 0)(command-s "-insert" bn ip 1 1 0)
  10.      (mapcar '(lambda (att val) (wai bn att val)) '("RM_TAG" "RM_VENT" "RM_NO." "RM_AREA") tl)
  11.      (mapcar 'entdel ss)
  12.    )
  13. )
  14. )
  15. (defun sss ( %ss )
  16. (vl-sort
  17.    (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
  18.   '(lambda (x y) (> (caddr (assoc 10 (entget x))) (caddr (assoc 10 (entget y)))))
  19. )
  20. )
  21. (defun wai (b a v)
  22. (setq a (strcase a) b (ent->vla b))
  23. (vl-some '(lambda (x)(if (= a (strcase (vla-get-tagstring x)))(progn (vla-put-textstring x v) v)))
  24.        (vlax-invoke b 'getattributes)))
  25. (defun ent->vla ( e )
  26. (cond ((= (type e) 'VLA-OBJECT) e)
  27. ((= (type e) 'ENAME)(vlax-ename->vla-object e))
  28. ((and (= (type e) 'STR) (tblsearch "block" e))
  29. (ent->vla (ssname (ssget "x" (list (cons 0 "INSERT")(cons 2 e))) 0)))
  30. (t nil)
  31. )
  32. )

 
 
我知道,它还有改进的空间。。。
 
 
gr.RLX
回复

使用道具 举报

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:29:34 | 显示全部楼层
我附上了一个简单的示例计划。
 
 
我试过rlx lisp,但不起作用。但是谢谢你的努力。
非常感谢。
样本。图纸
回复

使用道具 举报

18

主题

98

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
79
发表于 2022-7-5 16:33:44 | 显示全部楼层
@RLX我收到了这个错误:
 
 
 
 
命令:ROOMTAG
>>
选择对象:找到1个
选择对象:找到1个,共2个
选择对象:找到1个,共3个
选择对象:找到1个,共4个
选择对象:
; 错误:无函数定义:WAI
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 20:53 , Processed in 0.828607 second(s), 72 queries .

© 2020-2025 乐筑天下

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