找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 807|回复: 11

[编程申请]:能编一个命令,将选中的所有不同文字变成同样的字

[复制链接]
发表于 2003-10-25 09:33:38 | 显示全部楼层 |阅读模式

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

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

×
这是从别人哪拿来的东西,可以一次将选中的文字变成同样的字(如将选中的字都变成“/”)工具箱中可以增加这个功能吗,这样我就不用每次要用时去加载文件。

  1. [CODE]
  2.   [FONT=courier new]
  3. (defun c:tt(/ ss newtext i)
  4.   (princ "\n旧文字:")
  5.   (setq ss (ssget '((0 . "TEXT"))))
  6.   (princ "\n新文字:")
  7.   (setq newtext (getstring))
  8.   (setq i 0)
  9.   (repeat (sslength ss)
  10.     (entmod (subst (cons 1 newtext) (assoc 1 (setq elist (entget (ssname ss i)))) elist))
  11.     (setq i (1+ i))
  12.   )
  13.   (princ)
  14. )
  15. (defun c:ts(/ ss size i)
  16.   (prompt "\n选取需改变高度的文字:")
  17.   (setq ss (ssget '((0 . "TEXT"))))
  18.   (princ "文字高度<") (princ (cdr(assoc 40 (entget (ssname ss 0))))) (princ ">:")
  19.   (setq size (getdist))
  20.   (if (not size) (setq size (cdr(assoc 40 (entget (ssname ss 0))))))
  21.   (setq i 0)
  22.   (repeat (sslength ss)
  23.     (entmod (subst (cons 40 size) (assoc 40 (setq elist (entget (ssname ss i)))) elist))
  24.     (setq i (+ 1 i))
  25.   )
  26.   (princ)
  27. )

  28. (defun c:sj(/ os pt1 pt2 ang12)
  29.   (setq os (getvar "osmode"))
  30.   (setvar "plinewid" 45)
  31.   (setvar "osmode" 0)
  32.   (setq pt1 (getpoint "\n第一点:"))
  33.   (setq pt2 (getpoint pt1 "\n第二点:"))
  34.   (setq ang12 (angle pt1 pt2) wid 45)
  35.   (command "pline" (polar pt1 (- ang12 (* pi 0.5)) (* 4.5 wid))
  36.                    pt1 pt2
  37.                    (polar pt2 (- ang12 (* pi 0.5)) (* 4.5 wid))
  38.                    ""
  39.   )
  40.   (setvar "osmode" os)
  41.   (princ)
  42. )
  43. (defun c:xj(/ os pt1 pt2 ang12)
  44.   (setq os (getvar "osmode"))
  45.   (setq wid 45)
  46.   (setvar "plinewid" wid)
  47.   (setvar "osmode" 0)
  48.   (setq pt1 (getpoint "\n第一点:"))
  49.   (setq pt2 (getpoint pt1 "\n第二点:"))
  50.   (setq ang12 (angle pt1 pt2))
  51.   (command "pline" (polar (polar pt1 (+ ang12 (* 0.5 pi)) (* 3.0 wid))
  52.                           ang12 (* 4.5 wid)
  53.                    )
  54.                    (strcat "@" (rtos(* 3.0 wid)) "<" (rtos(+ (/ (* ang12 180.0) pi) 180)))
  55.                    "a"
  56.                    (strcat "@" (rtos(* 3.0 wid)) "<" (rtos(- (/ (* ang12 180.0) pi) 90)))
  57.                    "l"
  58.                    (polar pt2 (+ ang12 pi) (* 1.5 wid))
  59.                    "a"
  60.                    (strcat "@" (rtos(* 3.0 wid)) "<" (rtos(+ (/ (* ang12 180.0) pi) 90)))
  61.                    "l"
  62.                    (strcat "@" (rtos(* 3.0 wid)) "<" (rtos(+ (/ (* ang12 180.0) pi) 180)))
  63.                    ""
  64.   )
  65.   (setvar "osmode" os)
  66.   (princ)
  67. )


  68. (princ)
  69.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-10-26 02:52:39 | 显示全部楼层
这个功能不错,建议加入。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-26 04:16:36 | 显示全部楼层
也可以用用find命令(cad2k以上版本)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-26 08:56:42 | 显示全部楼层
费劲,用2000+以上的特性工具修改文字也可以统一的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-28 03:50:35 | 显示全部楼层

Re: [编程申请]:能编一个命令,将选中的所有不同文字变成同样的字

最初由 快乐街 发布
[B]能编一个命令,将选中的所有不同文字变成同样的字[/B]


使用VLISP:
(defun c:test ()
  (vl-load-com)
  (setq ntext (getstring "\nNew Text: "))
  (prompt "\nSelect Text: ")
  (setq ss (ssget '((0 . "TEXT"))) n 0)
  (while (< n (sslength ss))
    (setq obj (vlax-ename->vla-object (ssname ss n)))
    (vla-put-textstring obj ntext)
    (setq n (1+ n))
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-28 06:28:20 | 显示全部楼层
还有别的快捷方式吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-28 13:22:27 | 显示全部楼层
最初由 wuxi_jzsy 发布
[B]还有别的快捷方式吗? [/B]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-12 05:47:30 | 显示全部楼层
bonus工具条上有cht命令
r12也有的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-12 12:10:33 | 显示全部楼层
find命令不也很方便嘛!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-12 12:20:36 | 显示全部楼层
最初由 myfreemind 发布
[B]find命令不也很方便嘛! [/B]


find命令不行,可以用论坛中的文字修改大师!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-12-12 12:36:03 | 显示全部楼层
这样还可以改标注中的
Sub DE()
Set ss = GetSelSet
If ss.Count = 1 Then
Set Ent = ss.Item(0)
If TypeOf Ent Is AcadMText Or TypeOf Ent Is AcadText Then
UserForm5.TextBox1.text = Ent.TextString
Else
On Error Resume Next
If Ent.TextOverride = "" Then
UserForm5.TextBox1.text = CInt(Ent.Measurement)
Else
UserForm5.TextBox1.text = CInt(Ent.TextOverride)
End If

End If
End If
UserForm5.Show
s = Trim(UserForm5.TextBox1.text)
control = UserForm5.TextBox2.text '判断用
If control = 2 Then Exit Sub
For Each Ent In ss
If TypeOf Ent Is AcadDimAngular Then
Ent.TextOverride = s
ElseIf TypeOf Ent Is AcadDimRotated Then
Ent.TextOverride = s
ElseIf TypeOf Ent Is AcadDimRadial Then
Ent.TextOverride = s
ElseIf TypeOf Ent Is AcadDimAligned Then
Ent.TextOverride = s
ElseIf TypeOf Ent Is AcadDim3PointAngular Then
Ent.TextOverride = s
ElseIf TypeOf Ent Is AcadDimDiametric Then
Ent.TextOverride = s
ElseIf TypeOf Ent Is AcadMText Then
Ent.TextString = s
ElseIf TypeOf Ent Is AcadText Then
Ent.TextString = s
End If
Next
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-6 11:02:23 | 显示全部楼层
不好用,我还是用FIND命令好了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 04:11 , Processed in 0.205020 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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