我試過05版本可以用到 08版本就不行啦!不知道是什麽原因
学习一下!
<p><strong><font color="#3366ff" size="5">7楼的可否把源码发下,让我等菜鸟看下………………</font></strong></p>
本帖最后由 作者 于 2010-7-26 11:38:02 编辑 <br /><br /> <p>我发下吧,刚刚改好的。</p>
<p><font face="Verdana">;;; 自定义UnDo范围<br/>(defun EF:UNDOBegin ()<br/> (setvar "CMDECHO" 0)<br/> (command "_.undo" "_group")<br/> (princ)<br/>)<br/>;;; end defun<br/>(defun EF:UNDOEnd ()<br/> (setvar "CMDECHO" 0)<br/> (command "_.undo" "_end")<br/> (princ)<br/>)<br/>;;; end defun<br/>(defun c:tt (/ dcl_id1 oba ob1 obn obt ptn otxt txt sty styno lay cyn layno<br/> hig wid ang col cnu etlst style layer<br/> )<br/> (graphscr)<br/> (EF:UNDOBegin)<br/> (setq olderr *error*)<br/> (defun *error* (msg)<br/> (princ "\n*ERROR*...")<br/> (princ msg)<br/> (princ)<br/> ) ; end defun error.<br/> (defun set_color (conm / costr)<br/> (defun map_color (ckey mno)<br/> (start_image ckey)<br/> (fill_image 0 0 (DimX_tile ckey) (DimY_tile ckey) mno)<br/> (end_image)<br/> ) ; end defun<br/> (cond<br/> ((= 0 conm)<br/> (setq costr "Byblock")<br/> )<br/> ((= 1 conm)<br/> (setq costr "Red")<br/> )<br/> ((= 2 conm)<br/> (setq costr "Yellow")<br/> )<br/> ((= 3 conm)<br/> (setq costr "Green")<br/> )<br/> ((= 4 conm)<br/> (setq costr "Cyan")<br/> )<br/> ((= 5 conm)<br/> (setq costr "Bule")<br/> )<br/> ((= 6 conm)<br/> (setq costr "Magenta")<br/> )<br/> ((= 7 conm)<br/> (setq costr "color")<br/> )<br/> ((= 256 conm)<br/> (setq costr "Bylayer")<br/> )<br/> (t<br/> (setq costr "")<br/> )<br/> ) ; end cond<br/> (cond<br/> ((= 0 col)<br/> (map_color "col" 7)<br/> )<br/> ((= 256 col)<br/> (map_color "col" (cdr (assoc 62 (tblsearch "layer" lay))))<br/> )<br/> (t<br/> (map_color "col" conm)<br/> )<br/> ) ; end cond<br/> (if (= 256 conm)<br/> (set_tile "cnu" (strcat "<" (itoa (cdr (assoc 62 (tblsearch "layer"<br/> lay<br/> )<br/> )<br/> )<br/> ) ">" costr<br/> )<br/> )<br/> (set_tile "cnu" (strcat "<" (itoa conm) ">" costr))<br/> ) ; end if</font></p><font face="Verdana">
<p><br/> ) ; end set_color<br/> (defun map_keylist (key keylst) ; set popuplist<br/> (start_list key)<br/> (mapcar<br/> 'add_list<br/> keylst<br/> )<br/> (end_list)<br/> ) ; end map<br/> (defun layer_get_all (/ lay layer layname)<br/> (setq layer nil ; All layer<br/> lay (tblnext "LAYER" T)<br/> )<br/> (while (/= lay nil)<br/> (setq layname (cdr (assoc 2 lay))<br/> layer (cons layname layer)<br/> )<br/> (setq lay (tblnext "LAYER"))<br/> )<br/> (setq layer (ACAD_Strlsort layer))<br/> layer ; all layer.</p>
<p><br/> ) ; end defun<br/> (defun style_get_all (/ sty style sty_list)<br/> (setq sty_list nil<br/> sty (tblnext "style" t)<br/> )<br/> (setq style (cdr (assoc 2 sty)))<br/> (while style<br/> (if (/= "" style)<br/> (setq sty_list (append<br/> sty_list<br/> (list style)<br/> )<br/> )<br/> )<br/> (setq sty (tblnext "style"))<br/> (setq style (cdr (assoc 2 sty)))<br/> ) ; end while]<br/> (setq sty_list (ACAD_Strlsort sty_list))<br/> sty_list<br/> ) ; end defun<br/> (defun set_error (str)<br/> (set_tile "error" str)<br/> ) ; end defun<br/> (defun sub_mtext (color entlist / ei newlist)<br/> (setq ei 0<br/> newlist nil<br/> )<br/> (while (< ei (length entlist))<br/> (setq newlist (cons (nth ei entlist) newlist))<br/> (if (= 8 (car (nth ei entlist)))<br/> (setq newlist (cons (cons 62 color) newlist))<br/> ) ; end if<br/> (setq ei (1+ ei))<br/> ) ; end while<br/> (reverse newlist)<br/> ) ; end defun<br/> (setq ob1 (entsel "\n选择要修改的任何文本:"))<br/> (SETQ obn (car ob1)<br/> ptn (car (cdr ob1))<br/> )<br/> (setq obt (car (nentselp ptn)))<br/> (setq oba (cdr (assoc 0 (entget obt))))<br/> (if (or<br/> (= oba "TEXT")<br/> (= oba "MTEXT")<br/> (= oba "ATTRIB")<br/> )<br/> (setq otxt (cdr (assoc 1 (entget obt))))<br/> ) ; end if<br/> (if (= oba "ATTDEF")<br/> (setq otxt (cdr (assoc 2 (entget obt))))<br/> ) ; end if<br/> (if otxt<br/> (progn<br/> (setq sty (cdr (assoc 7 (entget obt)))<br/> lay (cdr (assoc 8 (entget obn)))<br/> hig (cdr (assoc 40 (entget obt)))<br/> wid (cdr (assoc 41 (entget obt)))<br/> ang (cdr (assoc 50 (entget obt)))<br/> ) ; end setq<br/> (if (or<br/> (= oba "TEXT")<br/> (= oba "MTEXT")<br/> (= oba "ATTRIB")<br/> )<br/> (setq col (cdr (assoc 62 (entget obt))))<br/> (setq col (cdr (assoc 62 (entget obn))))<br/> ) ; end if<br/> (setq ang (* 180 (/ ang pi)))<br/> (if (null col)<br/> (progn<br/> (setq cyn 0)<br/> (setq col 256)<br/> )<br/> (setq cyn 1)<br/> )<br/> (setq style (style_get_all))<br/> (setq layer (layer_get_all))<br/> (setq styno (- (length style) (length (member sty style))))<br/> (setq layno (- (length layer) (length (member lay layer))))<br/> (setq dcl_id1 (load_dialog "文字修改.DCL"))<br/> (if (not (new_dialog "文字修改" dcl_id1))<br/> (exit)<br/> )<br/> (set_color col)<br/> (set_tile "text" otxt)<br/> (set_tile "hig" (rtos hig 2 2))<br/> (set_tile "wid" (rtos wid 2 2))<br/> (set_tile "ang" (rtos ang 2 2))<br/> (mode_tile "text" 2)<br/> (map_keylist "sty" style)<br/> (set_tile "sty" (itoa styno))<br/> (map_keylist "lay" layer)<br/> (set_tile "lay" (itoa layno))<br/> (action_tile "text" "(setq txt $value)")<br/> (action_tile "sty" "(setq styno (atoi $value))")<br/> (action_tile "hig" "(setq hig (distof $value))(if (>= 0 hig)(progn (mode_tile \"hig\" 3)(mode_tile \"hig\" 2)(set_error \"Input error ! \"))(set_error \"\"))")<br/> (action_tile "wid" "(setq wid (distof $value))(if (>= 0 wid)(progn (mode_tile \"wid\" 3)(mode_tile \"wid\" 2)(set_error \"Input error ! \"))(set_error \"\"))")<br/> (action_tile "lay" "(setq layno (atoi $value))")<br/> (action_tile "col" "(if (setq cnu (ACAD_ColorDlg col))(progn (setq col cnu)(set_color col)))")<br/> (action_tile "ang" "(setq ang (distof $value))")<br/> (action_tile "accept" "(done_dialog 1)")<br/> (action_tile "cancel" "(done_dialog 0)")</p>
<p> (if (= 1 (start_dialog))<br/> (if txt<br/> (progn<br/> (setq sty (nth styno style))<br/> (setq lay (nth layno layer))<br/> (setq ang (* (/ ang 180) pi))<br/> (setq etlst (entget obt))<br/> (if (= oba "ATTDEF")<br/> (setq etlst (subst<br/> (cons 2 txt)<br/> (assoc 2 etlst)<br/> etlst<br/> )<br/> )<br/> (setq etlst (subst<br/> (cons 1 txt)<br/> (assoc 1 etlst)<br/> etlst<br/> )<br/> )<br/> ) ; end if<br/> (setq etlst (subst<br/> (cons 7 sty)<br/> (assoc 7 etlst)<br/> etlst<br/> )<br/> )<br/> (setq etlst (subst<br/> (cons 40 hig)<br/> (assoc 40 etlst)<br/> etlst<br/> )<br/> )<br/> (setq etlst (subst<br/> (cons 41 wid)<br/> (assoc 41 etlst)<br/> etlst<br/> )<br/> )<br/> (setq etlst (subst<br/> (cons 50 ang)<br/> (assoc 50 etlst)<br/> etlst<br/> )<br/> )<br/> (if (= 1 cyn)<br/> (setq etlst (subst<br/> (cons 62 col)<br/> (assoc 62 etlst)<br/> etlst<br/> )<br/> )<br/> (if (= "MTEXT" oba)<br/> (setq etlst (sub_mtext col etlst))<br/> (setq etlst (cons (cons 62 col) etlst))<br/> ) ; end if<br/> ) ; end if<br/> (entmod etlst)<br/> (entupd obt)<br/> (entupd obn)<br/> )<br/> ) ; end if<br/> ) ; end if<br/> (if (= 11 (start_dialog))<br/> (Command "_help")<br/> )<br/> ) ; end progn<br/> ) ; end if<br/> (setq *error* olderr)<br/> (EF:UNDOEnd)<br/> (princ)<br/>)<br/>;;; end defun<br/></font></p>
<p>duotu007</p>
<p>你的程序好像无法使用</p>
<p> </p>
<p><font face="Verdana">谢谢楼上兄弟的分享,参考下,非常感激!</font></p>
多谢了
学习一下
严重鄙视7楼的行为,支持楼主共享
楼主的程序用不了,编译的SD与我的外挂又重名了,