找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 655|回复: 3

[编程申请]:麻烦写个块替换程序

[复制链接]

已领礼包: 5060个

财富等级: 富甲天下

发表于 2007-4-16 13:07:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
在网上找到个块替换程序,但是有缺陷的:


(defun c:ck()
  (princ "\n选者需要修改的对象:<块>")
  (setq ss (ssget))
  (setq en_new (entsel "\n改为对象<块>: "))
  (setq n 0)
  (repeat (sslength ss)
    (setq en_old (ssname ss n))
    (setq en_old_data (entget en_old))
    (if (= (cdr (assoc 0 en_old_data)) "INSERT")
      (progn
    (setq na_old (assoc 2 en_old_data))
    (setq en_new_data (entget (car en_new)))
    (setq na_new (assoc 2 en_new_data))
    (setq en_old_data (subst na_new na_old en_old_data))
    (entmod en_old_data)
    )
      )
    (setq n (+ n 1))
      )
  )

该程序不能替换有属性字的块,替换之后会丢掉属性字的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-4-16 13:28:21 | 显示全部楼层
(defun c:cheng_blth ( / ss bl blna i et xd)
        ;(chengs_getvar)
        ;(chengs_error)
        (princ "\n 选择需要替换的图块图元:")
        (setq ss (ssget (list '(0 . "INSERT"))))
        (princ "\n 选择替换后的图块图元:")
        (setq        bl (entsel  (list '(0 . "INSERT"))))
        (setq blna (cdr (assoc 2 (entget (car bl)))))

        (setq i 0)
        (while (setq et (ssname ss i))
                (setq i (1+ i))
                (chengs_change et 2 blna)
        );endwhile
        (princ " 修改ok!")
        ;(chengs_setvar)
        (princ)
);endfun c::cheng_blth

;;; 更新对象属性
(defun Chengs_change (ename assoc_num newdate / edate elist update)
        (if (listp ename)
                (setq elist (entget (car ename)))
                (setq elist (entget ename))
        )
        (if (= nil (numberp assoc_num))
                (exit)
        )
        (if (not (null newdate))
                (progn
                        (setq edate (assoc assoc_num elist))
                        (setq update (cons assoc_num newdate))
                        (if edate
                                (setq elist (subst
                                                                                        update
                                                                                        edate
                                                                                        elist
                                                                                )
                                )
                                (setq elist (append
                                                                                        elist
                                                                                        (list update)
                                                                                )
                                )
                        )
                        (entmod elist)
                )
        )
        ;(if (setq ename (car (reverse (cadddr ename)))) (entupd ename))

)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-4-16 14:30:16 | 显示全部楼层
在Express工具中有现成的块替换命令,不知是否合你用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2023-7-27 22:47:32 | 显示全部楼层
选择替换后的图块图元:; 错误: 参数类型错误: stringp ((0 . "INSERT"))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-24 04:59 , Processed in 0.357275 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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