找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 949|回复: 1

[LISP程序]:改变图块中的实体---工具集

[复制链接]
发表于 2002-12-28 19:18:43 | 显示全部楼层 |阅读模式

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

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

×

  1.   [FONT=courier new]
  2. ;;;--------------------------------------
  3. ;;;    变块中实体        ;;;;;;;;;;;;;  lxx v1.02
  4. ;;;--------------------------------------
  5. (princ "\n变块中实体v1.02---------lxx.2001.6")
  6. (defun cbe (cod key / nl)  
  7.   (while  (not(progn (setq en (nentsel)
  8.                        ent (car en)
  9.                        entl (entget ent '("*"))                     
  10.                      )
  11.           )   )
  12.   )
  13.   (if (setq eb (last (nth 3 en)))
  14.     (setq ebl (entget eb)))
  15.   (redraw ent 3)
  16.   (if (= cod "x")
  17.     (progn
  18.       (textscr)
  19.       (mapcar 'print entl)(princ)
  20.       (setq cod (getint "\n组码:"))
  21.     )
  22.   )
  23.   (setq ec (cdr (assoc cod entl)))
  24.   (princ "\n原值:")(princ (assoc cod entl))  
  25.   (if (= 1 key)
  26.      (if (not (setq nv (cdr (assoc cod (setq ent2 (entget (car(nentsel "\n选择参照实体:"))))))))
  27.          (if (= cod 62)(setq nv (cdr (assoc cod (tblsearch "LAYER" (cdr (assoc 8 ent2)) ) ))));;有待完善
  28.      )  
  29.      (cond              ;;;;;;else
  30.       ((= 'STR (type ec))(setq nv (getstring  t "\n字串替换为:")))
  31.       ((= 'INT (type ec))(setq nv (getint "\nINT值替换为:")))
  32.       ((= 'REAL (type ec))(setq nv (getreal "\n\nREAL值替换为:")))
  33.       ((= 'LIST (type ec))
  34.                 (setq nv (read (strcat "(" (getstring t "\nLIST替换为(点表-->回车取参照点):") ")")));;如 "1.0 3.3 0.0"
  35.                 (graphscr)
  36.                 (if (not nv)(setq nv (setq cpt (getpoint "\n点取参照点:"))))
  37.                 (if eb (setq nv (trans cpt 1 ent)))
  38.                 )
  39.       ((not ec) (setq nl (read (getstring t "\n加入新表元(...):"))))
  40.     )
  41.   )
  42.   (if (not nl) (setq nl (cons cod nv)))
  43.   (princ "\n新值:")(princ nl)
  44.   (graphscr)
  45.   (redraw ent 4)
  46.   (if ec
  47.     (setq entl (subst nl (assoc cod entl) entl))
  48.     (setq entl (append entl (list nl)))
  49.   )
  50.   (entmod entl)(entupd ent)(if eb (entupd eb))
  51.   ;(setq cod nil key nil)
  52. )
  53. ;;;;;;;;;;;;;;;;;;
  54. (defun c:xla (/ cod key) (princ "\n改层")(cbe 8 0)(princ))
  55. (defun c:xla2 (/ cod key) (princ "\n改层k")(cbe 8 1)(princ))
  56. (defun c:xc (/ cod key) (princ "\n改色")(cbe 62 0)(princ))
  57. (defun c:xc2 (/ cod key) (princ "\n改色k")(cbe 62 1)(princ))
  58. (defun c:xlt (/ cod key) (princ "\n改线形")(cbe 6 0)(princ))
  59. (defun c:xlt2 (/ cod key) (princ "\n改线形k")(cbe 6 1)(princ))
  60. (defun c:xt (/ cod key) (princ "\n改字串")(cbe 1 0)(princ))
  61. (defun c:xt2 (/ cod key) (princ "\n改字串")(cbe 1 1)(princ))
  62. (defun c:xx1 (/ cod key)(princ "\n改实体数据库 :")(cbe "x" 0)(princ))
  63. (defun c:xx2 (/ cod key)(princ "\n改实体数据库 :")(cbe "x" 1)(princ))
  64. ;;;;;;;;请自行扩展
  65.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2009-4-25 10:10:29 | 显示全部楼层
请列出一个内容祥单
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 21:50 , Processed in 0.364717 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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