jhzlx 发表于 2016-6-11 10:37:45

指定起点终点连接PL线

求助:指定起点终点连接PL线

香田里浪人 发表于 2016-6-12 11:34:04

用附件程序,自己再修改一下。

song宋_74729 发表于 2022-9-5 15:06:27

荒野孤行作品
;;;连点成线
(defun c:t1 (/ ptlist)
(setvar "blipmode" 0)
(setvar "pickfirst" 1)
(setvar "expert" 0)
(setvar "GRIPOBJLIMIT" 50)
(setvar "osmode" 15359)
(setvar "cmdecho" 0)
(princ "\n★功能:将邻近的点连接为一条曲线。\n")
(vl-load-com)
(princ "\n请选择要连接的点对象:\n")
(command "undo" "be")
(setq ss (ssget '((0 . "POINT"))))
(if (null ss)
    (progn (princ "\n提示:未选取点对象!") (exit))
)
(initget "P S")
(if (not
      (setq kw
               (getkword
               "曲线样式:[多段线(P)/样条曲线(S)]<S>"
               )
      )
      )
    (setq kw "S")
)
(setq i 0)
(setvar "osmode" 0)
(repeat (sslength ss)
    (setq entnam (entget (ssname ss i))
          pt         (cdr (assoc 10 entnam))
          ptlist (cons pt ptlist)
          i         (1+ i)
    )
)
(setq      ptlist (vl-sort      ptlist
                        '(lambda (e1 e2)
                           (if (equal (car e1) (car e2) 1e-5)
                           (if (equal (cadr e1) (cadr e2) 1e-5)
                               (< (cadr e1) (cadr e2))
                               (< (car e1) (car e2))
                           )
                           )
                         )
               )
)
(if (= kw "P")
    (progn
      (command "pline")
      (foreach pt ptlist (command pt))
      (command "")
    )
    (progn
      (command "spline")
      (foreach pt ptlist (command pt))
      (command "" "" "")
    )
)
(setvar "osmode" 15359)
(command "undo" "e")
(princ)
)

页: [1]
查看完整版本: 指定起点终点连接PL线