明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1140|回复: 3

[源码] ;物体沿曲线移动

  [复制链接]
发表于 2018-6-4 00:23:51 | 显示全部楼层 |阅读模式
;物体沿曲线移动
(defun c:TT (/ en re)
    (princ "\n选择移动物体: ")
    (setq ss (ssget ":S"))
    (setq pt (getpoint "\n选择移动基准点:"))
    (princ "\n选择要物体依附基准物: ")
    (setq en (ssname (ssget ":S" '((0 . "*POLYLINE,ARC,LINE,CIRCLE,ELLIPSE,SPLINE")))0))
    (setq PP (vlax-curve-getclosestpointto en pt T))
    (initget "1 0")
    (setq XZ (getkword "\n是否旋转物体[旋转(1)/不旋转(0)]<1>:"))
    (if (= xz nil) (setq xz 1))
    (cond
    ((eq xz "1") "1")
    ((eq xz "0") "0")
        
  )
    (setq dd (distance pt pp))
    (if (< dd 1e-6)     (setq dd 0))
    (if (= dd 0)
        (progn
            (setq
                ds (angle pt
                         (vlax-curve-getFirstDeriv
                             en
                             (vlax-curve-getparamatpoint
                                 en
                                 (vlax-curve-getclosestpointto en pt)
                             )
                         )
                     )
            )
            (setq    ds (- ds (/ pi 2)))
        )
        (setq ds (angle pt pp) )
    )
    (setvar "cmdecho" 0)  
    (command "_.UNDO" "BE")
   
    (setq oldos(getvar "osmode"))
    (setvar "osmode" 0)
    (while (and (setq re (grread 5))(= (car re) 5))
        (redraw)
        (setq CZ (vlax-curve-getclosestpointto en (cadr re) T))
        (setq dsn (angle cz (cadr re) ))
        (setq CZ (polar cz dsn dd))
        (setq du1 (angtos (- dsn ds) 0 4))
        (grdraw CZ    (cadr re)    2)
        (vl-cmdf "move" ss  "" pt CZ)
        (if (eq xz "1")
            (vl-cmdf "rotate" ss "" cz du1 )
        )
        
        (setq ds dsn )
        (setq pt CZ)
    ) ;while
  (redraw)
    (setvar "osmode" oldos)
    (command "_.UNDO" "E")
    (setvar "cmdecho" 1)  
  (princ)
) ;defun
发表于 2018-6-4 03:55:47 来自手机 | 显示全部楼层
沙发顶楼主一个
发表于 2018-6-4 09:26:10 | 显示全部楼层
代码不错,谢谢楼主分享
发表于 2018-12-15 21:43:32 | 显示全部楼层
不错的帖子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 02:42 , Processed in 0.151553 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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