kucha007 发表于 2023-4-26 22:13:47

【RTB】分解缩放块的同时,恢复块内文字状态

本帖最后由 kucha007 于 2023-4-26 22:17 编辑

需求来自这里:
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=187696&fromuid=7329538


;分解缩放块的同时,恢复块内文字状态 by kucha
(defun C:RTB (/ Old_Cmd K:DXF Blk SCVar SS i en TmeVar)
(setq Old_Cmd (getvar "cmdecho"))
(defun K:DXF (key en) (cdr (assoc key (entget en))))
(command "undo" "be");记录编组
    (setvar "cmdecho" 0)
    (if
      (and
      (setq Blk (car (entsel "\n→请点选块: ")))
      (eq (K:DXF 0 Blk) "INSERT")
      )
      (progn
      (setq SCVar (list (K:DXF 42 Blk) (/ (K:DXF 41 Blk) (K:DXF 42 Blk))));高宽
      (command "Explode" Blk)
      (setq SS (ssget "p"))
      (repeat (setq i (sslength SS))
          (setq en (ssname SS (setq i (1- i))))
          (if (eq (K:DXF 0 en) "TEXT")
            (progn
            (setq TmeVar (mapcar '(lambda (x y) (/ x y))
                                  (list (K:DXF 40 en) (K:DXF 41 en));高宽
                                  SCVar
                        )
            )
            (entmod (subst (cons 40 (car TmeVar)) (assoc 40 (entget en)) (entget en)))
            (entmod (subst (cons 41 (cadr TmeVar)) (assoc 41 (entget en)) (entget en)))
            )
          )
      )
      (princ (strcat "\n——★★★ 块内文字已恢复到缩放前的状态 ★★★——"))
      )
      (princ (strcat "\n——★★★ 请选择块对象! ★★★——"))
    )
    (setvar "cmdecho" Old_Cmd)
(command "undo" "e");结束编组
(princ)
)

nsh935 发表于 2023-4-27 12:17:45

谢谢大神分享

kucha007 发表于 2023-4-27 13:22:07

本帖最后由 kucha007 于 2023-4-27 13:23 编辑

cchessbd 发表于 2023-4-27 12:30
感谢大侠,测试了一下,能够恢复文字原大小,就是相对位置移位了。。。

我先保存下,再来研究吧……感谢 ...
编块前你需要用justifytext命令改一下文字对齐点,有些文字需要改成右对齐

cchessbd 发表于 2023-4-27 12:30:14

本帖最后由 cchessbd 于 2023-4-27 12:34 编辑

感谢大侠,测试了一下,能够恢复文字原大小,就是相对位置移位了。。。

我先保存下,再来研究吧……感谢大侠出手。小弟佩服不已!






e2002 发表于 2023-4-27 14:15:21

这种情况用Attrib才是合理的做法。

cchessbd 发表于 2023-4-27 18:20:58

kucha007 发表于 2023-4-27 13:22
编块前你需要用justifytext命令改一下文字对齐点,有些文字需要改成右对齐

谢谢老大,我试一试。之前好像眼睛瞎了,没看到。。。
justifytext
justifytext
justifytext

cchessbd 发表于 2023-4-27 18:23:22

e2002 发表于 2023-4-27 14:15
这种情况用Attrib才是合理的做法。

元素太多,文字需要及时调整位置,打印才能看清楚。
有时间试一试块啥区别,谢谢大哥热心回复。

Noangler 发表于 2023-4-27 18:28:04

谢谢分享,学习一下!

tensir 发表于 2024-7-7 14:45:58

感谢作者的分享!
页: [1]
查看完整版本: 【RTB】分解缩放块的同时,恢复块内文字状态