Tharwat 发表于 2022-7-6 10:58:52

如何处理两个变量

大家好,
 
 
结果必须为111x222作为文本
但它没有回应。。。。为什么?
当做
塔瓦特

Lee Mac 发表于 2022-7-6 11:03:12

研究使用entmake

Freerefill 发表于 2022-7-6 11:08:27

没有创建文本的原因是因为变量a和b不是字符串,而是数字。只能将字符串参数传递给strcat。您可以使用以下命令将数字更改为字符串:
 
整数(无小数点的数字)或

(rtos 123.123 2 3)
表示实数或浮点数(带小数点的数字)
 
编辑:将我的*功能反转为*功能。。我总是这么做。。现在它是正确的。>

Tharwat 发表于 2022-7-6 11:10:22

谢谢李。
 
我提供的代码是中型Lisp的一部分,使用EntMake会使程序更加紧凑,并且会挤满entmaks函数。
 
既然strcat函数使用正确,为什么它没有响应呢?
 
谢谢

alanjt 发表于 2022-7-6 11:13:43

虽然我同意李使用entmake,特别是对于文本,但你的问题在于试图连接3个应该是文本的项,而变量a和b不是。
 
如。
(defun c:abc (/ a b c)
(setq a "111")
(setq b "222")
(setq c (strcat a "x" b))
(command "_text" pause "" "" c "")
(princ)
)
 
entmake例如。
(defun c:abc (/ a b c pt)
(setq a "111")
(setq b "222")
(setq c (strcat a "x" b))
(if (setq pt (getpoint "\nSpecify placement point: "))
   (entmake (list '(0 . "TEXT")
                  (cons 40 (getvar 'textsize))
                  (cons 10 (trans pt 1 0))
                  (cons 1 c)
            )
   )
)
(princ)
)

Tharwat 发表于 2022-7-6 11:23:18

 
太棒了alanjt先生
两者都很完美。
非常感谢你
塔瓦特

alanjt 发表于 2022-7-6 11:26:20

向命令发送数字不会把事情搞砸,但尝试加入任何东西(使用strcat,正如您上面所做的)或使用entmake/vla addtext,您将收到一个错误:眨眼:

Tharwat 发表于 2022-7-6 11:29:09

alanjt先生
如何使文本以英寸为单位,例如111“x222”。我已经试了很多次了,但结果都是零。
 
你能告诉我你的想法吗。
当做
塔瓦特

alanjt 发表于 2022-7-6 11:33:44

 
"111\"x222"

Tharwat 发表于 2022-7-6 11:34:59

 
那么,我可以知道你的替代建议,而不是在这种情况下strcat。
 
非常感谢
塔瓦特
页: [1] 2
查看完整版本: 如何处理两个变量