明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: yjr111

等答案无聊写一个图块替换

  [复制链接]
发表于 2012-6-15 16:29 | 显示全部楼层
图块替换需要那么长的代码么? 我这里有个简单点的,能保留原有块的大小、方向,只是属性块的属性没有考虑。

  1. (defun rpblock(ename blockname / ell)
  2.    (setq ell (entget ename))
  3.    (setq ell (subst (cons 2 blockname) (assoc 2 ell) ell))
  4.    (entmod ell)
  5.    (entupd ename)
  6. )
  7. (defun c:kth( / ss i tename blockname ename)
  8.     (setq ss    (ssget '((0 . "INSERT")))
  9.           i     0
  10.         );setq
  11.         (if ss
  12.                 (progn
  13.                         (princ "\n请选择块:")
  14.                         (while (/= "INSERT" (cdr (assoc 0 (entget (setq tename (car (entsel)))))))
  15.                                    (princ "\n请选择块:")
  16.                         )
  17.                         (setq blockname (cdr (assoc 2 (entget tename))))
  18.                         (repeat (sslength ss)
  19.                                         (setq ename (ssname ss i) i (+ 1 i))
  20.                                         (rpblock ename blockname)
  21.                         )
  22.                 )
  23.         )
  24.         (princ)
  25. )

点评

cad官方一个图层删除就写了几百行代码,我写不会超过10行就可以了  发表于 2012-6-15 17:21
 楼主| 发表于 2012-6-15 17:23 | 显示全部楼层
vormittag 发表于 2012-6-15 16:29
图块替换需要那么长的代码么? 我这里有个简单点的,能保留原有块的大小、方向,只是属性块的属性没有考虑。

用下面附件试试看有没有区别?

本帖子中包含更多资源

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

x

点评

貌似没有什么明显的区别。btw: 我不认为你上面类比有什么可比性。我只是认为就一个单独的块替换操作而言,你的核心代码实现方式太繁琐了。  发表于 2012-6-19 10:13
发表于 2012-6-15 23:52 | 显示全部楼层
yjr111 发表于 2012-6-15 17:23
用下面附件试试看有没有区别?

一般来说,一个程序的核心处理代码,都不会很长!但是为了能处理所有能遇到的各种情况,错误处理代码要比核心处理代码长很多,甚至数十倍都不止!程序设计的难点也在于此!
回复 支持 1 反对 0

使用道具 举报

发表于 2012-6-16 07:18 | 显示全部楼层
yjr111 发表于 2012-2-21 17:57
看来这个需要的人还是蛮多的,现在把源码传上来吧

感谢分享,下载学习了
发表于 2012-12-2 17:05 | 显示全部楼层
感谢版主大师的分享
发表于 2013-6-15 11:26 | 显示全部楼层
yjr111 发表于 2012-2-22 16:45
highflybird、ZZXXQQ、G版、飞版、C版、曹版等等才是大师,我仅仅是玩玩花拳绣腿而已,so,别叫我大师了[em ...

你现在已经很厉害了,支持严老大!哈哈
发表于 2013-6-15 11:32 | 显示全部楼层
Gu_xl 发表于 2012-6-19 18:52
一般来说,一个程序的核心处理代码,都不会很长!但是为了能处理所有能遇到的各种情况,错误处理代码要比 ...

G版点评说的很对
发表于 2014-9-2 02:42 | 显示全部楼层
06cad,全图替换有问题,不是出错,而是点全图替换的时候闪的厉害
发表于 2018-6-13 11:28 | 显示全部楼层
如果替换后的块能保持原有块的方向和角度就更好了
发表于 2018-12-20 14:06 | 显示全部楼层
要是能把DCL归并到LISP程序里就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 13:57 , Processed in 0.308164 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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