明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3124|回复: 12

数字连续拷贝加一

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

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 金钱 +10 收起 理由
mccad + 1 + 10 【好评】好程序

查看全部评分

发表于 2006-9-23 22:51:00 | 显示全部楼层

谢谢了,还可以啊

发表于 2006-10-3 09:47:00 | 显示全部楼层
写的思路不错啊!值得学习
发表于 2006-12-31 19:32:00 | 显示全部楼层

但是没有出现在我想要点选的位置  我是个初学者

帮我改好后发到我的邮箱  flfcegu168@126.com

先谢了  楼主

 楼主| 发表于 2007-1-1 17:39:00 | 显示全部楼层

原理是第一次选择文字(只能为数字),然后在新点取位置拷贝该文字再修改加一位,它是以第一位为基准,连续点击新位置得到连续加一的数并无新意,只是觉得用到时可以省点力。

发表于 2007-1-2 10:18:00 | 显示全部楼层

我也发一个吧,可以设置步长(gf)

而且可以提出前缀,例如你选择的是H3,结果就是H4

(defun c:gf()
(setq bc (getint "\n 请输入步长:"))
)


(defun c:saa()
(prompt "\n 设置步长命令为:gf,初始步长为1")
(prompt "\n 请选择不需要更改的实体:")
(if (= bc nil)
(setq bc 1)
)
(setq ddjjqq (ssget))
(setq entt  (entsel "\n 请选择一个文字:"))
(setq ent (car entt))
;(setq pt1 (cadr entt))
(redraw ent 3)
(setq dxf (entget ent))          ;联合列表
(setq wenzizu (assoc 1 dxf))     ;点对列表
(setq wenzi (cdr wenzizu))       ;文字

(setq wenzilen (strlen wenzi))
(setq fanyihou (vl-string-translate "1234567890" "##########" wenzi))  ;翻译字符

(setq weizhi (vl-string-search "#" fanyihou))  ;找出#的位置

(setq qianzhui (substr wenzi 1 weizhi))   ;取出前缀
(setq shuzi (substr wenzi (+ weizhi 1)))   ;取出字符串形式的数字
(setq shishu (atoi shuzi))   ;把数字改为实数


(setq pt1 (getpoint "\n 请选择一个点:"))
(setq pt2 (getpoint pt1 "\n 请选择第二点:"))
(setq n 0)

(while pt2

(setq lll (substr wenzi 1 1))  ;判断第一个字符是什么
;(setq llll (substr wenzi 4 1))  ;判断第四个字符是什么

(cond

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( (= lll "<")                                           ;
(progn                                                  ;
(setq b (+ shishu bc n))                                ;
(setq c (itoa b))                                       ;
                                                        ;
(setq d (strcat qianzhui c ">"))                        ;
                                                        ;
(setq e (cons 1 d))                                     ;
(command "copy" ddjjqq "" pt1 pt2)           
(command "copy" ent "" pt1 pt2)
(setq ent1 (entget (entlast)))                          ;    ;此处为一个判断
(setq txtzh1 (assoc 1 ent1))                            ;
(setq ent1 (subst e txtzh1 ent1))                       ;
(entmod ent1)                                           ;
(princ)                                                 ;
)  ;end progn                                           ;
)  ;end first                                           ;
                                                        ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


                                                             ;如果要加判断的话,请选择这里

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(t                                                      ;
(progn                                                  ;
(setq b (+ shishu bc n))                                ;
(setq c (itoa b))                                       ;
(setq d (strcat qianzhui c))                            ;
(setq e (cons 1 d))                                     ;
(command "copy" ddjjqq "" pt1 pt2) 
(command "copy" ent "" pt1 pt2)                     ;    ;此处为第二个判断
(setq ent1 (entget (entlast)))                          ;
(setq txtzh1 (assoc 1 ent1))                            ;
(setq ent1 (subst e txtzh1 ent1))                       ;
(entmod ent1)                                           ;
(princ)                                                 ;
)                                                       ;
)                                                       ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


)  ;end cond


(setq n (+ bc n))
(setq pt2 (getpoint pt1 "\n 请选择第二点:"))     ;pt1决定有没有显示线

)    ;end while
)    ;end defun

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;                   以下为输入单个字的命令                    ;;;;;;;;;;;;;;;;


