请帮忙改下程序:输入S后返回是我想要的结果
<p><br/>;;;快速写单行字 <br/>(defun c:WS (/ odtsz wzgd)<br/>(setvar "cmdecho" 0)<br/>(command "_.undo" "E")<br/>(setq odsty (getvar "textstyle")) ;;记录当前文本样式<br/>(setq odtsz (getvar "textsize")) ;;记录当前文本高度<br/>(command "layer" "m" "6文字层" "c" "3" "" "s" "6文字层" "")<br/>(prompt "\n【提示】文字高度") (princ"(") (princ odtsz) (princ "):")<br/>(initget "S")<br/>(if(setq wzsd (getpoint "\n【提示<S>改文本高度】指定文字起始点:"))<br/>(cond ((= wzsd "S")(c:WSGD))))<br/>(setq wzgd odtsz)(command "REGEN" )<br/>(prompt "\n【文字高度:") (princ"(") (princ wzgd) (princ ")】")<br/>(setq XXWS (getstring "输入文字:"))<br/>(command "TEXT" wzsd wzgd 0 XXWS)<br/>(command "_.undo" "E")<br/>(setvar "textsize" odtsz) ;;返回文本高度<br/>(setvar "textstyle" odsty) ;;返回文本样式<br/>(princ))</p><p>功能目的:输入命令后,点取一点,写文字。</p><p>程序执行到输入S以后,<strong><font color="#f70938">不能继续输入文字</font></strong>,出现如下错误:</p><p><font color="#ff3300">【文字高度:(5.0)】输入文字:fdffa</font></p><p><font color="#ff3300">找不到文字样式“5.000000000000000”。<br/>; 错误: 函数被取消</font></p><p><font color="#ff3300">输入样式名或 [?] <XXX>:</font></p><p>请帮忙改下程序:(就用当前的文字样式,不管它什么样式!)输入S后返回是我想要的结果:</p><p>能继续写字在指定地方</p> 试试看:(defun c:WS (/ odtsz wzgd)
(setvar "cmdecho" 0)
(command "_.undo" "E")
(setq odsty (getvar "textstyle")) ;;记录当前文本样式
(setq odtsz (getvar "textsize")) ;;记录当前文本高度
(command "layer" "m" "6文字层" "c" "3" "" "s" "6文字层" "")
(princ(strcat "\n【提示】文字高度(" (rtos odtsz 2) "):"))
(initget "S")
(if (= (setq wzsd (getpoint "\n【提示<S>改文本高度】指定文字起始点:")) "S") (progn
(setq wzgd odtsz)
(command "REGEN" )
(setq wzgd (getdist (strcat "\n【文字高度:(" (rtos wzgd 2) ")】:")))
) (progn
(setq XXWS (getstring "输入文字:"))
(command "TEXT" wzsd wzgd 0 XXWS)
))
(command "_.undo" "E")
(setvar "textsize" odtsz) ;;返回文本高度
(setvar "textstyle" odsty) ;;返回文本样式
(princ)
)
<p>试下</p><p>(defun c:WS (/ ODSTY ODTSZ OLDCMDECHO OLDLAYER WZGD WZGD_1 WZSD XXWS)<br/> (setq oldcmdecho (getvar "cmdecho"))<br/> (setvar "cmdecho" 0)<br/>;;; (command "_.undo" "E");_这个感觉没用吧 注释掉<br/> (setq odsty (getvar "textstyle"))<br/> ;;记录当前文本样式<br/> (setq odtsz (getvar "textsize"))<br/> ;;记录当前文本高度<br/> (princ (strcat "\n【提示】当前文字高度(" (rtos odtsz 2 0) "):"))<br/> (initget "S")<br/> (while (= (setq wzsd (getpoint "\n【提示<S>改文本高度】指定文字起始点:"))<br/> "S"<br/> )<br/> (progn<br/> (setq wzgd_1 (getint (strcat "\n请输入文字高度(" (rtos odtsz 2 0) "):")))<br/> (initget "S")<br/> )<br/> )<br/> (if wzgd_1<br/> (setq wzgd wzgd_1)<br/> (setq wzgd odtsz)<br/> )<br/> (command "REGEN")<br/> (princ (strcat "\n【文字高度:(" (rtos wzgd 2 0) ")】"))<br/> (setq XXWS (getstring "输入文字:"))<br/> (setq oldlayer (getvar "clayer")) ;_当前的图层<br/> (command "layer" "m" "6文字层" "c" "3" "" "s" "6文字层" "")<br/> (command "TEXT" wzsd wzgd 0 XXWS)<br/> (setvar "clayer" oldlayer) ;_设置到旧图层<br/>;;; (command "_.undo" "E");_这个感觉没用吧 注释掉<br/> (setvar "textsize" odtsz)<br/> ;;返回文本高度<br/> (setvar "textstyle" odsty)<br/> ;;返回文本样式<br/> (setvar "cmdecho" oldcmdecho)<br/> (princ)<br/>)</p> <p>忘记用代码格式了...</p> <p>谢谢各位的热心帮助</p>
<p> </p>
<p> </p>
页:
[1]