找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3826|回复: 8

[编程申请] 求修改某段连续编号的LISP代码

[复制链接]
发表于 2014-1-8 16:44:03 | 显示全部楼层 |阅读模式
悬赏200D豆已解决
来源:1楼 修改连续编号的程序-AutoLISP/Visual LISP 编程技术-CAD论坛-明经CAD社区 - Powered by Discuz!
http://bbs.mjtd.com/thread-91633-1-1.html

上面网址是修改连续编号的。但它一是没有公开源码,二则它是设编号大于某值N时就全部修改,没有封顶。
我请求高手帮编一个类似的,一是公开源码,二是设立封顶的编号M,即当值大于M时,就不改了。也就是说,值大于M小于N均不作修改,只是修改大于等N,小于等于M的值。
修改的范围由用户选定(SSGET)。
希望是有无前、后缀均能做到的。
比如有如下文本:ZK1B        ZK2B        ZK3B        ZK4B        ZK5B        ZK6B        ZK7B        ZK8B        ZK9B        ZK10B        ZK11B        ZK12B        ZK13B        ZK14B        ZK15B        ZK16B        ZK17B        ZK18B        ZK19B        ZK20B        ZK21B        ZK22B        ZK23B        ZK24B        ZK25B        ZK26B        ZK27B        ZK28B        ZK29B        ZK30B        ZK31B        ZK32B        ZK33B        ZK34B        ZK35B        ZK36B
我要将ZK12B到ZK23B的这一段改为TV56C        TV57C        TV58C        TV59C        TV60C        TV61C        TV62C        TV63C        TV64C        TV65C        TV66C        TV67C
上面的改法时,前缀由ZK改为TV,后缀由B改为C,序号由12加上44改为56,13、14等类推。
当然上面举例是有前后缀的,我希望仅有前缀、仅有后缀或纯数值的也能成立

最佳答案

查看完整内容

写这些符号太麻烦,自己调试吧 1 数值项必须输入,最大值必须输入,且均限定为 INT[0-9] 2 修改选项的前缀后缀不输入用原文字的前后缀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-8 16:44:04 | 显示全部楼层
清风明月10 发表于 2014-1-8 22:09
算,象用公开的函数库,如晓东的、学院派的都算。因为这是经过证明可以无条件使用的

写这些符号太麻烦,自己调试吧

