明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 516|回复: 2

[源码] 求助:如何实现多选,且能同时修改单行文字和多行文字的字高

[复制链接]
发表于 2016-4-26 00:54 | 显示全部楼层 |阅读模式
  • (defun C:Z2(/ a en1 ent len n newr nn oldr s ss test)
  •   (setvar "CMDECHO" 0)
  •   (setq test T nn 0)
  •   (while test
  •     (setq ss (ssadd))
  •     (setq ss (ssget))
  •     (if (= nil ss)
  •       (setq test nil)
  •       (progn
  •         (setq len (sslength ss))
  •         (setq n 1 s 1)
  •         (while (<= n len)
  •           (setq en1 (ssname ss (1- n)))
  •           (setq a (entget en1))
  •           (if  (= "TEXT" (cdr (assoc 0 a)))
  •             (progn
  •               (if (= s 1)
  •                 (progn
  •                   (setq oldr (cdr (assoc 40 a)))
  •                   ;(setq newr (getreal (strcat "\nNew high <" (rtos oldr 2 1) ">:")))
  •                   (setq newr(* 5 5 (getvar "celtscale")))
  •                   (if (= newr nil) (setq newr oldr))
  •                   (setq s nil)
  •                 )
  •               )
  •               (setq ent (subst (cons 40 newr) (assoc 40 a) a))
  •               (entmod ent)
  •               (setq nn (1+ nn))
  •             )
  •           )
  •           (setq n (1+ n))
  •         )
  •       )
  •     )
  •   )
  •   (princ)
  • )

 楼主| 发表于 2016-4-26 00:55 | 显示全部楼层
(defun C:Z2(/ a en1 ent len n newr nn oldr s ss test)
  (setvar "CMDECHO" 0)
  (setq test T nn 0)
  (while test
    (setq ss (ssadd))
    (setq ss (ssget))
    (if (= nil ss)
      (setq test nil)
      (progn
                                (setq len (sslength ss))
                                (setq n 1 s 1)
                                (while (<= n len)
                                        (setq en1 (ssname ss (1- n)))
                                        (setq a (entget en1))
                                        (if  (= "TEXT" (cdr (assoc 0 a)))
                                                (progn
                                                        (if (= s 1)
                                                                (progn
                                                                        (setq oldr (cdr (assoc 40 a)))
                                                                        ;(setq newr (getreal (strcat "\nNew high <" (rtos oldr 2 1) ">:")))
                                                                        (setq newr(* 5 5 (getvar "celtscale")))
                                                                        (if (= newr nil) (setq newr oldr))
                                                                        (setq s nil)
                                                                )
                                                        )
                                                        (setq ent (subst (cons 40 newr) (assoc 40 a) a))
                                                        (entmod ent)
              (setq nn (1+ nn))
                                                )
                                        )
                                        (setq n (1+ n))
                                )
      )
    )
  )
  (princ)
)
发表于 2016-4-26 08:24 | 显示全部楼层
(defun C:Z2 (/ a en1 ent len n newr nn oldr s ss test)
  (setvar "CMDECHO" 0)
  (setq        test T
        nn 0
  )
  (while test
    (setq ss (ssadd))
    (setq ss (ssget))
    (if        (= nil ss)
      (setq test nil)
      (progn
        (setq len (sslength ss))
        (setq n        1
              s        1
        )
        (while (<= n len)
          (setq en1 (ssname ss (1- n)))
          (setq a (entget en1))
          (if (wcmatch (cdr (assoc 0 a)) "*TEXT")
            (progn
              (if (= s 1)
                (progn
                  (setq oldr (cdr (assoc 40 a)))
                                        ;(setq newr (getreal (strcat "\nNew high <" (rtos oldr 2 1) ">:")))
                  (setq newr (* 5 5 (getvar "celtscale")))
                  (if (= newr nil)
                    (setq newr oldr)
                  )
                  (setq s nil)
                )
              )
              (setq ent (subst (cons 40 newr) (assoc 40 a) a))
              (entmod ent)
              (setq nn (1+ nn))
            )
          )
          (setq n (1+ n))
        )
      )
    )
  )
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-17 00:48 , Processed in 0.145921 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表