明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 11848|回复: 44

框选写入文字功能(实用)

    [复制链接]
发表于 2011-12-2 14:50 | 显示全部楼层 |阅读模式
本帖最后由 【KAIXIN】 于 2011-12-2 16:21 编辑








如果觉得框选的宽与高不合适可以用下面的程序(刷一下)






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 金钱 +50 收起 理由
MaKaiJin + 1 + 50 赞一个!

查看全部评分

发表于 2021-7-11 20:23 | 显示全部楼层
框选写入文字功能,学习了!
发表于 2021-7-8 21:43 | 显示全部楼层
好东西 谢谢分享
发表于 2024-4-13 07:03 | 显示全部楼层
感谢楼主分享
发表于 2011-12-2 16:09 | 显示全部楼层
晕倒哦,楼主购买主题一个,附件还要一个啊
 楼主| 发表于 2011-12-2 16:11 | 显示全部楼层
本帖最后由 【KAIXIN】 于 2011-12-2 16:16 编辑
hao3ren 发表于 2011-12-2 16:09
晕倒哦,楼主购买主题一个,附件还要一个啊


哈哈  不好意思!看错了,第一次收钱,我改改!  
发表于 2011-12-2 16:14 | 显示全部楼层
理解错误,以为是在原有文字框选位置处写入文字,实际上就是写文字,这样写文字的字高怎么控制啊
 楼主| 发表于 2011-12-2 16:15 | 显示全部楼层
hao3ren 发表于 2011-12-2 16:14
理解错误,以为是在原有文字框选位置处写入文字,实际上就是写文字,这样写文字的字高怎么控制啊

字高在框选的时候就可以控制
 楼主| 发表于 2011-12-2 16:22 | 显示全部楼层
hao3ren 发表于 2011-12-2 16:14
理解错误,以为是在原有文字框选位置处写入文字,实际上就是写文字,这样写文字的字高怎么控制啊

我上传了一个文字高宽比,可以设置文字的默认样子......
 楼主| 发表于 2011-12-2 16:26 | 显示全部楼层
