明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2260|回复: 7

帮忙弄个以数字开头文本,开头数字统一加减某数的lsp

[复制链接]
发表于 2011-2-19 00:09 | 显示全部楼层 |阅读模式
1明经币
帮忙弄个以数字开头文本,开头数字统一加减某数的lsp
如1AT----2AT
谢谢

发表于 2011-2-19 09:54 | 显示全部楼层
(setq a "1AT"
       b (substr a 1 1)
       c (strcat (itoa (1+ (atoi b)))(substr a 2))
)

也可以考虑用 vl-string-subst 函数 .....
回复

使用道具 举报

发表于 2011-2-19 10:13 | 显示全部楼层
  1. (defun c:tt(/ ss add en txt enl num)
  2.   (while(not (setq add (getint "\n同一加减数值:"))))
  3.   (princ "\n选择文字:")
  4.   (while (setq ss (ssget '((-4 . "<or")(-4 . "<and")(0 . "text") (1 . "#*")(-4 . "and>")(-4 . "<and")(0 . "text") (1 . "-#*")(-4 . "and>")(-4 . "or>"))))
  5.   
  6.   (repeat (setq n (sslength ss))
  7.     (setq en (ssname ss (setq n (1- n))))
  8.     (setq txt (cdr (assoc 1 (setq enl (entget en)))))
  9.     (setq num (atoi txt)
  10.           txt (substr txt (1+ (strlen (itoa num))))
  11.           num (+ num add)
  12.           txt (strcat (itoa num) txt)
  13.           enl (subst (cons 1 txt) (assoc 1 enl) enl)
  14.           )
  15.     (entmod enl)
  16.   )
  17.     )
  18.   )
回复

使用道具 举报

发表于 2011-2-19 21:03 | 显示全部楼层
  1. ;第四行可以改成:
  2. (while (setq ss (ssget '((0 . "TEXT") (1 . "#*,-#*"))))
回复

使用道具 举报

发表于 2011-2-21 15:04 | 显示全部楼层
本帖最后由 xiaxiang 于 2011-2-21 15:08 编辑

花了很长时间揣摩楼主的用意。若是要像“1AT---->2AT"那么简单,就是Gu_xl版主的程序最好,简洁明了。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一。若是修改如原件号7或10-2,因加入或删除某件号而改变原件号成为10或10-5,可以用如下一段代码。

使用方法:
1.数字的增值分前后,增值可为正数负数和0。
2.有后数字的前数字是否要增值(n)y你回车前数不变,当你输入y前数字要加增值,如你后数字要求不变你把后数字增值输入为0
3.前数字后加.你输入y软件会在前数字后加. 如你要前后数字不变输入增值可为0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
二。若是技术要求,技术要求的序号后面必须加"."(大写字母状态下点),序号与技术要求在一起是一条文字,如“7.  本件按................”,可以用如下一段代码。它可自动的去区分识别是否是技术要求并可自动去加点。

使用方法同上。
希望对您有所帮助。


本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2011-2-22 12:20 | 显示全部楼层
本帖最后由 yinzhun22 于 2011-2-22 12:39 编辑

谢谢,各位帮忙,目前就要前面最简单的,能否帮忙加一个默认值1,省的每次都要输,如果有其他数字就再输入,不输入就默认1
其他的先下载,留以后需要再用……
回复

使用道具 举报

发表于 2011-2-22 17:03 | 显示全部楼层
  1. (defun c:tt(/ ss add en txt enl num)
  2.   (while(not (setq add (getint "\n同一加减数值:<1>"))))

默认为1,接受输入其他值
回复

使用道具 举报

发表于 2011-2-22 22:16 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2011-2-22 22:17 编辑

  1. (defun c:tt(/ ss add en txt enl num)
  2.   (setq add (getint "\n同一加减数值:<1>"))
  3.   (setq add (if add add 1))
  4. ……

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-18 11:47 , Processed in 0.199201 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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