新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 图形图像 > AutoCAD教程 > 正文:AutoCAD超级编辑

AutoCAD超级编辑

新客网 XKER.COM 2006-11-06 来源: 收藏本文

兼容版本:AutoCAD2000-2004、MDT2004

文本、标注文本、圆弧编辑

一个命令搞定

命令是MEDIT和MEDIT2

两个命令不太一样哦。其中一个有对话框

因为我有时不太喜欢对话框

操作方法:把下面的源程序copy到acad2000.lsp或acad2004.lsp文件的后面,保存。

重启动AutoCAD,

OK!!!

按Esc键结束

(defun c:MEDIT() ;;;---《《《可以把这里的c:后面的命令名改成你想要的命令名,只要不冲突
(setvar "cmdecho" 0)
(command "ddedit" "")
(command)
(PRINC "\n超级编辑\n文本、标注文本、圆弧编辑")
(setq ddr nil)
(while (null ddr)
(setq arr nil)
(while (null arr)
(setq arr (entsel"\n请选择文本、标注文本、圆弧对象:"))
)
(setq kkk (cdr(assoc 0 (entget (car arr)))))
(cond
((or (= kkk "TEXT")(= kkk "DIMENSION"))
(t-d-edit))
((= kkk "MTEXT")
(mt-edit))
((= kkk "CIRCLE")
(e_CIRCLE))
((= kkk "ARC")
(e_ARC))
(defun c:MEDIT2() ;;;---《《《可以把这里的c:后面的命令名改成你想要的命令名,只要不冲突
(setvar "cmdecho" 0)
(command "ddedit" "")
(command)
(PRINC "\n超级编辑\n文本、标注文本、圆弧编辑")
(setq ddr nil)
(while (null ddr)
(setq arr nil)
(while (null arr)
(setq arr (entsel"\n请选择文本、标注文本、圆弧对象:"))
)
(setq kkk (cdr(assoc 0 (entget (car arr)))))
(cond
((or (= kkk "TEXT")(= kkk "MTEXT")(= kkk "DIMENSION")(= kkk "TOLERANCE"))
(command "DDEDIT" arr ""))
((= kkk "CIRCLE")
(e_CIRCLE))
((= kkk "ARC")
(e_ARC))
(defun e_CIRCLE()
(setq kkg nil)
(setq kuu (entget (car arr)))
(setq kkk (* 2 (cdr (assoc 40 kuu))))
(if (null oldd)
(setq oldd kkk)
(setq kkg (getdist (strcat "\n圆的原直径 " (rtos kkk 2 3) "\n请输入圆的新原直径<" (rtos oldd 2 3) ">:")))
(if (null kkg)
(setq kkg (* 0.5 oldd))
(setq kkg (* 0.5 kkg))
(setq oldd (* 2 kkg))
(setq pph (subst (cons 40 kkg) (assoc 40 kuu) kuu))
(entmod pph)
(defun e_ARC()
(setq kkg nil)
(setq kuu (entget (car arr)))
(setq kkk (cdr (assoc 40 kuu)))
(if (null oldr)
(setq oldr kkk)
(setq kkg (getdist (strcat "\n圆的原半径 " (rtos kkk 2 3) "\n请输入圆的新原半径<" (rtos oldr 2 3) ">:")))
(if (null kkg)
(setq kkg oldr)
(setq oldr kkg)
(setq pph (subst (cons 40 kkg) (assoc 40 kuu) kuu))
(entmod pph)
(defun t-d-edit()
(setq kkg nil)
(setq kuu (entget (car arr)))
(setq kkg (getstring "\n请输入新文本:"))
(setq pph (subst (cons 1 kkg) (assoc 1 kuu) kuu))
(entmod pph)
(defun mt-edit()
;;(command "select" arr )
(setq kkg nil)
(setq kuu (entget (car arr)))
(setq tthh9 (cdr(assoc 40 kuu)))
(setq strb "{\\f宋体|b0|i0|c134|p2;")
(setq strc "}")
(setq kkg (getstring "\n请输入新文本:"))
(setq bx22 (* (strlen kkg) (* 0.708 tthh9)))
(setq kkg (strcat strb kkg strc))
(setq kuu (subst (cons 1 kkg) (assoc 1 kuu) kuu))
(setq pph (subst (cons 41 bx22) (assoc 41 kuu) kuu))
(entmod pph)

 

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。