ljs026 发表于 2004-8-26 11:38:00

求一個可以修改塊文字的程序

请各位大大帮帮忙求一个可以修改块文字的程序。我知道晓东工具箱里有一个很棒的可以改块文字、属性块文字、一般文字,但这个程序能否调出单行文字的编辑功能表,而不是在命令列修改?

龙龙仔 发表于 2004-8-27 08:04:00

;;BY LUCAS(龙龙仔)<BR>(defun C:EDIT_TXT (/ ENT TYPE_NAME TMP_TXT SEL)<BR>       (vl-load-com)<BR>       (defun DO_IT ()<BR>                       (entmake (list '(0 . "TEXT")<BR>                               '(100 . "AcDbEntity")<BR>                               '(100 . "AcDbText")<BR>                               '(60 . 1)<BR>                               '(10 0.0 0.0 0.0)<BR>                               '(40 . 0.000000001)<BR>                               (cons 1 (cdr (assoc 1 (entget ENT))))<BR>                                       )<BR>                       )<BR>                       (setq TMP_TXT (entlast))<BR>                       (command "_.DDEDIT" TMP_TXT "")<BR>                       (vla-put-textstring<BR>                                       (vlax-ename-&gt;vla-object ENT)<BR>                                       (cdr (assoc 1 (entget TMP_TXT)))<BR>                       )<BR>                       (entdel TMP_TXT)<BR>       )


       (if (setq SEL (nentsel "\nSelect Text:"))<BR>                       (progn<BR>                                       (setq ENT (car SEL))<BR>                                       (setq TYPE_NAME (cdr (assoc 0 (entget ENT))))<BR>                                       (cond<BR>        ((and (= TYPE_NAME "TEXT") (= (length SEL) 4))<BR>       (DO_IT)<BR>       (command "_.REGEN")<BR>        )<BR>        ((wcmatch TYPE_NAME "TEXT,MTEXT,ATTDEF")<BR>       (command "_.DDEDIT" ENT "")<BR>        )<BR>        ((= TYPE_NAME "ATTRIB") (DO_IT))<BR>                                       )<BR>                       )<BR>       )<BR>       (princ)<BR>)

ljs026 发表于 2004-8-27 09:12:00

龙龙仔大大真是好人,太感谢了!再请教大大为何我试著点击直线标註时会出现&lt;不正确 图元名称: 4007BC60&gt;,而点第二下就可以编辑了?我想说这个功能可以取代AUTOCAD自带的功能说,那我的功能表上就可以再少一个Button了说

龙龙仔 发表于 2004-8-27 10:48:00

<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">你并没有说要改标註文字???那程序还要改动一下……


<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">       


<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p>;;BY LUCAS(龙龙仔)<BR>(defun C:EDIT_TXT (/ ENT TYPE_NAME TMP_TXT SEL)<BR>       (vl-load-com)<BR>       (defun DO_IT ()<BR>                       (entmake (list '(0 . "TEXT")<BR>                               '(100 . "AcDbEntity")<BR>                               '(100 . "AcDbText")<BR>                               '(60 . 1)<BR>                               '(10 0.0 0.0 0.0)<BR>                               '(40 . 0.000000001)<BR>                               (cons 1 (cdr (assoc 1 (entget ENT))))<BR>                                       )<BR>                       )<BR>                       (setq TMP_TXT (entlast))<BR>                       (command "_.DDEDIT" TMP_TXT "")<BR>                       (vla-put-textstring<BR>                                       (vlax-ename-&gt;vla-object ENT)<BR>                                       (cdr (assoc 1 (entget TMP_TXT)))<BR>                       )<BR>                       (entdel TMP_TXT)<BR>       )<BR>       (if (setq SEL (nentsel "\nSelect Text:"))<BR>                       (progn<BR>                                       (setq ENT (car SEL))<BR>                                       (setq TYPE_NAME (cdr (assoc 0 (entget ENT))))<BR>                                       (cond<BR>        ((and (= TYPE_NAME "TEXT") (= (length SEL) 4))<BR>       (DO_IT)<BR>       (command "_.REGEN")<BR>        )<BR>        ((wcmatch TYPE_NAME "TEXT,MTEXT,ATTDEF")<BR>       (if (and (equal TYPE_NAME "MTEXT") (= (length SEL) 4))<BR>                       (setq ENT (car (last SEL)))<BR>       )<BR>       (command "_.DDEDIT" ENT "")<BR>        )<BR>        ((= TYPE_NAME "ATTRIB") (DO_IT))<BR>                                       )<BR>                       )<BR>       )<BR>       (princ)<BR>)</o:p>


<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><o:p></o:p>

ljs026 发表于 2004-8-27 16:21:00

大大真是好人耶~~~
页: [1]
查看完整版本: 求一個可以修改塊文字的程序