好的,这是最终产品!我对它进行了测试,然后重新测试,以确保尺寸相加。
-
- ;This function will calculate the distance a length of wire travels, at right angles, from one device to the next.
- (defun c:dis ()
- (setvar "CMDECHO" 0)
- (setq num 1)
- (or (getenv "DROP:DIST") (setenv "DROP:DIST" "10"))
- (if
- (setq drop (getint (strcat "\nEnter drop distance to add to total length <"(getenv "DROP:DIST")">: ")))
- (setenv "DROP:DIST" (rtos (* 12 drop)))
- )
- (setq drop (* 12 (atof (getenv "DROP:DIST"))))
- (setq pt (getpoint "\nSelect path to next device:"))
- (setq x1 (car pt))
- (setq y1 (cadr pt))
- (setq lensum (+ drop))
- (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 lensum))
- (setq segsum (strcat "---> TOTAL LENGTH: " (rtos (/ lensum 12) 2 0)))
- (setq x1 x2)
- (setq y1 y2)
- )
- (princ "\n")(princ segsum)
- (princ)
- )
这个LISP例程对于任何需要计算导线移动距离并包括下降距离的人来说都非常有用(对于我们来说,我们的导线在天花板上运行,然后下降5英尺到设备,然后备份5英尺到导管,因此我一直在说10英尺)。我们的布线布局始终在正交或XY坐标中运行,本例程仅计算正交或XY坐标,因此您可以单击以“L”形隔开的两个设备,它得到的是该距离,而不是从一个到另一个的直线。
这是李·麦克的道具,他帮了我的忙,并且达到了我想要的程度。谢谢我希望这个例行公事也能帮助其他人。
哦,如果有人感兴趣的话,我创建了一个LISP,它只在X和Y坐标中绘制导管线,并将边缘圆角到你想要的任何位置,你只需要在使用它之前设置圆角。它还可以绘制“N”形的导管。 |