乐筑天下

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

[编程交流] 如何确定lin的数量

[复制链接]

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 17:49:36 | 显示全部楼层 |阅读模式
我很好奇,在多重引线对象中是否有确定文本行数(或文本框高度)的方法?我已经把所有的信息都翻了一遍,没有看到任何与此相关的信息。我问这个问题的原因是因为我试图添加到李在这里找到的代码中:http://www.cadtutor.net/forum/showthread.php?76430-多重引线包络处理。我的想法是进行一次迭代,从1.01开始,以0.01的增量增加容差,直到文本框高度与最初相同(我已经多次弄乱了容差,我无法得到一个始终有效的值,但仍然缩小了文本框)。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-5 18:00:23 | 显示全部楼层
你好
 
如果找到多行文字字符串,可以通过多行文字字符串中组合字符串的数量\\P获得行数。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:02:44 | 显示全部楼层
谢谢塔瓦的帮助!所以我研究了你的建议,我可以从vla get textstring或dxf组码304中获得,但问题是,\\P信息只有在用户点击enter键输入新的文本行时才可用,而不是通过拖动文本框将文本放在第二行时才可用,至少据我所知。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 18:11:43 | 显示全部楼层
转储三行多行文字,你看起来像这样吗?
 
TextString=“abcdefg\\Phijklm\\Popqrst”
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:18:39 | 显示全部楼层
将多重引线文本框的高度除以文本高度+行距-web上某处的多行文字有一个类似的示例。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:19:45 | 显示全部楼层
当我有一个多重引线,它有两行这样的文本:
  1. Cadtutor is
  2. helpful.
它像这样打印
  1. TextString = "CADTUTOR IS HELPFUL"

. 谢谢李!我会玩一会儿,看看能不能弄明白。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:29:03 | 显示全部楼层
所以我一直在胡闹,我仍然很困惑。我有一个宽度为29.9248的文本框,在查看dxf代码后,我看到的是组码43。文本框的高度是5.3333333,但我找不到任何相关信息。我试着做了29.9248/5.33333,得到了5.61,然而,没有任何组码有5.3333或5.61。我也知道文本高度是2.0(代码40),所以我试着用5.3333-2.0=3.3333来查找高度,但也没有一个具有该值的组码。我是不是错失了什么?
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 18:34:14 | 显示全部楼层
也许这是李写的。。。
 
  1. ;; by Lee Mac
  2. ;; http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Determining-the-number-of-lines-in-a-...
  3. (defun mattrib-number-of-lines (ent / box enx)
  4. (setq enx (entget ent)
  5. box (textbox (list '(1 . "A") (assoc 7 enx) (assoc 40 enx)))
  6. )
  7. (1+ (fix (/ (cdr (assoc 43 enx)) (* 1.66 (- (cadadr box) (cadar box))))))
  8. )
  9. ;; mtxtattrib-number-of-lines

 
HTH,M.R。
回复

使用道具 举报

95

主题

477

帖子

383

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
475
发表于 2022-7-5 18:37:48 | 显示全部楼层
谢谢marko(还有Lee的代码)!因此,我在mleader对象上测试了这一点,但由于dxf组码不同,它不起作用,但在多行文字对象上效果很好。我很难将其转换为用于mleader,因为我无法理解所有等价dxf组码。我知道mtext的1相当于mleader的304(给出了第一个304代码),40到40(给出了第二个),但我找不到7(样式)或43的任何等价物(我不确定这到底给出了什么)。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:43:59 | 显示全部楼层
 
第43组给出了多行文字文本框的高度-据我所知,MLeader没有等效的DXF组。然而,我已经提供了一个函数来计算这个高度(并演示了如何获得MLeader文本样式),链接在上面。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 23:46 , Processed in 1.267178 second(s), 72 queries .

© 2020-2025 乐筑天下

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