1 数值项必须输入,最大值必须输入,且均限定为 INT[0-9]
2 修改选项的前缀后缀不输入用原文字的前后缀
  1. (defun c:tt (/ Odcl:Getinput lst mnum opre onum        osub nnum npre nsub ss
  2.              spa el)
  3.   (defun Odcl:Getinput (/
  4.                         c:tsedit_Form1_Ok_OnClicked
  5.                         c:tsedit_form1_Cancel_OnClicked
  6.                         string
  7.                         lst
  8.                        )
  9.     (defun c:tsedit_Form1_Ok_OnClicked (/)
  10.       (setq lst        (mapcar
  11.                   '(lambda (x)
  12.                      (mapcar 'dcl_control_gettext x)
  13.                    )
  14.                   (list
  15.                     (mapcar 'eval
  16.                             '(tsedit_form1_opre
  17.                               tsedit_form1_onum
  18.                               tsedit_form1_osub
  19.                              )
  20.                     )
  21.                     (mapcar 'eval
  22.                             '(tsedit_form1_npre
  23.                               tsedit_form1_nnum
  24.                               tsedit_form1_nsub
  25.                              )
  26.                     )
  27.                   )
  28.                 )
  29.             lst        (cons (dcl_control_gettext tsedit_form1_spa) lst)
  30.             lst        (cons (dcl_control_gettext tsedit_form1_mnum) lst)
  31.       )
  32.       (dcl_form_close tsedit_form1)
  33.     )
  34.     (defun c:tsedit_form1_Cancel_OnClicked (/)
  35.       (dcl_form_close tsedit_form1)
  36.       (setq lst nil)
  37.     )
  38.     (setq string
  39.            (apply
  40.              'strcat
  41.              '("YWt6AxVEAAAcQpd4BuKTJRUWYitqgEjxs7q4qigdqhbzpqTe2BDtShjbht7P9kjxSBxVa6wzxJdd"
  42.                "8Wgty9xsgxvaaFT2JiTfgG56od5rijEvboOZUY/5/EFV5FTb9oYWQpmQRA2R55OyMAjNRTcYvBCY"
  43.                "oqmiBbCHwA2R48O1GVGwXIX3YbxarKbzA0b6Zv4RFf4khLHn1e1U1W138q6JBMpcO4Gl7trFcLQ3"
  44.                "LQRVxE46W6SXkDAS3upqg/MuEEWb2lYRWo3OJxDP85RbVkPTNAwTEMdNpRz0QDeL6h/UqTcJNzQ3"
  45.                "7arb4K4315Nacd9/tcYvkE9LQvU4Jk8qXgUvKIsYYr6dZtkgJSEdm4FHp1yoSCo/xdJXq+rEsCwF"
  46.                "qDe6zRzy4R2DFbbzvcZ1xJh4n0IQbgPmvlhkunoLQvNPJjH0qChEMYX34YD9tgE0tuFEmysRQW+M"
  47.                "F18BUprBOwX5+2Lx54xB8AjGX5U7qqbUG5OiEtbEGHnEF8KJr4mX403xJiHeJNVylWXdStJo2Ql3"
  48.                "xC34mmSpDzTtShoCTZdLO+Qz7ZcN58x86EOuQNmXaOidOC3rps2Ir/ODqBscBm0418Rgct7nQAXr"
  49.                "j7iWwOXAib6kEam1cpL+7rmT2bmAHkvz9IJPXzU7FxDvHse/7wf2KMFIRMTNyESMV7AhnbatUolE"
  50.                "jHDoYWwQzzu2QzwALrb25wTt+CNViqQciLlIiuvinBuWSMkQ2pDaENuQ2xPak4wJ2iMORyyrx8Aa"
  51.                "xIimrdGxp+tKLWH4F5TtTjODVDItqb9Kywxzs6qhXTrYILBXINiwM7F/Mu9ilgcbhbAl4Cd21ujY"
  52.                "cPSUruTkvblMMMcl5MTUcYMaksrR55Fub0cPl3aDaeXftCgN2CXk5cKzDMv2F2H0iEBsDMP295F1"
  53.                "h0NfNQkln4o5y0lxkAlAYYmFsq+9cumRbJ2KDrEVJgAz8pVIT9AX3/lfXxFpzJiQVNYXkLAJqJO8"
  54.                "YyX7AjrK6WiM0xwCIXSH+lbBK4a3HVyBWJ+AleKMATAvh/XwwOsAsHeDsaaLTZODXKSFs8/ZVIHV"
  55.                "Q8m0ttU7A3OAs06fAfibb6+BPJdeV4pp/nAG7B+tf/nX4gqu9Vn2hzU2eRRQKjhEnp87Cm6vP8+X"
  56.                "niDmCg50X9j9tUdbaWNybmNy6+xwiFzkY45rr7+c3P0jTpeeB/rmcJRHuzN5Q+Z2REUu8Td2R35j"
  57.                "ylzkY45rSETGfFhjSjkKbvZwML7a/YVvUESew247eSL98/ML0BPcU5SDfx2+AeU2kJ4pdymqXoFw"
  58.                "tZhILDuxSDLHFt5wB638ZKB5fxefI2Hk5nkkxk5pJI7ef3stdwVzuBJNY7jVHEce1L9SYFVREqi+"
  59.                "+rOZUml07X7OHiTLH8/8LcIer5iIL5e9rFnbcTRh60AnvjiC+wJInNtRNqWEh/zhE9tRavE4IPjl"
  60.                "OHDYSYiFrLoiH1AfJ1ZyW5Ja8komCr36+wQ3L1AmVn0Ev7yBOx9+TfG/E5iE+VckUjxNkfgXmBkv"
  61.                "BE058mjyrxImIrvsaVJEXKPoUSQiDKxnPGQvFWPzOKpwxDhdeZ8zXd/nOs/NSg70BdXf6TjfoDU0"
  62.                "dobHwiKFaZ6MmY0PB8cY6BUUx/joFSB3Z8e46xWkh/jqIv3ohsPOoagwzwgQg8go/BDbFo6CdFhC"
  63.                "ic2SyUucyYvfvyWzXILISEKeoXLGoS34H5nvFSKzVyAvDD1PJ4FWaLBk3y6ooXqtkhFe5EL4A/wd"
  64.                "Obc46Aw7t5L4Ampb6TTqAnf7O7c+UUroDurCeVgjwPduOzcoyBnqkvLWyAIVtw/GGWsfo+xUCihP"
  65.                "cm1Ysd+KzXRFNCC1V8fcmhqYKVIv6iJULwxhdPXsVEH07MAvDG5YgiE+Ntxa6Rac6vra/fRA8ngf"
  66.                "haGn2uQV1yGHdQjRQ4iN7rGVl1jBPRfdiK/KT7RhWOc1hESPfAbX46nHcnfcFHlq6+JhislQAE8w"
  67.                "DJsPmW7jFME3YtStPq2xhxsCdwB4WJbkL6TmpXtzGqkN9HUaD53+Gw+/iKO+isZxphCKeOWgx97e"
  68.                "LbQmfN6dcGl8xM1OP4l+/P8wt2SWqjpIfCOYoqBz4pwLENFdMjlKDeKL0zbxgAbKZrlNmzei3rlN"
  69.                "PQVs6f/M9C0ilee0NyTr29yrsrwns9a5aYRdljvOmYloMg5gPw8pTQIMI9IYHJV90xkMgFLJskG9"
  70.                "m5VB9BMaHA=="
  71.               )
  72.            )
  73.     )
  74.     (dcl_project_import string)
  75.     (dcl_form_show tsedit_form1)
  76.     lst
  77.   )
  78.   (if (and (setq lst (ODCL:GetInput))
  79.            (/= (setq mnum (car lst)) "")
  80.            (setq mnum (atoi mnum))
  81.            (setq spa (cadr lst))
  82.            (setq spa (atoi spa))
  83.            (mapcar 'set '(opre onum osub) (caddr lst))
  84.            (/= onum "")
  85.            (setq onum (atoi onum))
  86.            (mapcar 'set '(npre nnum nsub) (cadddr lst))
  87.            (/= nnum "")
  88.            (setq nnum (atoi nnum))
  89.            (progn
  90.              (princ "\n选择文字....")
  91.              (setq ss (ssget (list (cons 1 (strcat opre onum osub)))))
  92.            )
  93.       )
  94.     (progn
  95.       (setq el (xdrx_pickset->ents ss)
  96.             el (mapcar '(lambda        (x)
  97.                           (list (xdrx_getpropertyvalue x "Textstring") x)
  98.                         )
  99.                        el
  100.                )
  101.             el (mapcar
  102.                  '(lambda (x)
  103.                     (list (atoi (XD::STRING:REGEXPS "[0-9]+" (car x) ""))
  104.                           (cadr x)
  105.                     )
  106.                   )
  107.                  el
  108.                )
  109.             el (vl-remove-if
  110.                  '(lambda (x /)
  111.                     (or        (< (car x) onum)
  112.                         (> (car n) mnum)
  113.                     )
  114.                   )
  115.                  el
  116.                )
  117.             el (vl-sort el '(lambda (x1 x2) (< (car x1) (car x2))))
  118.       )
  119.       (if el
  120.         (progn
  121.           (xd::begin)
  122.           (if (= npre "")
  123.             (setq npre opre)
  124.           )
  125.           (if (= nsub "")
  126.             (setq nsub osub)
  127.           )
  128.           (mapcar '(lambda (x)
  129.                      (xdrx_setpropertyvalue
  130.                        x
  131.                        "textstring"
  132.                        (strcat npre (itoa nnum) nsub)
  133.                      )
  134.                      (setq nnum (+ nnum spa))
  135.                    )
  136.                   (mapcar 'cadr el)
  137.           )
  138.           (xd::end)
  139.         )
  140.       )
  141.     )
  142.   )
  143.   (princ)
  144. )
