明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1144|回复: 5

[讨论] 按顺序批量替换块

[复制链接]
发表于 2015-10-30 16:30:59 | 显示全部楼层 |阅读模式
本帖最后由 myfrankie 于 2015-11-2 20:03 编辑

例如 源块A和目标块B  将块B替换为A 替换后保留A的大小和属性,但也要保留B的位置和方向。可以同时依次点源块 并依次替换目标块 谁能帮我弄一下。谢谢。在线等待

发表于 2015-10-31 16:04:28 | 显示全部楼层
本帖最后由 菜卷鱼 于 2015-10-31 16:15 编辑

有一个没按顺序的

  1. (defun osbe ( )
  2. (setq os-mode (getvar 'osmode))
  3. (setvar 'osmode 0)
  4. )
  5. (defun ose ( )
  6. (setvar 'osmode os-mode)
  7. )

  8. (vl-load-com)
  9. (defun c:hk ( / name i ar10 ar41  ar42 ar43 ar50 ssa ss info nar41 *error*)
  10. (defun *error* (s)
  11. (command "_.undo" "e")
  12. (setvar 'nomutt 0)
  13. (setvar 'cmdecho 1)
  14. )
  15. (princ "替换块")
  16. (if (/= namei nil)
  17. (mapcar 'princ (list "\n输入新的块名:<" namei ">"))
  18. (mapcar 'princ (list "\n输入新的块名:" ))
  19. )
  20. (setq name (getstring ))
  21. (if (or(= name "")(= name nil))(setq name namei)(setq namei name))

  22. (setq ss (ssget  '((0 . "insert"))))
  23. (setq i 0)
  24. (setvar "cmdecho" 0)
  25. (command "_.undo" "be")
  26. (osbe)
  27. (repeat (sslength ss)
  28. (setq ssa(ssname ss i))
  29. (setq info (entget ssa))
  30. (setq ar10 (cdr (assoc 10 info)))
  31. (setq ar41 (cdr (assoc 41 info)))
  32. (setq ar42 (cdr (assoc 42 info)))
  33. (setq ar43 (cdr (assoc 43 info)))
  34. (setq ar50 (cdr (assoc 50 info)))
  35. (setvar "attreq" 0)

  36. (if (OR(= name "C")(= name "c"))
  37. (progn
  38. (if (= i 0)
  39. (setq nar41(getreal "\n输入半径:<10>")))
  40. (if (= nar41 nil)(setq nar41 10))
  41. (progn (setvar 'nomutt 1)
  42. (command "circle" ar10 nar41)
  43. (setvar 'nomutt 0))
  44. )
  45. (progn
  46. (setq        mspace (vla-get-modelspace
  47.                  (vla-get-activedocument (vlax-get-acad-object))
  48.                  )
  49.         )
  50.   (setq 3dp (vlax-3D-point ar10))
  51. (vla-InsertBlock mspace 3dp name ar41 ar42 ar43 ar50)
  52. )
  53. )
  54. (entdel (ssname ss i))
  55. (setq i (1+ i))
  56. )  ;;;repeat
  57. (ose)
  58. (command "_.undo" "e")
  59. (princ (strcat "\n完成" (itoa (sslength ss)) "次替换"))
  60. (setvar "cmdecho" 1)
  61. (prin1)
  62. )
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2015-10-31 08:40:50 | 显示全部楼层
怎没高手解决?
发表于 2015-10-31 08:51:46 | 显示全部楼层
myfrankie 发表于 2015-10-31 08:40
怎没高手解决?

高手都好闲哟...
 楼主| 发表于 2015-11-3 10:56:07 | 显示全部楼层
高手都睡着了??
 楼主| 发表于 2015-11-4 17:21:54 | 显示全部楼层

高手都睡着了??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 06:13 , Processed in 0.145348 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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