这更接近我所需要的。我包含的“下降”是下降和上升的距离,因为导管在天花板中运行,但随后必须下降到整个建筑的设备,所以我通常每个设备增加10英尺,5英尺。向下5英尺。回到导管。此外,我正在提取X和Y坐标,因为导管只在这些方向上运行,所以这就是为什么它在那里。
好的,在玩了一点代码之后,我几乎完全按照我想要的方式得到了它。现在,我需要它做的就是在我右键单击以获取最后一个设备的距离后,我希望它自动从我选择的最后一个点开始拾取,而无需再次单击最后一个点。
-
- (defun c:dis ()
- (setvar "CMDECHO" 0)
- (setq num 1) ;set starting segment value
- (setq drop (getint "\nEnter drop distance to add to total length:"))
- (setq drop (* 12 drop))
- (setq lensum 0)
- (princ "\nSelect path to next device:")
- (while
- (setq pt (getpoint))
- (setq x1 (car pt)) ;extract X value
- (setq y1 (cadr pt)) ;extract Y value
- (while
- (setq pt (getpoint pt))
- (setq x2 (car pt))
- (setq y2 (cadr pt))
- (setq xdiff (abs (- x1 x2)))
- (setq ydiff (abs (- y1 y2)))
- (setq len (+ xdiff ydiff))
- (setq lensum (+ len drop))
- )
- (setq dist (strcat "---> DEVICE " (itoa num) " DISTANCE: " (rtos (/ lensum 12) 2 0)))
- (princ "\n")(princ dist)
- (setq num (1+ num))
- (setq x1 x2)(setq y1 y2)
- )
- (princ setq total (strcat "---> TOTAL LENGTH: " (rtos dist 4 0)))
- (setq x1 x2)(setq y1 y2)
- (princ)
- )
我就快到了,只要最后一点,一切都会很完美。我把它设置好了,这样在最后,它应该显示之前setq“dist”值的总和,但我就是不能让它正常工作。我得到。。。
“错误:错误的参数类型:numberp:”-->设备2距离:21”
我错过了什么? |