cie0588 发表于 2013-5-22 15:56:48

(defun c:tt ()
(vl-load-com)
(setvar "CMDECHO" 0)
(setqp1 (getpoint "\n第一点:")
p2 (getpoint p1 "\n第二点:")
)
;;;两点距离
(princ
    (strcat "\n****两点距离:" (rtos (distance p1 p2) 2 3))
)
;;;等分数量:
(setq n (getint "\n等分数量:"))
;;;等分子函数,根据两点点及等分数量得出等分点列表
(defun tt-df (p1 p2 n)
    (if(> (1- n) 0)
      (cons (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
      (tt-df (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
       p2
       (1- n)
      )
      )
    )
)
;;;等分点列表
(setq lst (tt-df p1 p2 n))
;;; 起点、终点、等分点处画园
(mapcar '(lambda (x)
       (vla-AddPoint
         (vla-get-modelspace
   (vla-get-activedocument (vlax-get-acad-object))
         )
         (vlax-3d-point x)
       )
   )
    (append (list p1) lst (list p2))
)
(prin1)
)

cie0588 发表于 2013-5-22 15:59:10

我这里没有问题的:

726613 发表于 2013-5-22 16:00:10

cie0588 发表于 2013-5-22 15:56 static/image/common/back.gif


问题已解决,谢谢

yxp 发表于 2013-5-23 01:44:28

我不懂,
为啥不用CAD的 divide 定数等分命令?这个命令甚至可以在等分处插入块,很强大的。

cie0588 发表于 2013-5-23 08:50:33

yxp 发表于 2013-5-23 01:44 static/image/common/back.gif
我不懂,
为啥不用CAD的 divide 定数等分命令?这个命令甚至可以在等分处插入块,很强大的。

如果单纯的等分,插入块,我会用这个命令
但是得出点的列表还有其他的用途的话,我会用程序来计算。
用等分的命令得出的点,虽说可以加入选择集,再进行处理,只不过我个人不喜欢这样而已。

xiabin68 发表于 2013-5-24 08:39:21

好思路,,,

dhtfm 发表于 2014-2-14 10:46:58

好用,学习了,谢谢。

hooboxu 发表于 2014-7-21 02:11:27

能变xl线么,点不好删

hooboxu 发表于 2016-7-4 23:44:02

能变xl线吗?或者长度是二点等距的直线
页: 1 [2]
查看完整版本: 算两点间距离,并定数等分这段距离