tsedit.jpg

点评

; 错误: no function definition: DCL_PROJECT_IMPORT 没法用,再者作者调试更快,别人要去重新理解你的思路,要不极慢,要不为不可能。还希望作者调试好  详情 回复 发表于 2014-1-9 08:28
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-8 21:47:51 来自手机 | 显示全部楼层
界面用ODCL,程序用xdrxapi算不算源码?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-1-8 22:09:15 | 显示全部楼层
算,象用公开的函数库,如晓东的、学院派的都算。因为这是经过证明可以无条件使用的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

 楼主| 发表于 2014-1-9 08:28:27 | 显示全部楼层
st788796 发表于 2014-1-9 00:45
写这些符号太麻烦,自己调试吧

1 数值项必须输入,最大值必须输入,且均限定为 INT[0-9]

; 错误: no function definition: DCL_PROJECT_IMPORT
没法用,再者作者调试更快,别人要去重新理解你的思路,要不极慢,要不为不可能。还希望作者调试好
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-1-9 08:30:01 | 显示全部楼层
清风明月10 发表于 2014-1-9 08:28
; 错误: no function definition: DCL_PROJECT_IMPORT
没法用,再者作者调试更快,别人要去重新理解你的 ...

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

使用道具 举报

 楼主| 发表于 2014-1-9 08:37:06 | 显示全部楼层
求修改某段连续编号的LISP代码-编程申请-CAD论坛-明经CAD社区-编程技术,程序,用户 - Powered by Discuz!
http://bbs.mjtd.com/forum.php?mo ... mp;page=1#pid624386
在这个网址求到了一个符合我要求的代码,就不麻烦您了!谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-27 00:13 , Processed in 0.450766 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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