明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 风蓝云翼

多文本阵列+数字递增。

    [复制链接]
发表于 2012-11-21 18:01:35 | 显示全部楼层
试了下,不好用,因为老提示错
发表于 2012-11-21 20:56:15 | 显示全部楼层
很早以前做的程序了,没有说明文字,大家将就用吧
gf可以改变增加的数值,mcc是命令
可以多选数字,例如gf步长为1,你选择了1,2,3这3个文字,输入基点,然后输入第2点的时候,就能复制出2,3,4………………


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


(defun c:mcc()

(if (= bc nil)
(setq bc 1)
)

(setq entt  (ssget '((0 . "*TEXT"))))

(setq len (sslength entt))
(setq n 0 nn 0 nnn 0)
(setq pt1 (getpoint "\n 请选择一个点:"))
(setq pt2 (acet-ss-drag-move entt pt1 "\n选择第二点:" "highlight" 1))
(setq ssxin (ssadd))


(while pt2
(setq n 0)

(repeat len
(setq ent (ssname entt n))
(command "copy" ent "" pt1 pt2)
(setq entxin (entlast))

(setq ssxin (ssadd entxin ssxin))
(setq n (1+ n))
)



(repeat len

(setq ent1 (ssname ssxin nn))
(setq dxf1 (entget ent1))          ;联合列表
(setq wenzizu (assoc 1 dxf1))     ;点对列表
(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 lll (substr wenzi 1 1))  ;判断第一个字符是什么


(cond



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(
(= lll "<")                                           ;
(progn                                                  ;
(setq b (+ shishu bc nnn))                                ;
(setq c (itoa b))                                       ;
                                                        ;
(setq d (strcat qianzhui c ">"))                        ;
                                                        ;
(setq e (cons 1 d))  
                                   ;
(setq dxf1 (subst e wenzizu dxf1))                       ;
(entmod dxf1)                                           ;
(princ)                                                 ;
)  ;end progn                                           ;
)  ;end first                                           ;
                                                        ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


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



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(t                                                      ;
(progn                                                  ;
(setq b (+ shishu bc nnn))                                ;
(setq c (itoa b))                                       ;
(setq d (strcat qianzhui c))                            ;
(setq e (cons 1 d))
                                                        ;    ;此处为第二个判断                                                  ;
(setq dxf1 (subst e wenzizu dxf1))                       ;
(entmod dxf1)                                           ;
(princ)                                                 ;
)   ;end progn                                                    ;
)    ;end second                                                   ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;




)  ;end cond

(setq nn (+ 1 nn))



)    ;end repeat
(setq nnn (+ bc nnn))
(setq pt2 (acet-ss-drag-move entt pt1 "\n选择第二点:" "highlight" 1))
); end while

(setq ssxin nil)
)    ;end defun


发表于 2012-11-22 10:08:35 | 显示全部楼层
不错呀,路过顶一个!
发表于 2013-7-1 11:15:51 | 显示全部楼层
如果开源就更好了

点评

我这个是开源的http://bbs.mjtd.com/thread-101674-1-1.html  发表于 2013-7-1 12:06
发表于 2013-7-1 21:11:22 来自手机 | 显示全部楼层
据说比较好的办法是用正则表达式
发表于 2013-7-2 08:01:32 | 显示全部楼层
谢谢楼主代码分享!
发表于 2015-7-6 18:22:42 | 显示全部楼层
楼主高人大方!
发表于 2015-12-26 15:57:45 | 显示全部楼层
这个确实实用!
发表于 2015-12-26 18:55:31 | 显示全部楼层
谢谢…………
发表于 2016-5-22 15:34:47 | 显示全部楼层
只有更好,没有最好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-24 01:03 , Processed in 0.191304 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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