数字连续拷贝加一
<P>谢谢了,还可以啊</P> 写的思路不错啊!值得学习 <p>但是没有出现在我想要点选的位置  我是个初学者</p><p>帮我改好后发到我的邮箱  <a href="mailto:flfcegu168@126.com">flfcegu168@126.com</a></p><p>先谢了  楼主</p> <p>原理是第一次选择文字(只能为数字),然后在新点取位置拷贝该文字再修改加一位,它是以第一位为基准,连续点击新位置得到连续加一的数并无新意,只是觉得用到时可以省点力。</p> <p>我也发一个吧,可以设置步长(gf)</p><p>而且可以提出前缀,例如你选择的是H3,结果就是H4</p><p>(defun c:gf()<br/>(setq bc (getint "\n 请输入步长:"))<br/>)</p><p><br/>(defun c:saa()<br/>(prompt "\n 设置步长命令为:gf,初始步长为1")<br/>(prompt "\n 请选择不需要更改的实体:")<br/>(if (= bc nil)<br/>(setq bc 1)<br/>)<br/>(setq ddjjqq (ssget))<br/>(setq entt  (entsel "\n 请选择一个文字:"))<br/>(setq ent (car entt))<br/>;(setq pt1 (cadr entt))<br/>(redraw ent 3)<br/>(setq dxf (entget ent))          ;联合列表<br/>(setq wenzizu (assoc 1 dxf))     ;点对列表<br/>(setq wenzi (cdr wenzizu))       ;文字</p><p>(setq wenzilen (strlen wenzi))<br/>(setq fanyihou (vl-string-translate "1234567890" "##########" wenzi))  ;翻译字符</p><p>(setq weizhi (vl-string-search "#" fanyihou))  ;找出#的位置</p><p>(setq qianzhui (substr wenzi 1 weizhi))   ;取出前缀<br/>(setq shuzi (substr wenzi (+ weizhi 1)))   ;取出字符串形式的数字<br/>(setq shishu (atoi shuzi))   ;把数字改为实数 </p><p><br/>(setq pt1 (getpoint "\n 请选择一个点:"))<br/>(setq pt2 (getpoint pt1 "\n 请选择第二点:"))<br/>(setq n 0)</p><p>(while pt2</p><p>(setq lll (substr wenzi 1 1))  ;判断第一个字符是什么<br/>;(setq llll (substr wenzi 4 1))  ;判断第四个字符是什么</p><p>(cond </p><p></p><p>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>( (= lll "<")                                           ;<br/>(progn                                                  ;<br/>(setq b (+ shishu bc n))                                ;<br/>(setq c (itoa b))                                       ;<br/>                                                        ;<br/>(setq d (strcat qianzhui c ">"))                        ;<br/>                                                        ;<br/>(setq e (cons 1 d))                                     ;<br/>(command "copy" ddjjqq "" pt1 pt2)            <br/>(command "copy" ent "" pt1 pt2) <br/>(setq ent1 (entget (entlast)))                          ;    ;此处为一个判断<br/>(setq txtzh1 (assoc 1 ent1))                            ;<br/>(setq ent1 (subst e txtzh1 ent1))                       ;<br/>(entmod ent1)                                           ;<br/>(princ)                                                 ;<br/>)  ;end progn                                           ;<br/>)  ;end first                                           ;<br/>                                                        ;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><br/>                                                             ;如果要加判断的话,请选择这里</p><p></p><p>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>(t                                                      ;<br/>(progn                                                  ;<br/>(setq b (+ shishu bc n))                                ;<br/>(setq c (itoa b))                                       ;<br/>(setq d (strcat qianzhui c))                            ;<br/>(setq e (cons 1 d))                                     ;<br/>(command "copy" ddjjqq "" pt1 pt2)  <br/>(command "copy" ent "" pt1 pt2)                     ;    ;此处为第二个判断<br/>(setq ent1 (entget (entlast)))                          ;<br/>(setq txtzh1 (assoc 1 ent1))                            ;<br/>(setq ent1 (subst e txtzh1 ent1))                       ;<br/>(entmod ent1)                                           ;<br/>(princ)                                                 ;<br/>)                                                       ;<br/>)                                                       ;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p></p><p><br/>)  ;end cond</p><p></p><p><br/>(setq n (+ bc n))<br/>(setq pt2 (getpoint pt1 "\n 请选择第二点:"))     ;pt1决定有没有显示线</p><p>)    ;end while<br/>)    ;end defun</p><p>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>;;;;;;;;;;                   以下为输入单个字的命令                    ;;;;;;;;;;;;;;;;</p><p><br/>(defun c:sa()</p><p>(prompt "\n 设置步长命令为:gf,初始步长为1")<br/>(if (= bc nil)<br/>(setq bc 1)<br/>)</p><p>(setq enty (entsel "\n 请选择一个文字:"))<br/>(setq ent (car enty))<br/>;(setq pt1 (cadr enty))</p><p>(redraw ent 3)<br/>(setq dxf (entget ent))          ;联合列表<br/>(setq wenzizu (assoc 1 dxf))     ;点对列表<br/>(setq wenzi (cdr wenzizu))       ;文字</p><p>(setq wenzilen (strlen wenzi))<br/>(setq fanyihou (vl-string-translate "1234567890" "##########" wenzi))  ;翻译字符</p><p>(setq weizhi (vl-string-search "#" fanyihou))  ;找出#的位置</p><p>(setq qianzhui (substr wenzi 1 weizhi))   ;取出前缀<br/>(setq shuzi (substr wenzi (+ weizhi 1)))   ;取出字符串形式的数字<br/>(setq shishu (atoi shuzi))   ;把数字改为实数 </p><p><br/>(setq pt1 (getpoint "\n 请选择一个点:"))<br/>(setq pt2 (getpoint pt1 "\n 请选择第二点:"))<br/>(setq n 0)</p><p>(while pt2</p><p>(setq lll (substr wenzi 1 1))  ;判断第一个字符是什么</p><p>;(setq llll (substr wenzi 4 1))  ;判断第四个字符是什么<br/>(cond </p><p></p><p>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>( (= lll "<")                                           ;<br/>(progn                                                  ;<br/>(setq b (+ shishu bc n))                                ;<br/>(setq c (itoa b))                                       ;<br/>                                                        ;<br/>(setq d (strcat qianzhui c ">"))                        ;<br/>                                                        ;<br/>(setq e (cons 1 d))                                     ;<br/>(command "copy"  ent "" pt1 pt2)                        ;<br/>(setq ent1 (entget (entlast)))                          ;    ;此处为一个判断<br/>(setq txtzh1 (assoc 1 ent1))                            ;<br/>(setq ent1 (subst e txtzh1 ent1))                       ;<br/>(entmod ent1)                                           ;<br/>(princ)                                                 ;<br/>)  ;end progn                                           ;<br/>)  ;end first                                           ;<br/>                                                        ;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p><br/>                                                             ;如果要加判断的话,请选择这里</p><p></p><p>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>(t                                                      ;<br/>(progn                                                  ;<br/>(setq b (+ shishu bc n))                                ;<br/>(setq c (itoa b))                                       ;<br/>(setq d (strcat qianzhui c))                            ;<br/>(setq e (cons 1 d))                                     ;<br/>(command "copy"  ent "" pt1 pt2)                      ;    ;此处为第二个判断<br/>(setq ent1 (entget (entlast)))                          ;<br/>(setq txtzh1 (assoc 1 ent1))                            ;<br/>(setq ent1 (subst e txtzh1 ent1))                       ;<br/>(entmod ent1)                                           ;<br/>(princ)                                                 ;<br/>)                                                       ;<br/>)                                                       ;<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</p><p></p><p><br/>)  ;end cond</p><p></p><p><br/>(setq n (+ bc n))<br/>(setq pt2 (getpoint pt1 "\n 请选择第二点:"))     ;pt1决定有没有显示线</p><p>)    ;end while<br/>(princ)<br/>)    ;end defun</p><p></p><p><br/>;;;;;;(wcmatch "SHZ1G" "**")  可以找到是否只有一个数字</p> 博超免费工具里有,可以加数字和字母,还可以设置步长 <p>其实我也有加字母的,用字母的ascii码就可以了</p> <p>其实我也有加字母的,用字母的ascii码就可以了</p> <p>写得不错增加思维</p>
		页: 
[1] 
2