明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4630|回复: 18

[已解答] 算两点间距离,并定数等分这段距离

[复制链接]
发表于 2013-5-22 12:20 | 显示全部楼层 |阅读模式
根据选取第一点,再选取第二点,算出两点间距离,然后输入定数等分数量将这段距离定数等分
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-5-22 15:56 | 显示全部楼层
  1. (defun c:tt ()
  2.   (vl-load-com)
  3.   (setvar "CMDECHO" 0)
  4.   (setq  p1 (getpoint "\n第一点:")
  5.   p2 (getpoint p1 "\n第二点:")
  6.   )
  7. ;;;两点距离
  8.   (princ
  9.     (strcat "\n****两点距离:" (rtos (distance p1 p2) 2 3))
  10.   )
  11. ;;;等分数量:
  12.   (setq n (getint "\n等分数量:"))
  13. ;;;等分子函数,根据两点点及等分数量得出等分点列表
  14.   (defun tt-df (p1 p2 n)
  15.     (if  (> (1- n) 0)
  16.       (cons (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
  17.       (tt-df (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
  18.        p2
  19.        (1- n)
  20.       )
  21.       )
  22.     )
  23.   )
  24. ;;;等分点列表
  25.   (setq lst (tt-df p1 p2 n))
  26. ;;; 起点、终点、等分点处画园
  27.   (mapcar '(lambda (x)
  28.        (vla-AddPoint
  29.          (vla-get-modelspace
  30.      (vla-get-activedocument (vlax-get-acad-object))
  31.          )
  32.          (vlax-3d-point x)
  33.        )
  34.      )
  35.     (append (list p1) lst (list p2))
  36.   )
  37.   (prin1)
  38. )

回复 支持 0 反对 1

使用道具 举报

发表于 2013-5-22 12:41 | 显示全部楼层
这个很简单的,自己琢磨一下就行了
发表于 2013-5-22 12:54 | 显示全部楼层
  1. (defun c:tt ()
  2.   (setvar "CMDECHO" 0)
  3.   (setq  p1 (getpoint "\n第一点:")
  4.   p2 (getpoint p1 "\n第二点:")
  5.   )
  6. ;;;两点距离
  7.   (princ
  8.     (strcat "\n****两点距离:" (rtos (distance p1 p2) 2 3))
  9.   )
  10. ;;;等分数量:
  11.   (setq n (getint "\n等分数量:"))
  12. ;;;等分子函数,根据两点点及等分数量得出等分点列表
  13.   (defun tt-df (p1 p2 n)
  14.     (if  (> (1- n) 0)
  15.       (cons (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
  16.       (tt-df (polar p1 (angle p1 p2) (/ (distance p1 p2) n 1.0))
  17.        p2
  18.        (1- n)
  19.       )
  20.       )
  21.     )
  22.   )
  23. ;;;等分点列表
  24.   (setq lst (tt-df p1 p2 n))
  25. ;;; 起点、终点、等分点处画园
  26.   (mapcar '(lambda (x) (vl-cmdf "CIRCLE" x 1.0))
  27.     (append (list p1) lst (list p2))
  28.   )
  29.   (prin1)
  30. )

 楼主| 发表于 2013-5-22 13:03 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2013-5-22 13:20 | 显示全部楼层
cie0588 发表于 2013-5-22 12:54

;  等分点处画点
  (mapcar '(lambda (x) (vl-cmdf "point" x ))
    (append (list p1) lst (list p2))
  )
  (prin1)
)

请问cie0588 应如何修改才能在等分点处画点?谢谢

点评

猜想您的问题需要参详 PdMode / PdSize   发表于 2013-5-22 13:29
发表于 2013-5-22 13:51 | 显示全部楼层
726613 发表于 2013-5-22 13:20
;  等分点处画点
  (mapcar '(lambda (x) (vl-cmdf "point" x ))
    (append (list p1) lst (list p2) ...

我画点一般用vla方法:(vla-AddPoint
               (vla-get-modelspace
                 (vla-get-activedocument (vlax-get-acad-object))
               )
               (vlax-3d-point x)
             )
 楼主| 发表于 2013-5-22 14:02 | 显示全部楼层
726613 发表于 2013-5-22 13:20
;  等分点处画点
  (mapcar '(lambda (x) (vl-cmdf "point" x ))
    (append (list p1) lst (list p2) ...


增加这一句:“(command "pdmode"  "3" "pdsize" "1")“
(command "pdmode"  "3" "pdsize" "1")
   (mapcar '(lambda (x) (vl-cmdf "point" x ))
    (append (list p1) lst (list p2))
  )
  (prin1)
)

应如何修改才能在等分点处画点?如下图


请高手指点,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2013-5-22 14:08 | 显示全部楼层
cie0588 发表于 2013-5-22 13:51
我画点一般用vla方法:(vla-AddPoint
               (vla-get-modelspace
                 (vla-get-activedocument (vlax- ...

我对vla一点也不懂,请问如何放在上面程序里
发表于 2013-5-22 14:13 | 显示全部楼层
;;; 起点、终点、等分点处画园
  (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))
  )
 楼主| 发表于 2013-5-22 14:32 | 显示全部楼层
cie0588 发表于 2013-5-22 14:13
;;; 起点、终点、等分点处画园
  (mapcar '(lambda (x)
             (vla-AddPoint


应如何处理?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-20 21:57 , Processed in 0.606046 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表