本帖最后由 【KAIXIN】 于 2011-12-2 16:27 编辑

  1. ;修改字高
  2. (DEFUN changtextheight (EN TCH_ok / th1 aa1)
  3.   (if b
  4.     (progn
  5.       (setq kk 0)
  6.       (setq ss "\n新字高<")
  7.       (SETQ TH (CDR (ASSOC 40 EN)))
  8.       (if tch_ok
  9. (progn
  10.    (setq th1 (rtos (* th scale_47) 2 2))
  11.    (setq th (* th scale_47))
  12. )
  13. (setq th1 (rtos (/ th 1) 2 2))
  14.       )
  15.       (princ (strcat ss th1 "mm>:"))
  16.       (setq aa1 (getreal))
  17.       (if aa1
  18. (setq th (* aa1 1))
  19.       )
  20.       (setq b nil)
  21.     )
  22.   )
  23.   (if TCH_ok
  24.     (progn
  25.       (setq th (/ th scale_47))
  26.       (setq en (subst (cons 40 th) (assoc 40 en) en))
  27.       (setq th (* th scale_47))
  28.     )
  29.     (setq en (subst (cons 40 th) (assoc 40 en) en))
  30.   )
  31.   (entmod en)
  32.   (setq kk (1+ kk))
  33. )
  34. ******************************************************
  35. (defun C:CH (/ LL EN k kk th b)
  36.   (setq sse (ssget))
  37.   (if sse
  38.     (progn
  39.       (setq ll (sslength sse)
  40.      b  0
  41.      k  0
  42.      kk 0
  43.       )
  44.       (repeat ll
  45. (SETQ EN (ENTGET (ssname sse k)))
  46. (setq TCH_ok nil)
  47. (if (= (CDR (ASSOC 0 EN)) "TEXT")
  48.    (changtextheight en TCH_ok)
  49.    (if (= (CDR (ASSOC 0 EN)) "TCH_TEXT")
  50.      (progn
  51.        (setq scale_47 (cdr (assoc 47 en)))
  52.      ;(setq en (subst (cons 72 11) (assoc 72 en) en))
  53.        (setq TCH_ok 0)
  54.        (changtextheight en TCH_ok)
  55.      )
  56.    )
  57. )    ;if text_end
  58. (if (= (CDR (ASSOC 0 EN)) "INSERT")
  59.    (progn
  60.      (setq main_B_name (cdr (assoc -1 en)))
  61.      (setq an (tblsearch "block" (cdr (assoc 2 en))))
  62.      (setq an_name (cdr (assoc -2 an)))
  63.      (while (/= an_name nil)
  64.        (setq en (entget an_name))
  65.        (if (= (CDR (ASSOC 0 EN)) "TEXT")
  66.   (progn
  67.     (changtextheight en TCH_ok)
  68.   )
  69.        )
  70.        (setq an_name (entnext an_name))
  71.      )
  72.      (entupd main_B_name)
  73.    )
  74. )    ;if_insert_end
  75. (setq k (1+ k))
  76.       )     ;repeat_end
  77.       (princ (strcat "改了" (rtos kk) "个字符."))
  78.     )
  79.   )
  80.   (PRINC)
  81. )
  82. **************************************************
  83. (defun C:CW (/ p l n nw chm en ow enm e1)
  84.       (setq p (ssget))
  85.       (if p (progn
  86.         (setq l 0 n (sslength p) chm 0)
  87.         (while (< l n)
  88.           (setq enm (cdr (assoc 0 (setq en (entget (ssname p l))))))
  89.           (if(or (= enm "LWPOLYLINE") (= enm "POLYLINE") (= enm "LINE") (= enm "ARC")(= enm "CIRCLE"))
  90.              (progn
  91.                (if (zerop chm) (progn
  92.                (if (and (/= enm "LINE") (/= enm "ARC")) (setq ow (cdr (assoc 40 en)))
  93.                    (setq ow 0))
  94.                 (princ "\n新线宽<")
  95.                 (princ (rtos (/ ow 1) 2 2))
  96.                 (setq nw (getreal "mm>:"))
  97.                 (if (null nw) (setq nw ow))
  98.               ))
  99.     (if (= enm "CIRCLE")
  100.       (progn
  101.         ;(setq angle1 (/ pi 2))
  102.         (setq pt1 (polar (CDR(ASSOC 10 EN)) 0 (CDR(ASSOC 40 EN))))
  103.         (setq pt2 (polar (CDR(ASSOC 10 EN)) pi (CDR(ASSOC 40 EN))))
  104.         (command ".BREAK" pt1 pt2)
  105.         (command "pedit" (ssname p l) "y" "w" nw "c" "")
  106.              ))
  107.     (if (or (= enm "LINE") (= enm "ARC"))
  108.         (command "pedit" (ssname p l) "y" "w" nw "")
  109.         
  110.         (if (or(= enm "LWPOLYLINE") (= enm "POLYLINE"))
  111.             (command "pedit" (ssname p l) "w" nw "")
  112.         )  
  113.       )
  114.               (setq  chm (1+ chm))
  115.           ))
  116.           (setq l (1+ l))
  117.         )
  118.       ))
  119.       (princ "改了") (princ chm) (princ "条线.")
  120.       (PRINC)
  121. )

  122. ;(command ".BREAK"
  123.   ;       (cons e
  124.   ;          (polar (socas 10) 0 (socas 40))
  125.   ;        )
  126.   ;       (polar (socas 10) 1e-3 (socas 40))

评分

参与人数 1明经币 +1 金钱 +50 收起 理由
MaKaiJin + 1 + 50

查看全部评分

发表于 2011-12-2 16:27 | 显示全部楼层
这个功能是最基本的,我以前弄得也有,理解错误了,呵呵呵,说实话这个源码收费有点坑人了
 楼主| 发表于 2011-12-2 16:35 | 显示全部楼层
hao3ren 发表于 2011-12-2 16:27
这个功能是最基本的,我以前弄得也有,理解错误了,呵呵呵,说实话这个源码收费有点坑人了

嗯,其实这个是我很常用的一个程序,工作需要特意写的,顺便分享!
可以框选一个表格,或者一个框来写文本,文本的内容可以任意.........
发表于 2011-12-3 19:46 | 显示全部楼层
实用性不是很大,每次框选的不可能一样大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 18:45 , Processed in 0.662602 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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