乐筑天下

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

[编程交流] 多重引线包络处理

[复制链接]

8

主题

24

帖子

16

银币

初来乍到

Rank: 1

铜币
41
发表于 2022-7-5 17:38:53 | 显示全部楼层 |阅读模式
大家好
 
我们有包含多个引线的图形,它们的边界框太大了!大于边界框中包含的文本。
 
我们确实有一个lisp,可以重新调整多行文字实体的边界框大小,但这不适用于多引线文字。
 
有没有人已经有了这样的Lisp程序并且愿意分享?
 
如果有人能帮忙,我们将不胜感激。
 
当做
Shoey鞋
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 17:48:05 | 显示全部楼层
试试这个简单的代码。。。
 
  1. (defun c:Test (/ e i n)
  2. (if (setq e (ssget "_:L" '((0 . "MULTILEADER"))))
  3.    (repeat (setq i (sslength e))
  4.      (setq n (ssname e (setq i (1- i))))
  5.      (entmod (subst '(43 . 0.) (assoc 43 (entget n)) (entget n)))
  6.    )
  7. )
  8. (princ)
  9. )
回复

使用道具 举报

8

主题

24

帖子

16

银币

初来乍到

Rank: 1

铜币
41
发表于 2022-7-5 17:51:34 | 显示全部楼层
非常感谢Tharwat。
 
我很感激你的代码。然而,我忘了提到,我们的多重领导人中包含多行文本。
我们需要保留这些文本行,并保持边界框的宽度和高度相同。
我们不希望将其转换为一行文本。
 
当做
Shoey鞋
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 17:54:13 | 显示全部楼层
尝试以下Shoey:
 
  1. [color=GREEN];; Fit MLeader MText Frame  -  Lee Mac[/color]
  2. ([color=BLUE]defun[/color] c:mlf ( [color=BLUE]/[/color] e f i l s )
  3.    ([color=BLUE]defun[/color] f ( e [color=BLUE]/[/color] i l s x )
  4.        ([color=BLUE]setq[/color] s ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 304 e))
  5.              x ([color=BLUE]list[/color]
  6.                    ([color=BLUE]cons[/color] 40 ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 41 e)))
  7.                    ([color=BLUE]cons[/color] 07 ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 02 ([color=BLUE]entget[/color] ([color=BLUE]cdr[/color] ([color=BLUE]assoc[/color] 340 e))))))
  8.                )
  9.        )
  10.        ([color=BLUE]while[/color] ([color=BLUE]setq[/color] i ([color=BLUE]vl-string-search[/color] [color=MAROON]"\\P"[/color] s))
  11.            ([color=BLUE]setq[/color] l ([color=BLUE]cons[/color] ([color=BLUE]substr[/color] s 1 i) l)
  12.                  s ([color=BLUE]substr[/color] s ([color=BLUE]+[/color] i 3))
  13.            )
  14.        )
  15.        ([color=BLUE]setq[/color] l
  16.            ([color=BLUE]vl-remove-if[/color] '[color=BLUE]null[/color]
  17.                ([color=BLUE]mapcar[/color]
  18.                    ([color=BLUE]function[/color]
  19.                        ([color=BLUE]lambda[/color] ( s [color=BLUE]/[/color] b )
  20.                            ([color=BLUE]if[/color] ([color=BLUE]setq[/color] b ([color=BLUE]textbox[/color] ([color=BLUE]cons[/color] ([color=BLUE]cons[/color] 1 s) x)))
  21.                                ([color=BLUE]mapcar[/color] '[color=BLUE]-[/color] ([color=BLUE]cadr[/color] b) ([color=BLUE]car[/color] b))
  22.                            )
  23.                        )
  24.                    )
  25.                    ([color=BLUE]cons[/color] s l)
  26.                )
  27.            )
  28.        )
  29.        ([color=BLUE]list[/color]
  30.            ([color=BLUE]*[/color] [highlight]1.01[/highlight] ([color=BLUE]apply[/color] '[color=BLUE]max[/color] ([color=BLUE]mapcar[/color] '[color=BLUE]car[/color] l)))
  31.            ([color=BLUE]+[/color] ([color=BLUE]apply[/color] '[color=BLUE]+[/color] ([color=BLUE]mapcar[/color] '[color=BLUE]cadr[/color] l)) ([color=BLUE]*[/color] 0.68 ([color=BLUE]1-[/color] ([color=BLUE]length[/color] l))))
  32.        )
  33.    )
  34.    
  35.    ([color=BLUE]if[/color] ([color=BLUE]setq[/color] s ([color=BLUE]ssget[/color] [color=MAROON]"_:L"[/color] '((0 . [color=MAROON]"MULTILEADER"[/color]))))
  36.        ([color=BLUE]repeat[/color] ([color=BLUE]setq[/color] i ([color=BLUE]sslength[/color] s))
  37.            ([color=BLUE]setq[/color] e ([color=BLUE]entget[/color] ([color=BLUE]ssname[/color] s ([color=BLUE]setq[/color] i ([color=BLUE]1-[/color] i))))
  38.                  l (f e)
  39.            )
  40.            ([color=BLUE]entmod[/color]
  41.                ([color=BLUE]subst[/color] ([color=BLUE]cons[/color] 43 ([color=BLUE]car[/color] l)) ([color=BLUE]assoc[/color] 43 e)
  42.                    ([color=BLUE]subst[/color] ([color=BLUE]cons[/color] 44 ([color=BLUE]cadr[/color] l)) ([color=BLUE]assoc[/color] 44 e) e)
  43.                )
  44.            )
  45.        )
  46.    )
  47.    ([color=BLUE]princ[/color])
  48. )

 
如果发现某些文本仍移动到下一行,请增加[高亮显示]高亮显示的[(highlight)]容差值。
回复

使用道具 举报

8

主题

24

帖子

16

银币

初来乍到

Rank: 1

铜币
41
发表于 2022-7-5 18:01:09 | 显示全部楼层

 
非常感谢您的代码。
它就快到了,但高度的边界框不太在那里。
希望随附的图片对我们的要求更有意义。
左图是我们在图纸中看到的。
用户一直在线路末端返回,而不是使用固定宽度。
我们还发现,要么在末尾添加了多个返回,因此在底部添加了空间,要么用户一直在单击和拉伸夹点。
右边的图像是我们希望在运行lisp后看到的。
您的代码固定了宽度夹点位置,但不固定高度夹点位置。
 
 
希望你能帮忙。
 
当做
Shoey鞋
183857gt5tglsmr5f4stfy.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:06:11 | 显示全部楼层
请试用Shoey上面的更新代码
回复

使用道具 举报

8

主题

24

帖子

16

银币

初来乍到

Rank: 1

铜币
41
发表于 2022-7-5 18:07:21 | 显示全部楼层
非常感谢李。
真是太棒了!
 
我感谢你的时间和帮助。
 
当做
Shoey鞋
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 18:14:27 | 显示全部楼层
非常欢迎你Shoey
回复

使用道具 举报

2

主题

10

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:18:14 | 显示全部楼层
 
尊敬的LeeMac:
可以获得文本框或多重引线的4个顶点坐标吗?
有可能吗?
回复

使用道具 举报

2

主题

10

帖子

9

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 18:23:35 | 显示全部楼层
@李·麦克
 
嗨,李,这不可能吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 03:35 , Processed in 0.561096 second(s), 74 queries .

© 2020-2025 乐筑天下

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