找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 674|回复: 7

[讨论]:有关文本编辑问题

[复制链接]
发表于 2005-10-13 23:13:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
本主题探讨有关文本的编辑问题,请大家献计献策。
先出手“文本匹配”程序。
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  5. ★1·在acad.lsp中增加(load"xyp_lib")
  6. ■2·在每个程序内增加(load"xyp_lib")
  7. ■3·在command下,输入(load"xyp_lib")
  8. ■4·在菜单.mnl中增加(load"xyp_lib")
  9. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  13. ;;;文本匹配
  14. (defun c:wbpp ()
  15.   (CMDLA0)
  16.   (setq tx (UKWORD 7 "1 2 3 4 5 6" "\n匹配选项 : 1-字符/2-字型/3-字高/4-字宽/5-旋转角/6-倾斜角"         tx))
  17.   (cond        ((= tx "1") (TEXT-PP 1))
  18.         ((= tx "2") (TEXT-PP 7))
  19.         ((= tx "3") (TEXT-PP 40))
  20.         ((= tx "4") (TEXT-PP 41))
  21.         ((= tx "5") (TEXT-PP 50))
  22.         ((= tx "6") (TEXT-PP 51))
  23.   )
  24.   (CMDLA1)
  25. )
  26. (defun TEXT-PP (#mode / ent new i ss s1)
  27.   (princ "\n选择样板 : ")
  28.   (setq        ent (usel 0 "TEXT")
  29.         new (dxf #mode (entget (car ent)))
  30.         i   -1
  31.   )
  32.   (princ "\n选择要匹配的文本 : ")
  33.   (setq SS (ssget '((0 . "TEXT"))))
  34.   (while (setq s1 (ssname ss (setq i (1+ i))))
  35.     (sub_upd s1 #mode new)
  36.   )
  37. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-14 00:38:10 | 显示全部楼层
多个选项最好可多选(用对话框最好)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-14 08:00:59 | 显示全部楼层
改换字型:将所选文本的字型改为当前所设字型
  1. [FONT=courier new]
  2. ;;;* 改换字型
  3. (DEFUN C:GHZX (/ SS s1 n tx)
  4.   (cmdla0)
  5.   (prompt "\n将所选文本的字型改为当前所设字型。")
  6.   (princ "\n选择文本 : ")
  7.   (while (not (SETQ SS (ssget '((0 . "*TEXT"))))))
  8.   (setq        s1 (ssname SS 0)
  9.         n  -1
  10.         tx (getvar "textstyle")
  11.   )
  12.   (princ "\n旧字型为 : ")
  13.   (princ (dxf 7 (entget S1)))
  14.   (princ "新字型为 ")
  15.   (princ tx)
  16.   (princ "\n稍候 : ")
  17.   (while (setq s1 (ssname SS (setq n (1+ n))))
  18.     (sub_upd s1 7 TX)
  19.     (princ ".")
  20.   )
  21.   (princ n)
  22.   (princ "个改变字型!")
  23.   (cmdla1)
  24. )
  25. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-14 13:01:16 | 显示全部楼层
改换字高:将原有文本的字高改为新字高。
[php];;;* 改换字高
(DEFUN C:GHZG (/ SS n s1)
  (cmdla0)
  (prompt "\n将原有文本的字高改为新字高。\n选择文本 : ")
  (while (not (SETQ SS (ssget '((0 . "*TEXT"))))))
  (princ "\n旧字高为 ")
  (princ (dxf 40 (entget (ssname SS 0))))
  (setq        th (ureal 7 "" "\n新字高为" th)
        n  -1
  )
  (princ "\n稍候 : ")
  (while (setq s1 (ssname SS (setq n (1+ n))))
    (sub_upd s1 40 TH)
    (princ ".")
  )
  (princ n)
  (princ "个改变字高!")
  (cmdla1)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-14 13:04:25 | 显示全部楼层
改换字宽:将原有文本的字宽改为新字宽。
[php];;;* 改换字宽
(DEFUN C:GHZK (/ SS n s1)
  (cmdla0)
  (prompt "\n将原有文本的字宽改为新字宽。\n选择文本 : ")
  (while (not (SETQ SS (ssget '((0 . "*TEXT"))))))
  (princ "\n旧字宽为 ")
  (princ (dxf 41 (entget (ssname SS 0))))
  (setq        th (ureal 7 "" "\n新字宽为" th)
        n  -1
  )
  (princ "\n稍候 : ")
  (while (setq s1 (ssname SS (setq n (1+ n))))
    (sub_upd s1 41 TH)
    (princ ".")
  )
  (princ n)
  (princ "个改变字宽!")
  (cmdla1)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-10-14 13:10:51 | 显示全部楼层
改字高用CAD的 scaletext 命令最快了(AutoCAD 2000+,不知道含不含CAD2000),关于多选项提示部分建议符合 2006 那种弹出选项。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-15 23:08:16 | 显示全部楼层
改字母大小写
  1. [FONT=courier new];;;改字母大小写
  2. (defun c:test003 ()
  3.   (CMDLA0)
  4.   (setq dx (UKWORD 1 "1 2" "\n修改方式: 1-大写/2-小写" dx))
  5.   (prompt "\n请选择要改变的字符串 : ")
  6.   (setq        ss (ssget '((0 . "TEXT")))
  7.         i  -1
  8.   )
  9.   (while (setq s1 (ssname ss (setq i (1+ i))))
  10.     (setq tx (xyp-get-DXF 1 s1))
  11.     (if        (= dx "1")
  12.       (setq tx (strcase tx))
  13.       (setq tx (strcase tx T))
  14.     )
  15.     (sub_upd s1 1 tx)
  16.   )
  17.   (CMDLA1)
  18. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-15 23:09:18 | 显示全部楼层
批量炸碎文字变成线
  1. [FONT=courier new];;;批量炸碎文字变成线
  2. (Defun c:test004 ()
  3.   (CMDLA0)
  4.   (SetVar "MIRRTEXT" 1)
  5.   (setvar "osmode" 0)
  6.   (PrinC "\n选择要分解的文字 : ")
  7.   (setq        ss (ssget '((0 . "TEXT")))
  8.         i  -1
  9.   )
  10.   (while (setq s1 (ssname ss (setq i (1+ i))))
  11.     (setq pt1 (xyp-get-MinMaxPoint s1 1)
  12.           pt2 (xyp-get-MinMaxPoint s1 9)
  13.           pt  (xyp-get-MidPoint pt1 pt2)
  14.           pt3 (polar pt (* pi 0.5) 100)
  15.     )
  16.     (Command "mirror" s1 "" pt pt3 "y")
  17.     (command "zoom" "w" pt1 pt2)
  18.     (command "wmfout" "TEXTWMF" s1 "" "erase" s1 "")
  19.     (command "wmfin" "TEXTWMF" pt "2" "" "")
  20.     (setq s1 (EntLast))
  21.     (command "mirror" s1 "" pt pt3 "y")
  22.     (setq pt0 (xyp-get-MidPoint
  23.                 (xyp-get-MinMaxPoint s1 1)
  24.                 (xyp-get-MinMaxPoint s1 9)
  25.               )
  26.     )
  27.     (command "move" s1 "" pt0 pt)
  28.     (command "explode" s1 "")
  29.   )
  30.   (setvar "MIRRTEXT" 0)
  31.   (CMDLA1)
  32. )
  33. [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-29 02:33 , Processed in 0.377461 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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