好的,没有5个STRCAT,但我觉得标题很吸引人。
因此,我一直在制作这个新的autolisp,它是基于上周我用其他人的代码拼凑而成并个性化的代码。
除了我放进去的那个小等式外,一切都正常。以下是我更新之前的工作代码:
- (defun c:ptdif (/ p p1 p2 p3 x y z x1 y1 z1 x2 y2 z2 mdl pdiff ptcoord textloc cs_from cs_to)
- (while ;start while
- (setq cs_from 1)
- (setq cs_to 0)
- (setq p (getpoint "\nCHOOSE MODEL"))
- (setq p2 (getpoint "\nCHOOSE SHOT"))
- (setq textloc (getpoint p "\nPLACE TEXT"))
- (setq p1 (trans p cs_from cs_to 0))
- (setq p3 (trans p2 cs_from cs_to 0))
- (setq x (rtos (car p1)))
- (setq y (rtos (cadr p1)))
- (setq z (rtos (caddr P1)))
- (setq x2 (rtos (car p3)))
- (setq y2 (rtos (cadr p3)))
- (setq z2 (rtos (caddr p3)))
- (setq ptcoord (strcat "Model: X = "x" Y = "y" Z = " z))
- (setq mdl (strcat "Sokkia: X = "x2" Y = "y" Z = " z2))
- (command p2)
- (command "_leader" p textloc "" ptcoord mdl "")
- (princ)
- ) ;end while
- )
现在它工作得很好很整洁。我试着推它,只是为了在文本框中再添加一个字符串,其中包含“x和x2”以及y和z之间的差异。我会告诉你我尝试了什么,但没有成功。我想我已经很接近了。
- (defun c:ptdif ( / p p1 p2 p3 p4 x y z x1 y1 z1 x2 y2 z2 x3 y3 z3 mdl ptd ptcoord textloc cs_from cs_to)
- (while ;start while
- (setq cs_from 1) ; these two keep it in world coords
- (setq cs_to 0)
- (setq p (getpoint "\nCHOOSE MODEL")) ; all my get points and prompts
- (setq p2 (getpoint "\nCHOOSE SHOT"))
- (setq textloc (getpoint p "\nPLACE TEXT"))
- (setq p1 (trans p cs_from cs_to 0)) ; the compliment to keeping it in world coords
- (setq p3 (trans p2 cs_from cs_to 0))
- (setq x (rtos (car p1))) ; breaks up x, y, and z from 1st getpoint
- (setq y (rtos (cadr p1)))
- (setq z (rtos (caddr P1)))
- (setq x2 (rtos (car p3))) ; breaks up x, y, and z from 2nd getpoint
- (setq y2 (rtos (cadr p3)))
- (setq z2 (rtos (caddr p3)))
- [b](setq x3 (- x x2))
- (setq y3 (- y y2))
- (setq z3 (- z z2))[/b]
- (setq ptcoord (strcat "Model: X = "x" Y = "y" Z = " z))
- (setq mdl (strcat "Sokkia: X = "x2" Y = "y2" Z = "z2))
- [b](setq ptd (strcat x3 y3 z3))[/b]
- (command p2)
- (command "_leader" p textloc "" ptcoord mdl ptd "")
- (princ)
- ) ;end while
- )
我一直在用谷歌搜索我的屁股,我所有的研究都表明我的“等式”是正确的,但我不断得到“错误:糟糕的参数类型:numberp:”20.0212“”
现在如果我得到“nil”,我会修正,但这告诉我它停在等式上,对吗?
对不起,我的无知,我上周才开始这么做。
任何帮助都会非常棒。至少感谢您阅读本文。 |