明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2099|回复: 5

不同数字宽度比例自动调整。

[复制链接]
发表于 2009-6-26 23:26:00 | 显示全部楼层 |阅读模式

钢筋编号,从1~上百,如1~199,每个数字都在圆内,用lisp可以自动找到所有文字,并全部修改为一个高度和宽度比例,但我想将1~9号数字的宽度比例用0.7,10~99号数字的宽度比例用0.65,100~199号数字的宽度比例用0.55,如何能自动搜索文字字段并修改圆内数字相应宽度比例?是个头痛的问题,请高手不吝赐教。

;**********   PMZT   将钢筋标注字体左对齐(L)***
(defun PMZT()

    (setq old_hh 2.50)  ;字体高度(默认为2.5)
(setq str_hh (strcat "\n 请输入钢筋标注字体高度<" (rtos old_hh 2) ">: "))
(setq hh (getdist str_hh))
(if (null  hh) (setq hh old_hh))

      (setq zkxs (getreal "\n 请输入钢筋标注字体宽度比例系数<0.7>: "));字体宽度系数(默认为0.7) 
(if (null zkxs) (setq zkxs 0.7))        
        (setq sszt (ssget "X" '((0 . "TEXT"))))
 (command "justifytext" "P" "" "M")
          (ztdX)
  (prin1)
)

(defun ztdX()
  (setq i 0) 
  (setq nn (sslength sszt))
  (repeat nn
    (setq ssn (ssname sszt i))
    (setq ssdata (entget ssn))
    (setq sstyp (cdr (assoc 0 ssdata)))
    (if (= sstyp "TEXT")
      (progn  
 (setq old_hh (assoc 40 ssdata));改文字高度
 (setq new_hh (cons 40 hh))
 (setq old_kb (assoc 41 ssdata));改宽度比例数
 (setq new_kb (cons 41 zkxs))
 (setq ssdata (subst new_hh old_hh ssdata))
 (setq ssdata (subst new_kb old_kb ssdata))
 (entmod ssdata) 
    );end if
   
 );end if 
 (setq i (1+ i))
   
 )
  (prompt "\n 正在处理...请稍候......")
  (prin1)
)

发表于 2009-6-28 08:29:00 | 显示全部楼层
本帖最后由 作者 于 2009-6-30 11:50:49 编辑

游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0

 楼主| 发表于 2009-6-28 19:53:00 | 显示全部楼层

感谢ZZXXQQ回帖,你用了  strlen来确定字符串的长度,以此来判断字符使用的宽度比例系数。

但我只是要改变每个圆圈以内的字符宽度,在圆圈以外的数字,有的是3个字符,有的字符更多,都用0.7的宽度比例系数.如何搜索圆圈以内的字符?

发表于 2009-6-28 23:13:00 | 显示全部楼层
2楼已改。再试试看。
 楼主| 发表于 2009-6-30 11:26:00 | 显示全部楼层

19,20行有点小遗漏,改成以下可用。

(setq p1 (polar(polar pc 0 r) (/ pi 2) r))
(setq p2 (polar(polar pc pi r) (/ pi -2) r))

ZZXXQQ兄思路很好,学习了。3q。


发表于 2011-11-3 12:43:43 | 显示全部楼层
功能很强大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 09:33 , Processed in 0.174675 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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