找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 819|回复: 9

[编程申请]:请高手帮忙编一个加强查找替换程序

[复制链接]
发表于 2006-1-9 10:27:54 | 显示全部楼层 |阅读模式

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

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

×
天正6.5+CAD2002中文版,想让高手帮忙编一个这样的fas文件:一次命令将410、420、430、440替换成450,460、470、480、490一次性替换成500,以此类推,直到将1560、1570、1580、1590替换成1600,那位高手出手相助,不胜感谢!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-9 20:00:17 | 显示全部楼层
这种格式可能更简洁。
  1. [FONT=courier new]
  2. (load "xyp_lib.vlx")                        ;版本 V.20051205 (1781)
  3. ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
  4. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  5. ★1·在acad.lsp中增加(load"xyp_lib.vlx")
  6. ■2·在每个程序内增加(load"xyp_lib.vlx")
  7. ■3·在command下,输入(load"xyp_lib.vlx")
  8. ■4·在菜单.mnl中增加(load"xyp_lib.vlx")
  9. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. |;

  13. (defun c:test ()
  14.   (CMDLA0)
  15.   (setq        lst '(("410,420,430,440" "450")
  16.               ("460,470,480,490" "500")
  17.               ("510,520,530,540" "550")
  18.               ("560,570,580,590" "600")
  19.               ("610,620,630,640" "650")
  20.               ("660,670,680,690" "700")
  21.               ("710,720,730,740" "750")
  22.               ("760,770,780,790" "800")
  23.               ("810,820,830,840" "850")
  24.               ("860,870,880,890" "900")
  25.               ("910,920,930,940" "950")
  26.               ("960,970,980,990" "1000")
  27.               ("1010,1020,1030,1040" "1050")
  28.               ("1060,1070,1080,1090" "1100")
  29.               ("1110,1120,1130,1140" "1150")
  30.               ("1160,1170,1180,1190" "1200")
  31.               ("1210,1220,1230,1240" "1250")
  32.               ("1260,1270,1280,1290" "1300")
  33.               ("1310,1320,1330,1340" "1350")
  34.               ("1360,1370,1380,1390" "1400")
  35.               ("1410,1420,1430,1440" "1450")
  36.               ("1460,1470,1480,1490" "1500")
  37.               ("1510,1520,1530,1540" "1550")
  38.               ("1560,1570,1580,1590" "1600")
  39.              )
  40.   )
  41.   (foreach n lst
  42.     (setq a  (car n)
  43.           b  (cadr n)
  44.           ss (ssget "X" (list (cons 0 "TEXT") (cons 1 a)))
  45.           i  -1
  46.     )
  47.     (if        ss
  48.       (while (setq s1 (ssname ss (setq i (1+ i))))
  49.         (sub_upd s1 1 b)
  50.       )
  51.     )
  52.   )
  53.   (CMDLA1)
  54. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 1 反对 0

使用道具 举报

