明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 528|回复: 4

[源码] 沿曲线上两点移动对象

[复制链接]
发表于 2024-2-29 08:37 | 显示全部楼层 |阅读模式
  1. ;;;[功能]沿曲线移动 Move by curve=============================================
  2. (defun C:Mee (/ ANG ANG1 ANG2 D0 D1 D2 DIS E0 P1 P2 SS)
  3.   ;;(alert "沿曲线移动对象:\n 沿曲线上两点移动")
  4.   (if (and
  5.         (setq ss (LM:ssget "\n >移动对象:" '(((0 . "*")))))
  6.         (setq e0 (Fsxm-entsel "\n >>选择曲线:"
  7.                               '((0 . "*LINE,ARC,CIRCLE,ELLIPSE"))
  8.                  )
  9.         )
  10.         (setq p1 (getpoint "\n >>>移动基点:"))
  11.         (setq p2 (getpoint "\n >>>移动到:"))
  12.       )
  13.     (progn
  14.       (setq e0 (car e0))
  15.       (setq p1 (vlax-curve-getclosestpointto e0 p1))
  16.       (setq p2 (vlax-curve-getclosestpointto e0 p2))
  17.       (setq d0        (- (vlax-curve-getDistAtPoint e0 p2)
  18.                    (vlax-curve-getDistAtPoint e0 p1)
  19.                 )
  20.       )
  21.       (setq dis (getreal (strcat "\n 移动距离<" (VL-PRINC-TO-STRING d0) ">:")))
  22.       (if (not dis)
  23.         (setq dis d0)
  24.         ;;输入dis后,计算新p2
  25.         (progn          
  26.           (setq d1 (vlax-curve-getDistAtPoint e0 p1))
  27.           (setq d2 (+ d1 dis))          
  28.           (setq p2(vlax-curve-getPointAtDist e0 d2))
  29.         )
  30.       )

  31.      (setq ang1 (vlax-curve-getParamAtPoint e0 p1))
  32.      (setq ang1 (vlax-curve-getFirstDeriv e0 ang1))
  33.      (setq ang1 (angle ang1 '(0 0 0)))
  34.      (setq ang2 (vlax-curve-getParamAtPoint e0 p2))
  35.      (setq ang2 (vlax-curve-getFirstDeriv e0 ang2))
  36.      (setq ang2 (angle ang2 '(0 0 0)))
  37.      (setq ang (/ (* (- ang2 ang1) 180) pi))     
  38.       (ACET-UNDO-BEGIN)
  39.       (vl-cmdf "_.move" ss "" "non" p1 "non" p2)
  40.       (vl-cmdf "._rotate" ss "" "non" p2 ang)
  41.       (ACET-UNDO-END)
  42.     )
  43.   )
  44.   (princ "\n沿曲线上两点移动对象 Mee")
  45.   (princ)
  46. )
  47. (princ "\n 沿曲线上两点移动对象 Mee")
  48. (princ)
  49. ;;;[功能]沿曲线移动 Move by curve=============================================
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-2-29 08:51 | 显示全部楼层
似乎是把一个对象从曲线的一点移动到另一点,移到终点后还根据曲线的位置改变对象的方向。
发表于 2024-2-29 19:04 | 显示全部楼层
no function definition: LM:SSGET   缺少的函数在哪里呢
发表于 2024-3-2 10:05 | 显示全部楼层
运行不起来,命令能输入,但会提示函数取消。
发表于 2024-3-3 13:37 | 显示全部楼层
沿曲线移动实体

本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 收起 理由
weimeng555 + 1 很给力!
panliang9 + 1 帅啊,

查看全部评分

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

本版积分规则

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

GMT+8, 2024-5-4 16:54 , Processed in 0.378450 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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