明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1553|回复: 4

[资源下载] 把此贴删除了

[复制链接]
发表于 2009-11-3 16:24:00 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-11-3 16:37:00 | 显示全部楼层

关注一下,也想知道。

发表于 2009-11-4 15:29:00 | 显示全部楼层
用autolisp编程可实现
发表于 2009-11-4 21:04:00 | 显示全部楼层

gf输入步长,像你的要求就要输入-300

然后用gg命令,选择你要减掉的数字就可以了

这个命令是我常用的命令,程序没有经过整理,不过还能用


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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;子程序  (中间有横杠,取后面的数字更改)

(defun ddjq()
(setq shuzi (substr wenzi (+ 2 gang)))
(setq shishu (atoi shuzi))   ;把数字改为实数
(setq qianzhui (substr wenzi 1 (+ 1 gang)))
(if (= lll "<")
(progn
(setq b (+ shishu bc nn))                               ;
(setq c (itoa b))                                       ;
(setq d (strcat qianzhui c ">"))                        ;
(setq e (cons 1 d))                                     ;
(setq ddd (subst e wenzizu ddd))                        ;
(entmod ddd)                                            ;
(princ)                                                 ;
)  ;end progn                                           ;
 
(progn
(setq b (+ shishu bc nn))                               ;
(setq c (itoa b))                                       ;
(setq d (strcat qianzhui c))                        ;
(setq e (cons 1 d))                                     ;
(setq ddd (subst e wenzizu ddd))                        ;
(entmod ddd)                                            ;
(princ)                                                 ;
)  ;end progn                                           ;


) ;end if
)  ;end defun

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun c:gg()
(prompt "\n 设置步长命令为:gf,初始步长为1")
(if (= bc nil)
(setq bc 1)
)
(setq a (ssget))
(setq len (sslength a))   ;取得对象的个数
(setq n 0)
(setq nn 0)
(command "undo" "begin")
(repeat len
(setq ent (ssname a n))    ;取得实体的名称
(setq ddd (entget ent))      ;得到实体的联合列表

(setq djq (cdr (assoc 0 ddd)))

(if (or (= djq "MTEXT") (= djq "TEXT"))

(dkdk)

)        ;end if

(setq n (+ 1 n))

)       ;end repeat

(setq nn (+ nn bc))
(command "undo" "end")
)


;;;子程序

(defun dkdk()
(setq wenzizu (assoc 1 ddd))         ;取出字的内容(群码为1)
(setq wenzi (cdr wenzizu))         ;文字
(setq gang (vl-string-search "-" wenzi))

(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))  ;判断第一个字符是什么

(if (= gang nil)
(progn


(cond

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


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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(t                                                      ;
(progn                                                  ;
(setq b (+ shishu bc nn))                               ;
(setq c (itoa b))                                       ;
(setq d (strcat qianzhui c))                            ;
(setq e (cons 1 d))                                     ;
(setq ddd (subst e wenzizu ddd))                        ;
(entmod ddd)                                            ;
(princ)                                                 ;
)    ;end progn                                         ;
)                                                       ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


)  ;end cond
)   ;end progn
(ddjq)
)   ;end if

)    ;end defun

发表于 2009-11-6 22:46:00 | 显示全部楼层
学习中
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 21:41 , Processed in 0.186739 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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