(defun c:sa()

(prompt "\n 设置步长命令为:gf,初始步长为1")
(if (= bc nil)
(setq bc 1)
)

(setq enty (entsel "\n 请选择一个文字:"))
(setq ent (car enty))
;(setq pt1 (cadr enty))

(redraw ent 3)
(setq dxf (entget ent))          ;联合列表
(setq wenzizu (assoc 1 dxf))     ;点对列表
(setq wenzi (cdr wenzizu))       ;文字

(setq wenzilen (strlen wenzi))
(setq fanyihou (vl-string-translate "1234567890" "##########" wenzi))  ;翻译字符

(setq weizhi (vl-string-search "#" fanyihou))  ;找出#的位置

(setq qianzhui (substr wenzi 1 weizhi))   ;取出前缀
(setq shuzi (substr wenzi (+ weizhi 1)))   ;取出字符串形式的数字
(setq shishu (atoi shuzi))   ;把数字改为实数


(setq pt1 (getpoint "\n 请选择一个点:"))
(setq pt2 (getpoint pt1 "\n 请选择第二点:"))
(setq n 0)

(while pt2

(setq lll (substr wenzi 1 1))  ;判断第一个字符是什么

;(setq llll (substr wenzi 4 1))  ;判断第四个字符是什么
(cond

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
( (= lll "<")                                           ;
(progn                                                  ;
(setq b (+ shishu bc n))                                ;
(setq c (itoa b))                                       ;
                                                        ;
(setq d (strcat qianzhui c ">"))                        ;
                                                        ;
(setq e (cons 1 d))                                     ;
(command "copy"  ent "" pt1 pt2)                        ;
(setq ent1 (entget (entlast)))                          ;    ;此处为一个判断
(setq txtzh1 (assoc 1 ent1))                            ;
(setq ent1 (subst e txtzh1 ent1))                       ;
(entmod ent1)                                           ;
(princ)                                                 ;
)  ;end progn                                           ;
)  ;end first                                           ;
                                                        ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


                                                             ;如果要加判断的话,请选择这里

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(t                                                      ;
(progn                                                  ;
(setq b (+ shishu bc n))                                ;
(setq c (itoa b))                                       ;
(setq d (strcat qianzhui c))                            ;
(setq e (cons 1 d))                                     ;
(command "copy"  ent "" pt1 pt2)                      ;    ;此处为第二个判断
(setq ent1 (entget (entlast)))                          ;
(setq txtzh1 (assoc 1 ent1))                            ;
(setq ent1 (subst e txtzh1 ent1))                       ;
(entmod ent1)                                           ;
(princ)                                                 ;
)                                                       ;
)                                                       ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


)  ;end cond


(setq n (+ bc n))
(setq pt2 (getpoint pt1 "\n 请选择第二点:"))     ;pt1决定有没有显示线

)    ;end while
(princ)
)    ;end defun


;;;;;;(wcmatch "SHZ1G" "*[1234567890]*")  可以找到是否只有一个数字

评分

参与人数 1明经币 +1 金钱 +10 收起 理由
mccad + 1 + 10 【好评】好程序

查看全部评分

发表于 2007-1-4 19:18:00 | 显示全部楼层
博超免费工具里有,可以加数字和字母,还可以设置步长
发表于 2007-1-4 20:34:00 | 显示全部楼层

其实我也有加字母的,用字母的ascii码就可以了

发表于 2007-1-4 20:35:00 | 显示全部楼层

其实我也有加字母的,用字母的ascii码就可以了

发表于 2007-1-6 00:07:00 | 显示全部楼层

写得不错增加思维

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

本版积分规则

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

GMT+8, 2025-6-4 02:31 , Processed in 0.213532 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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