明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3259|回复: 4

[LISP]块替换源程序,但换完后块不在插入点上,帮改改

[复制链接]
发表于 2005-1-10 17:07:00 | 显示全部楼层 |阅读模式
(defun C:blkrp ()
(setvar "osmode" 0)
(princ "\n请选择作为源块的图块:")
(setq a1 (ssget (list (cons 0 "insert"))))
(setq stent (ssname a1 0))
(setq stent (entget stent))
(setq insname (assoc 2 stent))
(setq insname (cdr insname))
(princ insname)
(princ "\n请选择将替换的图块:")
(setq a (ssget (list (cons 0 "insert"))))
(if (/= a nil)
(progn
(setq n (sslength a))
(setq index 0)
(repeat n
(setq foent (ssname a index))
(setq ent1 (entget foent))
(setq index (+ index 1))
(setq inspt (assoc 10 ent1))
(setq inspt (list (nth 1 inspt) (nth 2 inspt)))
(setq insang1 (assoc 50 ent1))
(setq insang (cdr insang1))
(if (/= insang 0)
(setq insang (/ (* insang 180) pi))
)
(command "erase" foent "")
(command "insert" insname inspt 1 1 insang "")
)
)
)
(setvar "osmode" 687)
(princ)
)
发表于 2005-1-10 18:26:00 | 显示全部楼层
这样吧:
  1. (defun C:blkrp ( / ss BlkName 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.    (princ "\n请选择将替换的图块:")
  7.    (setq ss (ssget (list (cons 0 "INSERT"))))
  8.    (if ss
  9.        (progn
  10.            (setq i 0)
  11.            (repeat (sslength ss)
  12.   (setq ents (entget (ssname ss i)))
  13.   (setq ents (subst (cons 2 BlkName) (assoc 2 ents) ents))
  14.   (entmod ents)
  15.   (setq i (1+ i))
  16.            )
  17.        )
  18.    )
  19.    (princ)
  20. )
发表于 2005-7-1 23:32:00 | 显示全部楼层
多谢了
发表于 2005-7-3 11:49:00 | 显示全部楼层
不错!
发表于 2005-7-6 19:15:00 | 显示全部楼层
         帮忙写个能把图形中所有TEXT文本数据统计并以文本形式导出来!小弟在这里先谢谢给位了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 17:28 , Processed in 0.181069 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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