hooboxu 发表于 2016-7-26 19:23:42

以下是等分线画XL线的源码,请问怎么取消首尾的两根XL线只保留中间的.

以下是等分线画XL线的源码,请问怎么取消首尾的两根XL线只保留中间的.

(defun c:daa1 () ( c:dfx1)(princ))
(defun c:dfx1 (/ nn p1 p2 rr tt-df)
(setvar "CMDECHO" 0)
(defun tt-df (p1 p2 nn / dd rr ptn)
    (setq dd (/ (distance p1 p2) nn 1.0)
          rr (angle p1 p2)
          ptn (list p1)
    )
    (repeat (1- nn)
      (setq p1 (polar p1 rr dd)
            ptn (cons p1 ptn)
      )
    )
    (reverse(cons p2 ptn))
)
(setq p1 (getpoint "\n第一点: ")
      p2 (getpoint p1 "\n第二点: ")
      nn(getint "\n等分数量<2>")
      rr (angle p1 p2)
)
      (if (null nn) (setq nn 2))
(foreach x (tt-df p1 p2 nn)(command -s "xline" "_non" x "_non" (polar x (+ rr (* pi 0.5)) 1.0) ""))
(princ)
)


kozmosovia 发表于 2016-7-26 19:23:43

(foreach x (tt-df p1 p2 nn)(command -s "xline" "_non" x "_non" (polar x (+ rr (* pi 0.5)) 1.0) ""))
改成
(foreach x (cdr (reverse (cdr (tt-df p1 p2 nn)))) (command -s "xline" "_non" x "_non" (polar x (+ rr (* pi 0.5)) 1.0) ""))

hooboxu 发表于 2016-7-26 21:03:08

kozmosovia 发表于 2016-7-26 20:05 static/image/common/back.gif
(foreach x (tt-df p1 p2 nn)(command -s "xline" "_non" x "_non" (polar x (+ rr (* pi 0.5)) 1.0) ""))
...

太给力了.谢谢你了,兄台.
页: [1]
查看完整版本: 以下是等分线画XL线的源码,请问怎么取消首尾的两根XL线只保留中间的.