找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5351|回复: 41

[LISP程序]:编辑图块的程序

[复制链接]
发表于 2002-5-1 07:40:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
晓东:
    能否给我在图块内编辑图块的程序(记得用过此功能可现在就是找不到它)要求:1) 平台acadr14
                    2) 修改单一图块后全图同名图块同时更改
                    3)图块插入点不变,属性不变。
                    4) 块内尺寸属性不变
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-1 07:44:08 | 显示全部楼层

Re: [LISP程序]:编辑图块的程序

最初由 zhjy 发布
[B]晓东:
    能否给我在图块内编辑图块的程序(记得用过此功能可现在就是找不到它)要求:1) 平台acadr14
                    2) 修改单一图块后全图同名图块同时更改
                    3)图块插入点不变,属性... [/B]


你在哪里编辑图块? 是在外面编辑好,让这个图里面的所有同名的块更新?

举个例子,详细说说吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-1 08:02:56 | 显示全部楼层

不好意思,我插一句

有没有这样一个工具,能将图中的图块替换的工具,文字替换有FIND工具。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-5-1 09:49:19 | 显示全部楼层
我贴一个图块替换的程序,我自己写来一级钢改二级钢的。

  1. (defun c:Cb(/ cn oldb newb len se1 e0 e1)
  2.   (command "color" "")
  3.   (setvar "unitmode" 0)
  4.   (princ "\n选择块实体:")
  5.   (setq se1 (ssget '((0 . "INSERT"))))
  6.   (if se1
  7.     (progn
  8.       (setq bn (getstring "\n批量替换*/<新块名:>"))
  9.       (cond
  10.         ((= bn "*")
  11.          (setq oldb (strcase (getstring "\n旧块名:"))
  12.                newb (strcase (getstring "\n新块名:"))
  13.                len (sslength se1)
  14.          )
  15.          (while (> len 0)
  16.            (setq e0 (ssname se1 0)
  17.                  e1 (entget e0)
  18.            )
  19.            (setq e1 (subst (cons 2 newb) (cons 2 oldb) e1))
  20.            (entmod e1)
  21.            (entupd e0)
  22.            (ssdel e0 se1)
  23.            (if se1 (setq len (sslength se1)))
  24.          )
  25.         )
  26.         ((or (= bn nil)(= bn "")) (princ "\n无块名。"))
  27.         (t
  28.          (setq len(sslength se1))
  29.          (while (> len 0)
  30.            (setq e0 (ssname se1 0)
  31.                  e1 (entget e0)
  32.            )
  33.            (setq e1 (subst (cons 2 bn) (assoc 2 e1) e1))
  34.            (entmod e1)
  35.            (entupd e0)
  36.            (ssdel e0 se1)
  37.            (if se1 (setq len (sslength se1)))
  38.           )
  39.         )
  40.       )
  41.     )
  42.   )
  43.   (princ)
  44. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-1 10:28:04 | 显示全部楼层
图块编辑工具 N改块/X左右镜相/Y前后镜相/Z值/V新尺寸/S放缩
http://www.xdcad.net/forum/showthread.php?s=&threadid=4905
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-1 11:25:43 | 显示全部楼层

是在图块状态下编辑图块

是在图块状态下编辑图块,不是图块在块外面重定义替换。
比如我常在块中插块,嵌套进行,若炸掉块有时很难重定义块,且同一张图中的块中块无法替换。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-1 11:28:31 | 显示全部楼层

Re: 是在图块状态下编辑图块

最初由 zhjy 发布
[B]是在图块状态下编辑图块,不是图块在块外面重定义替换。
比如我常在块中插块,嵌套进行,若炸掉块有时很难重定义块,且同一张图中的块中块无法替换。 [/B]


详细说说,你都怎么编辑,举个实例吧,要编辑些什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-5-1 11:42:38 | 显示全部楼层
以下操作均不需要炸开块:
块中添加实体
http://www.xdcad.net/forum/showthread.php?s=&threadid=4567
删除/修改子实体
http://www.xdcad.net/forum/showthread.php?s=&threadid=3525
还有直接改块中文字的

以上程序已经包括在【晓东工具箱】 Public Beta 0.1中。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-1 12:03:53 | 显示全部楼层
可以块中加块吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2002-5-1 12:52:39 | 显示全部楼层
可以,添加的是选择集(包括自己往自己里面加)^_^
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-2 00:47:11 | 显示全部楼层

住宅按单元做块插入组合成整座住宅平立面

我常把住宅按单元做块插入组合成整座住宅平立面,用外索引改变,常把不该改变的图改变了,因此常用图块插入,这样整个工程设计图很直观,避免混乱。住宅平立面图块内常有门窗或洁具之类的块需要替换。若用图块重定义必须copy出块,炸开后编辑再定义很麻烦。另能否编个图块点取替换的lsp程序,上述程序最好能在acadr14中加载。谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-2 01:05:08 | 显示全部楼层

Re: 住宅按单元做块插入组合成整座住宅平立面

最初由 zhjy 发布
[B]我常把住宅按单元做块插入组合成整座住宅平立面,用外索引改变,常把不该改变的图改变了,因此常用图块插入,这样整个工程设计图很直观,避免混乱。住宅平立面图块内常有门窗或洁具之类的块需要替换。若用图块重定义?.. [/B]


“晓东工具箱”可以用在R14下面的。

你说的块替换是:

把选择的图块用指定的块名替换?(这个块已经是图中的),还是弹出个文件选取对话框选取外部的DWG文件替换?

你详细说说吧,你的思路和具体的过程。关键是这个块在哪里?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-2 11:56:52 | 显示全部楼层

把xref外引功能改为图内单元块修改

1)把住宅按单元做块插入组合成整座住宅-形成第一次块既平面图由若干块组成。{我常把单元做块插在平面图中,定义外框,在平面图外(同一张图) 修改单元块后重定义修改,对于大面积单元相近的住宅来说画图速度会提高很多}
2)单元中常有系统块(如门窗块)替换或插入块替换
3)具体说:就是把xref外引功能改为图内单元块修改
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-2 12:02:17 | 显示全部楼层
最初由 ll_j 发布
[B]我贴一个图块替换的程序,我自己写来一级钢改二级钢的。
[code]
(defun c:Cb(/ cn oldb newb len se1 e0 e1)
  (command "color" "")
  (setvar "unitmode" 0)
  (princ "\n选择块实体:")
  (setq se1 (ssget... [/B]
:5 :5 能不能把填图块改为点取图块呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-5-3 01:45:19 | 显示全部楼层
我改了一下,请试试:

  1. (defun c:CB(/ cn oldb newb len se1 e0 e1 bn b0)
  2.   (command "color" "")
  3.   (setvar "unitmode" 0)
  4.   (princ "\n选择块实体:")
  5.   (setq se1 (ssget '((0 . "INSERT"))))
  6.   (if se1
  7.     (progn
  8.       (setq bn (getstring "\n批量替换*/<新块名>(回车拾取样块):"))
  9.       (cond
  10.         ((= bn "*")
  11.          (setq oldb (strcase (getstring "\n旧块名:"))
  12.                newb (strcase (getstring "\n新块名:"))
  13.                len (sslength se1)
  14.          )
  15.          (while (> len 0)
  16.            (setq e0 (ssname se1 0)
  17.                  e1 (entget e0)
  18.            )
  19.            (setq e1 (subst (cons 2 newb) (cons 2 oldb) e1))
  20.            (entmod e1)
  21.            (entupd e0)
  22.            (ssdel e0 se1)
  23.            (if se1 (setq len (sslength se1)))
  24.          )
  25.         )
  26.         ((= bn "")
  27.          (setq b0 nil)
  28.          (while (= b0 nil)
  29.            (if b0
  30.              (if (/= (setq b0 (assoc 0 (entget b0))) "INSERT")
  31.                (setq b0 (car (entsel "\n拾取样块:")))
  32.                (setq b0 nil)
  33.              )
  34.              (setq b0 (car (entsel "\n拾取样块:")))
  35.            )
  36.          )
  37.          (setq bn (cdr (assoc 2 (entget b0))))
  38.         )
  39.         (t nil)
  40.       )
  41.       (setq len (sslength se1))
  42.       (while (> len 0)
  43.         (setq e0 (ssname se1 0)
  44.               e1 (entget e0)
  45.         )
  46.         (setq e1 (subst (cons 2 bn) (assoc 2 e1) e1))
  47.         (entmod e1)
  48.         (entupd e0)
  49.         (ssdel e0 se1)
  50.         (if se1
  51.           (setq len (sslength se1))
  52.         )
  53.       )
  54.     )
  55.   )
  56.   (princ)
  57. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-19 18:25 , Processed in 0.221561 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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