李·麦克,
您将如何编写此代码?
-
- (defun c:testL (/ L1 L2 1data 2data 1A 1B 2A 2B s_t X1 X2 X3 X4 line_distance)
- (while (not (and
- (setq L1 (car (entsel "\nSelect a Line: "))
- L2 (car (entsel "\nSelect another Line: "))
- )
- )
- )
- )
- (cond
- ((setq
- 1data (entget L1)
- 2data (entget L2)
- 1A (cdr (assoc 10 1data)) ; start of first Line
- 1B (cdr (assoc 11 1data)) ; end of first Line
- 2A (cdr (assoc 10 2data)) ; start of second Line
- 2B (cdr (assoc 11 2data)) ; end of second Line
- s_t 0
- )
- (repeat 3
- (setq x1 (nth s_t 1A)
- x2 (nth s_t 1B)
- x3 (nth s_t 2A)
- x4 (nth s_t 2B)
- )
- (setq vts
- (/ (* (abs (- x3 x1))
- (* (abs (- x2 x1)) (abs (- x4 x3)))
- )
- (* (abs (- x2 x1)) (abs (- x4 x3)))
- )
- )
- (set (setq vv (read (strcat "D" (itoa (+ s_t 1))))) vts)
- (setq s_t (1+ s_t))
- )
- (setq line-distance (sqrt (+ (* d1 d1) (* d2 d2) (* d3 d3))))
- (princ)
- )
- )
- )
这是一个获得两条斜线之间最短距离的方程。。。不知怎的,我没有得到我需要的结果。。
这部分是我不确定的地方(公式)
-
- (setq line-distance (sqrt (+ (* d1 d1) (* d2 d2) (* d3 d3))))
数学arrrgh公司 |