乐筑天下

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

[编程交流] 使用formatti将多行文字添加到dim

[复制链接]

7

主题

32

帖子

25

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 17:45:00 | 显示全部楼层 |阅读模式
早上好
我正在尝试向维度添加附加文本,如多行文字。
要求是新的多行文字位于尺寸线下方,高度为1.3mm,颜色为红色。原文高度为1.8,颜色为白色。
我附上了一个样本的要求,作为屏幕抓取。
提前谢谢。
184500jlypb1obrf6rzyb1.jpg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:52:20 | 显示全部楼层
这里有一些编辑多行文字、设置颜色和高度等的例子。方法是执行3行dim,然后通过lisp单击dim,它将更改为所需的设置。我正在努力记住我将努力找到的主题,我知道李·麦克也提供了帖子。
回复

使用道具 举报

17

主题

193

帖子

179

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
84
发表于 2022-7-5 17:54:49 | 显示全部楼层
我不记得从哪里得到这个代码,但我一直在使用它:
  1. (defun c:txt2dim (/ edim text etxt vla_dim cmd1)
  2. (prompt "\nText to Dimension")
  3. (setq cmd1 (getvar 'cmdecho))
  4. (setvar 'cmdecho 0)
  5. (vl-load-com)
  6. (while
  7. (or (initget 1)
  8. (not (setq edim (entsel "\nSelect dimension: ")))
  9. (/= (cdr (assoc 0 (entget (car edim)))) "DIMENSION")
  10. )
  11. (prompt "\n*** You must select a dimension. ***")
  12. )
  13. (while
  14. (and
  15. (not
  16.   (and (setq etxt (entsel "\nSelect text to add to override or enter to type: "))
  17.    (= (cdr (assoc 0 (entget (car etxt)))) "TEXT")
  18.   )
  19. )
  20. (or (initget 1)
  21.   (not
  22.    (setq text (getstring t "\nType the text or ENTER to clear override: "))
  23.   )
  24. )
  25. )
  26. )
  27. (if etxt
  28. (setq text (vla-get-textstring (vlax-ename->vla-object (car etxt))))
  29. )
  30. (setq vla_dim (vlax-ename->vla-object (car edim)))
  31. (cond
  32. ((and text (/= text ""))
  33. (vla-put-textoverride vla_dim (strcat (chr 60)(chr 62) "[url="file://\\X"]\\X[/url]" text))
  34. )
  35. ((and text (= text "")) ; clear the override
  36. (vla-put-textoverride vla_dim text)
  37. )
  38. )
  39. (setvar 'cmdecho cmd1)
  40. (princ)
  41. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:59:06 | 显示全部楼层
也看看这个http://www.cadtutor.net/forum/showthread.php?92585-帮助仅更改多行文字中数字的颜色&高亮显示=多行文字
回复

使用道具 举报

2

主题

84

帖子

83

银币

初来乍到

Rank: 1

铜币
9
发表于 2022-7-5 18:02:30 | 显示全部楼层
为什么不将文字添加到标注文字中,按ENTER键创建新行,并将文字格式设置为任意多行文字对象。您可以在AutoCad 2016中执行此操作。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:06:34 | 显示全部楼层
下面是一个非常简单的示例:
  1. (defun c:dimtest ( / e i s )
  2.    (if (setq s (ssget "_:L" '((0 . "*DIMENSION") (1 . "~*?*"))))
  3.        (repeat (setq i (sslength s))
  4.            (setq e (entget (ssname s (setq i (1- i)))))
  5.            (entmod (subst '(1 . "<>\\X{\\C1;This is a\\Ptest of text}") (assoc 1 e) e))
  6.        )
  7.    )
  8.    (princ)
  9. )
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 18:11:53 | 显示全部楼层
 
这将使所有文本都位于行上方。我相信他想要的功能更像李所做的,通过编程在后面添加X来进入下一行。
回复

使用道具 举报

12

主题

152

帖子

140

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 18:16:19 | 显示全部楼层
 
既然我们搞砸了。。。dimtext是否可以左对齐或右对齐?不仅要对齐文本框,还要对齐框内的文本。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:20:25 | 显示全部楼层
 
据我所知不是这样。
回复

使用道具 举报

7

主题

32

帖子

25

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 18:21:03 | 显示全部楼层
谢谢大家
 
 
像往常一样,你们统治。
 
 
一个问题是,添加的文本是否可以是多行文字,因为每次插入时添加的文本都会发生变化。
 
 
再次感谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 05:03 , Processed in 0.453566 second(s), 75 queries .

© 2020-2025 乐筑天下

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