明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1494|回复: 1

一个用于图块置换的程序,但不知为什么有缺陷?

[复制链接]
发表于 2005-3-15 13:50:00 | 显示全部楼层 |阅读模式
下面是一个由我自己编的图块置换的程序,但是每次运行程序时,所要置换的图块总是没有完全置换完,要分好几次置换!请指教,谢谢! (defun c:th (/ database a c d e f g n da)
(setq database (entget (car(entsel "请选择要修改的图块!"))))
(PRINT (STRCAT "当前的图块是:" (cdr (assoc '2 database))))
(setq g (cdr (assoc '2 database))) (setq a (getstring (strcat "\n请输入修改后的图块名:<"(getvar "INSNAME") "> ")))
(COND
((/= A "") (setvar "INSNAME" a))
((= A "") (setq a (getvar "INSNAME")))
)
(setq c (getpoint "the first point:"))
(setq d (getcorner c "the second point:"))
(setq e (ssget "w" c d))
(setq n (sslength e))
(PRINT N) (setq f 0)
(repeat n
(setq da (entget (ssname e f))) (if
(= (cdr (assoc '2 da)) g)
(progn
(setq da (subst (cons 2 a) (assoc '2 da) da))
(entmod da))
(setq f (1+ f))
)
))
发表于 2005-3-15 13:59:00 | 显示全部楼层
(= (cdr (assoc '2 da)) g)这句不论是真还是假,都必须执行(setq f (1+ f)),所以(setq f (1+ f))必须放到if的外面
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 13:51 , Processed in 0.168366 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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