在z坐标中写入数字
我需要你的帮助:我正在开发一个简单的例程,允许你输入一个实数,这个注释写在Z坐标中,对应于数字本身。我想要的是,从第一个周期开始,如果输入值为null,则假设为前一个周期的数量。奇怪的是,我已经采取了在例行程序中达成的解决方案,它奏效了,但现在没有。奇怪的解决方案应该很简单,但我被阻止了,我无法解决问题。
(defun c:nrz (/ gnr gpt rep xx yy zz zzfinal)
(setq gnr (getreal "\nNumber:"))
(if (= gnr nil)
(setq gnr rep)
)
(setq gpt (getpoint "\nPick a point:"))
(setq xx (car gpt))
(setq yy (cadr gpt))
(setq zz (caddr gpt))
(setq zz gnr)
(setq zzfinal (list xx yy zz))
(command ".text" zzfinal 0.20 0 (rtos gnr 2 2))
(setq rep gnr)
(princ)
) 只需在if函数之前给顶部的变量rep一个实数。
例如
(setq rep 12.0)
还有一件事,我想您应该将(rtos gnr 2 2)替换为(rtos zzfinal 2 2),以包含所有数字,因为您支持它们
有数字。
塔瓦特
我感谢你的建议。就整体而言,可以进行协调,但以防我打算写入值Z。至于要分配给变量的值(setq rep),不是我想要的。我希望nil值之后的第一个条目假设前一个值。这将允许重复写入相同的数字,直到您想要更改为止。 考虑以下代码:
(defun c:nrz ( / pt )
(if
(and
(setq *gnr*
(cond
(
(getreal
(strcat "\nNumber"
(if *gnr* (strcat " <" (rtos *gnr* 2 2) ">: ") ": ")
)
)
)
( *gnr* )
)
)
(setq pt (getpoint "\nPick a Point: "))
(setq pt (trans pt 1 0))
)
(entmakex
(list
(cons 0 "TEXT")
(list 10 (car pt) (cadr pt) *gnr*)
(list 11 (car pt) (cadr pt) *gnr*)
(cons 40 0.2)
(cons 1 (rtos *gnr* 2 2))
(cons 7 (getvar 'TEXTSTYLE))
(cons 72 1)
(cons 73 2)
)
)
)
(princ)
)
也许本教程也会有所帮助。 这可能会结束。。
(defun c:nrz (/ z p)
(setq z (getreal "\n Enter number <1.0> :"))
(setq p (getpoint "\n Text location :"))
(entmake (list '(0 . "TEXT")
'(100 . "AcDbEntity")
'(100 . "AcDbText")
(cons 10 (trans p 1 0))
(cons 40 (getvar 'textsize))
(cons 50 0.0)
(cons 1
(if (not z)
(setq z "1.00")
(rtos z 2 2)
)
)
)
)
(princ)
) 李,坦克!
杰出的这正是我想要的。
好人就是好人。
不客气,我希望这能帮助你理解
页:
[1]