lisp最近点、多点连线,最近点画样条曲线,最近点排序,ucs用户坐标点排序

  • A+
所属分类:CAD二次开发

lisp最近点、多点连线,最近点画样条曲线,最近点排序,ucs用户坐标点排序

最近点可以有2种理解,一种是始终与一点开始计算最近点,另一种是以上一点开始计算距离,依次开始计算,这样的话就可以连成一条曲线。

直接上菜

(defun c:tt (/ lst ss n en pt lst pt1)
(setq ss (ssget '((0 . "point"))) n 0);;请选择点

(repeat (sslength ss);;循环选择
(setq en (ssname ss n);;提取图元
pt (trans(cdr (assoc 10 (entget en))) en 1);;取得点坐标 UCS
lst (cons pt lst);;加入表
n (+ n 1)
)
)

(princ lst)

(setq pt (getpoint "huojibk.com指定开始点"))
(command "spline") ;样条曲线命令
(repeat (length lst);循环计算
(setq lst (vl-sort lst
'(lambda (a b)
(> (distance a pt) (distance b pt));最近点排续
)
)
)
(setq pt1 (last lst));最后一个
(command pt pt1 )
(setq pt (last lst))
(setq lst (cdr(reverse lst)))
)
(command "" "" "")
)

复制

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • 耐思 耐思 0

      非常好!受益匪浅