明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2882|回复: 8

[已解答] MapGis转CAD后文字大小的一个问题

[复制链接]
发表于 2014-4-24 16:06 | 显示全部楼层 |阅读模式
MapGis转CAD后的文字比在MapGIS中的要大一点,经过比对,发现cad中的文字字高为MapGIS中的0.75倍。有没有办法一步到位统一使文字按比例缩小?
比如文字中有字高分别为2、3、4、5、6、7、10的文字,按0.75的比例缩小为1.5、2.25、3、3.75、4.5、5.25、7.5的字高。而不是先选字高2的改为1.5,3的改为2.25,4的改为3……

发表于 2014-4-24 16:32 | 显示全部楼层
有没有办法一步到位统一使文字按比例缩小?
而不是先选字高2的改为1.5,3的改为2.25,4的改为3……


那应该是没办法了,虽然可以写个简单的LSP,但要用到的方法刚好是你排除掉了的
发表于 2014-4-24 16:48 | 显示全部楼层
试用一下,是不是需要的,不是的话,再详细说明,或者贴个图上来。
  1. (defun c:tt(/ ss i en et e40)
  2.   (setq ss(ssget '((0 . "*text")))
  3.         i -1
  4.   )
  5.   (repeat (sslength ss)
  6.     (setq i (1+ i)
  7.           en(ssname ss i)
  8.           et(entget en)
  9.           e40(* 0.75 (cdr (assoc 40 et)))
  10.           et(subst (cons 40 e40) (assoc 40 et) et)
  11.     )
  12.     (entmod et)
  13.   )
  14.   (princ)
  15. )
发表于 2014-4-24 16:51 | 显示全部楼层
 楼主| 发表于 2014-4-25 10:39 | 显示全部楼层
ll_j 发表于 2014-4-24 16:48
试用一下,是不是需要的,不是的话,再详细说明,或者贴个图上来。

能用,谢谢。就是这样的,如果能先定义倍数,就更好了
 楼主| 发表于 2014-4-25 10:41 | 显示全部楼层
自贡黄明儒 发表于 2014-4-24 16:51
也可以原位缩放http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108656

这个我没试,用了3L的那个可以用,就没试这个了,不过这个应该是可以的。谢谢
发表于 2014-4-25 10:51 | 显示全部楼层
ro2056 发表于 2014-4-25 10:39
能用,谢谢。就是这样的,如果能先定义倍数,就更好了

先定义倍数是很容易的,随手改一下:
  1. (defun c:tt(/ ss i en et e40 sc)
  2.   (setq ss(ssget '((0 . "*text")))
  3.         i -1
  4.   )
  5.   (initget 6)
  6.   (setq sc (getreal "\n文字放缩倍数 <0.75>: "))
  7.   (if (not sc) (setq sc 0.75))
  8.   (repeat (sslength ss)
  9.     (setq i (1+ i)
  10.           en(ssname ss i)
  11.           et(entget en)
  12.           e40(* sc (cdr (assoc 40 et)))
  13.           et(subst (cons 40 e40) (assoc 40 et) et)
  14.     )
  15.     (entmod et)
  16.   )
  17.   (princ)
  18. )

 楼主| 发表于 2014-4-25 15:34 | 显示全部楼层
ll_j 发表于 2014-4-25 10:51
先定义倍数是很容易的,随手改一下:

谢谢,真是太好了,转的图都不去有文字漏掉了.
发表于 2014-4-25 18:51 | 显示全部楼层
ro2056 发表于 2014-4-25 10:39
能用,谢谢。就是这样的,如果能先定义倍数,就更好了

很简单,略微修改一下即可。程序如下:
(defun c:wzywsf (/ ss i en et e40)
(setq sc (getdist "\n请输入缩放倍数:"))
  (setq ss(ssget '((0 . "*text")))
        i -1
  )
  (repeat (sslength ss)
    (setq i (1+ i)
          en(ssname ss i)
          et(entget en)
          e40(* sc(cdr (assoc 40 et)))
          et(subst (cons 40 e40) (assoc 40 et) et)
    )
    (entmod et)
  )
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 00:08 , Processed in 0.265404 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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