发表于 2006-1-9 11:41:27 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib");版本 V.20051205 (1789)
  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. ★通用函数下载地址:
  11. [url]http://www.xdcad.net/forum/attachme...&postid=1606661[/url]
  12. |;
  13. (defun c:test ()
  14.   (CMDLA0)
  15.   (setq        ss (ssget "X" '((0 . "TEXT")(1 . "410,420,430,440")))
  16.         i  -1
  17.   )
  18.   (while (setq s1 (ssname ss (setq i (1+ i))))
  19.     (sub_upd s1 1 "450")
  20.     )
  21.   (setq        ss (ssget "X" '((0 . "TEXT")(1 . "460,470,480,490")))
  22.         i  -1
  23.   )
  24.   (while (setq s1 (ssname ss (setq i (1+ i))))
  25.     (sub_upd s1 1 "500")
  26.     )
  27.   (setq        ss (ssget "X" '((0 . "TEXT")(1 . "510,520,530,540")))
  28.         i  -1
  29.   )
  30.   (while (setq s1 (ssname ss (setq i (1+ i))))
  31.     (sub_upd s1 1 "550")
  32.     )
  33.   (setq        ss (ssget "X" '((0 . "TEXT")(1 . "560,570,580,590")))
  34.         i  -1
  35.   )
  36.   (while (setq s1 (ssname ss (setq i (1+ i))))
  37.     (sub_upd s1 1 "600")
  38.     )
  39.   ;;;
  40.   ;;;以此类推,直到将1560、1570、1580、1590替换成1600
  41.   ;;;  
  42.   (CMDLA1)
  43. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-9 13:20:06 | 显示全部楼层
谢谢楼上的DX,但我对这种编程的东西一窍不通啊,能否再辛苦点,生成一个可以加载的程序传上来,加载后直接输入命令就可以执行的那种??另外想问问如果要想自己编一些这样的小工具应该如何下手??先要学什么东西??盼赐教,呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-9 15:14:45 | 显示全部楼层
“照猫画虎”总行吧?
  1. [FONT=courier new]
  2. (setq        ss (ssget "X" '((0 . "TEXT")(1 . "560,570,580,590")))
  3.         i  -1
  4.   )
  5.   (while (setq s1 (ssname ss (setq i (1+ i))))
  6.     (sub_upd s1 1 "600")
  7.     )
  8. [/FONT]


看看其中的"560,570,580,590"和"600",与你的要求匹配。
如果对lsp程序一点不懂,那就麻烦了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-9 16:37:04 | 显示全部楼层
我下载通用函数后加载成功,然后将上面的内容粘贴到写字板,改后缀名为lsp,拷到cad2002\support下,运行ap加载,提示成功,然后输入"test"命令行没有任何提示, (defun c:test ()   中的test是否未命令名称??是否应该又一个命令名的??呵呵,小弟超级菜鸟一个,见笑了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-9 16:46:36 | 显示全部楼层
输入test并回车就已经完成了!
看看图中文本内容是否发生了变化?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-9 17:21:51 | 显示全部楼层
410~440可以改成450,460~490可以改成500,其他的不行,你看看是不是我改后的lsp有问题?不过我就是加了几行而已:
;|
(defun c:test ()
  (CMDLA0)
  (setq        ss (ssget "X" '((0 . "TEXT")(1 . "410,420,430,440")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "450")
    )
  (setq        ss (ssget "X" '((0 . "TEXT")(1 . "460,470,480,490")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "500")
    )
  (setq        ss (ssget "X" '((0 . "TEXT")(1 . "510,520,530,540")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "550")
    )
  (setq        ss (ssget "X" '((0 . "TEXT")(1 . "560,570,580,590")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "600")
    )
(setq        ss (ssget "X" '((0 . "TEXT")(1 . "610,620,630,640")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "650")
    )
(setq        ss (ssget "X" '((0 . "TEXT")(1 . "710,720,730,740")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "750")
    )
(setq        ss (ssget "X" '((0 . "TEXT")(1 . "760,770,780,790")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "800")
    )
(setq        ss (ssget "X" '((0 . "TEXT")(1 . "810,820,830,840")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "850")
    )
(setq        ss (ssget "X" '((0 . "TEXT")(1 . "860,870,880,890")))
        i  -1
  )
  (while (setq s1 (ssname ss (setq i (1+ i))))
    (sub_upd s1 1 "900")
    )
  ;;;
  ;;;以此类推,直到将1560、1570、1580、1590替换成1600
  ;;;  
  (CMDLA1)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-10 09:52:10 | 显示全部楼层
通过实践证明,此法可行,严重感谢xyp同志为我国创立自主创新型国家所作出的突出贡献!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-10 10:42:26 | 显示全部楼层
有点类似于四舍五入。可以搞个更通用的。
转换下,比如先除100,入的直接再乘100就行了,舍的要乘100后再加50。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 21:52 , Processed in 0.229095 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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