找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1600|回复: 7

(完成)[编程申请]:帮我编一个对指定文字加括号的程序把

[复制链接]
发表于 2003-6-29 19:39:10 | 显示全部楼层 |阅读模式

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

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

×
画图时常常用到通长筋要加括号的,每次都要把右手从鼠标上拿下来,按住shift,非常麻烦,谁帮帮我吧,

比如说有一个文字“4%%13120",通过一个命令变成"(4%%13120)",谢谢了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2003-6-29 20:37:11 | 显示全部楼层

Re: [编程申请]:帮我编一个对指定文字加括号的程序把

最初由 lonnee 发布
[B]画图时常常用到通长筋要加括号的,每次都要把右手从鼠标上拿下来,按住shift,非常麻烦,谁帮帮我吧,

比如说有一个文字“4%%13120",通过一个命令变成"(4%%13120)",谢谢了。 [/B]

  1. (defun c:test (/ ss)
  2.   (xdrx_begin)
  3.   (setq ss (ssget '((0 . "text"))))
  4.   (if ss
  5.     (progn
  6.       (xdrx_setsstodb ss 0)
  7.       (while (xdrx_getentdata 0)
  8.         (xdrx_modent 1 (strcat "(" (xdrx_getentdxf 1) ")"))
  9.       )
  10.     )
  11.   )
  12.   (xdrx_end)
  13. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-29 21:00:25 | 显示全部楼层
我的文字修改大师可以实现,在vlisp编程板块
http://www.xdcad.net/forum/showthread.php?s=&threadid=51286
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-6-29 21:11:45 | 显示全部楼层

Re: [编程申请]:帮我编一个对指定文字加括号的程序把

最初由 lonnee 发布
[B]画图时常常用到通长筋要加括号的,每次都要把右手从鼠标上拿下来,按住shift,非常麻烦,谁帮帮我吧,

比如说有一个文字“4%%13120",通过一个命令变成"(4%%13120)",谢谢了。 [/B]


以前给大家写过,可以用鼠标在希望加括号的地方点两下,就加入了,可以在一个整体的文字中间加括号。

写好了,请试用,自动在鼠标点的起始和结束位置插入括号对,括号样式分3种。

程序在“晓东工具箱”下用。大家可以把代码拷贝下,粘贴到工具箱LISP目录的txt_tool.lsp 里面,调入后,用命令XDTB_TxtBracket 执行

  1. <normalfont>
  2. ;|
  3.    命令:XDTB_TxtBracket
  4.    功能:在文字中插入括号对
  5. |;
  6. (defun c:XDTB_TxtBracket (/ e pos1 pos2 txt txt1 txt2 txt3 p1 p2)
  7.   (if (not (and
  8.              $bracket1
  9.              $bracket2
  10.            )
  11.       )
  12.     (setq $bracket1 "("
  13.           $bracket2 ")"
  14.     )
  15.   )
  16.   (while (and
  17.            (progn
  18.              (prompt (strcat "\n**当前括号样式:" $bracket1 $bracket2))
  19.              t
  20.            )
  21.            (progn
  22.              (initget "1 2 3")
  23.              (setq e (xdrx_entsel "\n请点取要处理的文字[1:() / 2:[] / 3:{}]<退出>:"
  24.                                   '((0 . "text"))
  25.                      )
  26.              )
  27.            )
  28.          )
  29.     (cond
  30.       ((= e "1")
  31.         (setq $bracket1 "("
  32.               $bracket2 ")"
  33.         )
  34.       )
  35.       ((= e "2")
  36.         (setq $bracket1 "["
  37.               $bracket2 "]"
  38.         )
  39.       )
  40.       ((= e "3")
  41.         (setq $bracket1 "{"
  42.               $bracket2 "}"
  43.         )
  44.       )
  45.       ((/= e nil)
  46.         (setq e (car e))
  47.         (setq txt (xdrx_getentdxf 1))
  48.         (if (and
  49.               (setq p1 (getpoint "\n括号起始位置<退出>:"))
  50.               (setq p2 (getpoint "\n结束位置<退出>:"))
  51.             )
  52.           (progn
  53.             (xdrx_begin)
  54.             (if (not (setq pos1 (car ($xdlsp_txtbrk e p1))))
  55.               (setq pos1 0)
  56.             )
  57.             (if (not (setq pos2 (car ($xdlsp_txtbrk e p2))))
  58.               (setq pos2 (strlen txt))
  59.             )
  60.             (setq txt (xdrx_string_Insert txt pos1 $bracket1)
  61.                   txt (xdrx_string_Insert txt (1+ pos2) $bracket2)
  62.             )
  63.             (xdrx_setenttodb e)
  64.             (xdrx_modent 1 txt)
  65.             (xdrx_end)
  66.           )
  67.         )
  68.       )
  69.     )
  70.   )
  71.   (princ)
  72. )
  73. </normalfont>


下载地址:http://www.xdcad.net/tech/xd_tbox/xdtb_txtbracket.swf

<embed src=http://www.xdcad.net/tech/xd_tbox/xdtb_txtbracket.swf quality=high width=512 height=482 loop=true type="application/x-shockwave-flash">
</embed>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-6-30 10:17:36 | 显示全部楼层
XDSoft的程序似乎并不是针对批量加括号的情况。
贴一段,以供参考。我这个很简单,差别主要在思路上;不过倒还很实用。

其实也不止加“括号”,而是加“前缀”和“后缀”。
一个用法是:画立面图、剖面图的时候,你可以(用另一个程序)阵列一列数字,“1、2、3、4……”,然后可以对他们一次性地,前加“第”、后加“层”,于是就得到了“第1层、第2层、第3层、第4层……”。



  1.   [FONT=courier new]
  2. (defun c:fixt (/ ss idx txtent newstr k)
  3.   (setq
  4.     fx_pre (if fx_pre fx_pre "")
  5.     fx_pos (if fx_pos fx_pos "")
  6.   )
  7.   (princ (strcat "\n前缀: '" fx_pre "'\t后缀: '" fx_pos "'"))
  8.   (initget "O S")
  9.   (setq
  10.     k (getkword "\nO选项/<S选择TEXT实体>: ")
  11.     k (if k k "S")
  12.   )
  13.   (if
  14.     (= k "O")
  15.     (setq
  16.       fx_pre (getstring 1 "\n前缀: ")
  17.       fx_pos (getstring 1 "\n后缀: ")
  18.     )
  19.   )
  20.   (setq ss (ssget '((0 . "text"))) idx 0)
  21.   (if ss
  22.     (repeat (sslength ss)
  23.       (setq
  24.         txtent (entget (ssname ss idx))
  25.         newstr (strcat fx_pre (cdr (assoc 1 txtent)) fx_pos)
  26.       )
  27.       (entmod (subst (cons 1 newstr) (assoc 1 txtent) txtent))
  28.       (setq idx (1+ idx))
  29.     )
  30.   )
  31.   (princ)
  32. )
  33.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-7-25 09:50:41 | 显示全部楼层
用2002的查找替换功能不就可以轻松解决吗。

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

使用道具 举报

发表于 2003-7-30 13:34:30 | 显示全部楼层
最初由 dazhu-119 发布
[B]用2002的查找替换功能不就可以轻松解决吗。

菜单edit下  find [/B]


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-20 09:57 , Processed in 0.506320 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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