明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4218|回复: 15

块替换问题

  [复制链接]
发表于 2005-7-5 20:20:00 | 显示全部楼层 |阅读模式
meflying 请问这个功能能实现吗?
(我须要一个能一次性替换我所框选的范围内的某个块。比如我要一次性的用块2替换我所框选的范围内的所有块1,而其它地方的块1保持不变 )
发表于 2005-7-6 08:44:00 | 显示全部楼层
 楼主| 发表于 2005-7-8 19:29:00 | 显示全部楼层
不对你是程序我用过了望你那程序是替换框选的所有块
发表于 2005-7-9 09:23:00 | 显示全部楼层
  1. (defun C:blkrp ( / ss BlkName blkname2 ents i)
  2.    (setvar "osmode" 0)
  3.    (princ "\n请选择作为源块的图块:")
  4.    (setq ss (ssget (list (cons 0 "INSERT"))))
  5.    (setq BlkName (cdr (assoc 2 (entget (ssname ss 0)))))
  6.    (setq blkname2 (getstring "输入要被替换的块名:"))
  7.    (princ "\n请选择将替换的图块:")
  8.    (setq ss (ssget (list (cons 0 "INSERT") (cons 2 blkname2)))
  9.    (if ss
  10.        (progn
  11.            (setq i 0)
  12.            (repeat (sslength ss)
  13.   (setq ents (entget (ssname ss i)))
  14.   (setq ents (subst (cons 2 BlkName) (assoc 2 ents) ents))
  15.   (entmod ents)
  16.   (setq i (1+ i))
  17.            )
  18.        )
  19.    )
  20.    (princ)
  21. )
 楼主| 发表于 2005-7-9 18:28:00 | 显示全部楼层
好像不能用呀
发表于 2005-7-9 20:06:00 | 显示全部楼层
括号的顺序有点小问题,稍微调整一下就可以用了
 楼主| 发表于 2005-7-10 19:04:00 | 显示全部楼层
谢了
 楼主| 发表于 2005-7-12 22:31:00 | 显示全部楼层

那不对呀我看书改了改还是不知那错了呀

发表于 2005-7-13 08:45:00 | 显示全部楼层

不好意思,这句丢了个括号(下面的已经加上了)

(setq ss (ssget (list (cons 0 "INSERT") (cons 2 blkname2))))

发表于 2005-7-13 13:17:00 | 显示全部楼层
  1. (load "xyp_lib")
  2. ;|加载通用函数
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. 通用函数下载地址:
  11. http://bbs.mjtd.com/forum.php?mod=viewthread&tid=37554|;
  12. ;;-----------------------------------------------------------------------------
  13. ;;;新旧块替换
  14. (defun c:test (/ e e-new name new ss i s1 pt1)
  15.   (CMDLA0)
  16.   (setq ss (ssget '((0 . "INSERT") (2 . "旧块名")));根据实际修改"旧块名"
  17. i  -1
  18.   )
  19.   (if ss
  20.     (while (setq s1 (ssname ss (setq i (1+ i))))
  21.       (sub_upd s1 2 "新块名");根据实际修改"新块名"
  22.     )
  23.   )
  24.   (CMDLA1)
  25. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-23 19:39 , Processed in 0.210788 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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