明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2029|回复: 4

如何用lisp实现块的批量替换

  [复制链接]
发表于 2012-11-3 17:39:09 | 显示全部楼层 |阅读模式
请高手指点!!
发表于 2012-11-3 19:55:57 | 显示全部楼层
;;--------------------------------------------------------------------
(defun C:RPB  (/ en obj obj1 ss cnt idx blknom)
  (setq en (car (entsel "\nSelect a source block: ")))
  (if en
    (progn
      (setq obj (vlax-ename->vla-object en))
      (VLA-HIGHLIGHT OBJ :VLAX-TRUE)
      (if (and (= (vla-get-objectname obj) "AcDbBlockReference")
               (not (vlax-property-available-p obj 'path)))
        (progn
          (setq blknom (vla-get-name obj))
          (princ "\nSelect the target blocks: ")
          (setq cnt 0)
          (while (setq ss (ssget))
            (VLA-HIGHLIGHT OBJ :VLAX-FALSE)
            (setq idx 0)
            (repeat (sslength ss)
              (setq obj1 (vlax-ename->vla-object (ssname ss idx)))
              (if (and (= (vla-get-objectname obj1) "AcDbBlockReference")
                       (not (vlax-property-available-p obj1 'path)))
                (progn
                  (vla-put-name obj1 blknom)
                  (setq cnt (1+ cnt))
                  ) ;progn
                ) ;endif
              (setq idx (1+ idx))
              ) ;repeat
            ) ;while
          (if (> cnt 0)
            (princ
              (strcat "\n" (itoa cnt) " blocks have been replaced!"))
            (princ "\nNone block found!")
            ) ;endif
          ) ;progn
        (princ "\nThat's NOT a block!")
        ) ;endif
      (vlax-release-object obj)
      (if obj1
        (vlax-release-object obj1))
      ) ;progn
    (princ "\nFunction has been cancelled!")
    ) ;endif
  (princ)
  )
发表于 2018-5-15 11:12:33 | 显示全部楼层
属性性块是否可以不改名呢?
发表于 2019-11-5 09:03:46 | 显示全部楼层
很好用,感谢分享
发表于 2020-2-15 21:18:47 | 显示全部楼层
好用,感谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-18 11:28 , Processed in 0.148682 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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