找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: zhjy

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

[复制链接]
 楼主| 发表于 2002-5-3 09:58:17 | 显示全部楼层

我试了觉得不错

最初由 ll_j 发布
[B]我改了一下,请试试:
[code]
(defun c:CB(/ cn oldb newb len se1 e0 e1 bn b0)
  (command "color" "")
  (setvar "unitmode" 0)
  (princ "\n选择块实体:")
  (setq se1 (ssget '((0 . "INSERT"))))
  (i... [/B]

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

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

使用道具 举报

 楼主| 发表于 2002-5-4 11:13:27 | 显示全部楼层

望你的网站越办越好

我的工程搞好了,虽然没有找到我想要的图块编辑程序,但得到图块替换程序,工作效率当会提高很多,多谢大家了。特别是晓东老弟。望你的网站越办越好!另你的工具箱在我的机上无法安装成功,加载了你的函数,工具箱菜单仍不能用。是有点遗憾。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-4 11:19:16 | 显示全部楼层

Re: 望你的网站越办越好

最初由 zhjy 发布
[B]我的工程搞好了,虽然没有找到我想要的图块编辑程序,但得到图块替换程序,工作效率当会提高很多,多谢大家了。特别是晓东老弟。望你的网站越办越好!另你的工具箱在我的机上无法安装成功,加载了你的函数,工具箱菜... [/B]


常来:)

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

使用道具 举报

发表于 2002-5-4 21:39:52 | 显示全部楼层

我也有麻烦

晓东,我的问题和zhjy一样。昨天下载了beta0.1版,结果在天正3。52中加载了函数(菜单没有自动加载—是我写入acad.mnu中),结果仍无法使用。使用强行连接后,在r14中可以,在天正中不行!
结果只能在纯r14下绘制一个邮戳样板图贴了上来;)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-5 03:21:36 | 显示全部楼层
能不能这样写:
;;;; 图块刷子;;;;;
(defun c:cblk ( / el blkname ss en ent)
(princ "\n cblk=图块刷子------------------------lxx.xdapi.2002.5 ")
(setq el (xdrx_entsel "\n请点选参考块<回车-输入块名>:" 0 '((0 . "INSERT")) ))
(if el (setq blkname (cdr(assoc 2 (entget (car el)))))
       (setq blkname (getstring "\n块名为:"))
)
(princ "\n 选择要转变的块")
(setq nss (ssget '((0 . "INSERT"))) i 0)
(while (setq en (ssname nss i) ent (entget en))
(setq ent (subst (cons 2 blkname)(assoc 2 ent) ent) i (+ 1 i))
(entmod ent)(entupd en)
)
(princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-5 05:55:36 | 显示全部楼层
最初由 梦断江南 发布
[B]能不能这样写:
;;;; 图块刷子;;;;;
(defun c:cblk ( / el blkname ss en ent)
(princ "\n cblk=图块刷子------------------------lxx.xdapi.2002.5 ")
(setq el (xdrx_entsel "\n请点选参考块<回车-输入块?.. [/B]


我给你修改成API的写法,你体会体会API的结构化编程。


  1. [FONT=courier new]
  2. (defun c:cblk ()                       ; / el blkname ss en ent)
  3.   (princ "\n cb=图块刷子------------------------lxx.xdapi.2002.5 ")
  4.   (if (setq el (xdrx_entsel "\n请点选参考块<回车-输入块名>:" 0 '(
  5.                              (0 . "INSERT")
  6.                             )
  7.                )
  8.       )
  9.     (setq blkname (xdrx_getentdxf 2))
  10.     (setq blkname (getstring "\n块名为:"))
  11.   )
  12.   (prompt "\n 选择要转变的块")
  13.   (if (setq nss (ssget '((0 . "INSERT"))))
  14.     (progn
  15.       (xdrx_setsstodb nss 0)
  16.       (while (xdrx_getentdata 0)
  17.         (xdrx_entmod 2 blkname)
  18.       )
  19.     )
  20.   )
  21.   (princ)
  22. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-5 05:58:01 | 显示全部楼层
程序没有考虑 参考块是外部文件的情况,呵呵。那个来补充补充?应该不难的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-5-5 07:51:56 | 显示全部楼层
;;再来
  1. [FONT=century gothic]
  2. (defun c:cblk ( / el blkname ss en ent)
  3.   (princ "\n cblk=图块刷子------------------------lxx.xdapi.2002.5 ")
  4.   (intget "  eXit")
  5.   (setq el (xdrx_entsel "\n请点选参考块/eXit/回车输入块名:" 0 '( (0 . "INSERT"))))
  6.   (cond
  7.     ((eq el "eXit")(exit))
  8.     ((= (type el) 'LIST) (setq blkname (xdrx_getentdxf 2)))
  9.     ((or(eq el " ")(= nil eq))(setq blkname (getstring "\n块名为:")))
  10.   )
  11.   (prompt "\n 选择要转变的块")
  12.   (if (setq nss (ssget '((0 . "INSERT"))))
  13.     (progn
  14.       (xdrx_setsstodb nss 0)
  15.       (while (xdrx_getentdata 0)
  16.         (xdrx_entmod 2 blkname)
  17.       )
  18.     )
  19.   )
  20.   (princ)
  21. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2002-5-6 19:42:23 | 显示全部楼层
最初由 eachy 发布
能改匿名块吗?:1 :1 :1


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

使用道具 举报

发表于 2002-6-19 17:20:56 | 显示全部楼层
请问晓东:在中文操作系统和CAD2000下,不能安装您的工具,在日文操作和CAD2000也不能用,为什么我老解决不了这个安装问题呀??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-5-8 11:16:32 | 显示全部楼层
楼主,你写的程序很好啊,建议多发点这样的程序。以后我也努力发点这样的程序。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-20 07:17 , Processed in 0.426291 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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