执骨哟 发表于 2020-9-9 16:57:31

求助:lisp中调用多行文字命令如何不换行输入

本帖最后由 执骨哟 于 2020-9-9 17:01 编辑

刚好在明经里看到有坛友问如何用lisp写入多行文字,解答的同时顺便求助一下各位大佬!原问题链接http://bbs.mjtd.com/forum.php?mo ... =1&extra=#pid876139
(defun c:xx()
   (setq osm (getvar "osmode"));
   (setvar "osmode" 16383)
   (setq a1 "1.0"
         a2 "2.0"
         a3 "3.0"
         a4 "4.0"
         zb1 (list 0 0)
         )
   (command "mtext" zb1 "W" "0" "传热系数为:" a1 "翅片节距为:" a2 "经计算传热面基为:" a3 "传热系数为:" a4 "")
(princ)
)
源码生成图中生成的文字均被换行处理了,请问各位大佬有什么方法能让显示的结果如效果图一样?
个人猜想可能是有特定的符号代表不换行。

start4444 发表于 2020-9-9 17:42:26

下次提问想周全一点

(defun c:xx (/ a1 a1txt a2 a2txt a3 a3txt a4 a4txt hhh osm zb1)
   (setvar "cmdecho" 0)
   (setq osm (getvar "osmode"))
   (setvar "osmode" 16383)
   (SETQ HHH (GETINT "\n输入传热系数<1>"))
   (IF (NOT HHH) (SETQ HHH 1))
   (setq a1 hhha1txt (strcat "传热系数为:" (itoa a1))
         a2 (+ a1 5) a2txt (strcat "翅片节距为:" (itoa a2))
         a3 (+ a2 5) a3txt (strcat "经计算传热面基为:" (itoa a3))
         a4 (+ a3 5) a4txt (strcat "传热系数为:" (itoa a4))
         zb1 (getpoint "\n选择文字插入点:")
         )
   (command "mtext" zb1 "W" "0" a1txt a2txt a3txt a4txt "")
        (setvar "osmode" osm)
        (setvar "cmdecho" 1)
(princ)
)

start4444 发表于 2020-9-9 17:04:36

(defun c:xx()
   (setq osm (getvar "osmode"));
   (setvar "osmode" 16383)
   (setq a1 "传热系数为:1.0"
         a2 "翅片节距为:2.0"
         a3 "经计算传热面基为:3.0"
         a4 "传热系数为:4.0"
         zb1 (getpoint)
         )
   (command "mtext" zb1 "W" "0" a1 a2 a3 a4 "")
(princ)
)

执骨哟 发表于 2020-9-9 17:07:04

start4444 发表于 2020-9-9 17:04
(defun c:xx()
   (setq osm (getvar "osmode"));
   (setvar "osmode" 16383)


谢谢大佬的解答,但是里面的a1-a4是变量,不是固定的数值,前面的文字是固定的,后面的数值是输入或者计算得出的,再次感谢

执骨哟 发表于 2020-9-9 17:15:45

本帖最后由 执骨哟 于 2020-9-9 17:18 编辑

抱歉,是我问题描述的不够详尽,下面更正一下,a1、a2、a3、a4均为变量值,如何保证计算变量的同时生成效果图,修改后的源码如下
(defun c:xx()
   (setvar "cmdecho" 0)
   (setq osm (getvar "osmode"))
   (setvar "osmode" 16383)
   (SETQ HHH (GETINT "\n输入传热系数<1>"))
   (IF (NOT HHH) (SETQ HHH 1))
   (setq a1 hhh
         a2 (+ a1 5)
         a3 (+ a2 5)
         a4 (+ a3 5)
         zb1 (list 0 0)
         )
   (command "mtext" zb1 "W" "0" "传热系数为:" a1 "翅片节距为:" a2 "经计算传热面基为:" a3 "传热系数为:" a4 "")
(princ)
)

执骨哟 发表于 2020-9-9 17:45:51

start4444 发表于 2020-9-9 17:42
下次提问想周全一点

(defun c:xx (/ a1 a1txt a2 a2txt a3 a3txt a4 a4txt hhh osm zb1)


谢谢大佬解惑!
页: [1]
查看完整版本: 求助:lisp中调用多行文字命令如何不换行输入