明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: hoot6335

CAD中怎么才能使圆与样条始终相切

  [复制链接]
 楼主| 发表于 2012-7-10 20:23:19 | 显示全部楼层
Gu_xl 发表于 2012-7-10 20:06
CAD2004上运行效果最佳!
机械行业我是外行!所以不知道你所说的凸轮旋转角度是什么意思!
写这个程序仅 ...

恩 我的意思是:加载代码,运行命令后,指定凸轮旋转多少度(度数自己输入)。比如:输入30度,凸轮逆时针旋转30度后,停在该位置;输入-30度,凸轮顺时针旋转30度后,停在该位置。
你的程序现在是360度周而复始旋转的。

点评

去13楼重新下载,可以输入角度!  发表于 2012-7-10 21:27
发表于 2012-7-10 20:30:04 | 显示全部楼层
The thinking is the key
 楼主| 发表于 2012-7-10 21:45:46 | 显示全部楼层
本帖最后由 hoot6335 于 2012-7-10 21:47 编辑
hoot6335 发表于 2012-7-10 20:23
恩 我的意思是:加载代码,运行命令后,指定凸轮旋转多少度(度数自己输入)。比如:输入30度,凸轮逆时针 ...


G版,测试了下~~输入30度后,凸轮实际上旋转了30.1606度(精确到小数点4位)——见附件的图片,为什么不是30度呢?
另外:“摆动角度(度数)”应该改为“旋转角度(度数)”

本帖子中包含更多资源

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

x

点评

已更新,请重新下载程序!  发表于 2012-7-10 22:34
 楼主| 发表于 2012-7-10 22:47:56 | 显示全部楼层
重新下载测试了下~完美~谢谢G版!!
另外,关于代码运行中鼠标移动视角窗口就换到其他地方,原来是CAD刷新的问题~~运行过程中按F5刷新即可解决~~
再次谢谢G版
发表于 2012-7-11 11:55:53 | 显示全部楼层
花了几个小时用犀牛软件做了一个。

本帖子中包含更多资源

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

x
 楼主| 发表于 2012-7-11 19:00:09 | 显示全部楼层
LLXXZZ 发表于 2012-7-11 11:55
花了几个小时用犀牛软件做了一个。

呵呵 ~~谢谢啦
~三维软件做这种运动模拟是很容易的~~我就是想用二维的CAD也能做运动模拟~~

点评

换个软件实现目标快一点.不能只靠cad. 犀牛软件本身也不会运动,用犀牛也写了一些代码.  发表于 2012-7-12 12:45
发表于 2012-7-11 19:34:49 | 显示全部楼层
佩服啊,太强大了!
发表于 2012-7-13 12:17:42 | 显示全部楼层
G版的答案很有意思啊!
发表于 2012-7-14 02:24:53 | 显示全部楼层
本帖最后由 chlh_jd 于 2012-7-14 02:32 编辑

我简单写了个,实例可以把精度设得更高些,另外通过grread和总用时控制退出机制可以改进下。
  1. ;;测试(defun c:test
  2.        (/ ss tl gz cz c r p10 p11 c0 r0 lm zsc tt0 t0 t1 tzs tl_p0)
  3.   (prompt "\n选择凸轮转动对象集:")
  4.   (if (and
  5. (setq ss (ssget))
  6. (setq
  7.    tl (cadar
  8.         (vl-remove-if-not
  9.    (function
  10.      (lambda (x)
  11.        (and (= (type (cadr x)) 'ENAME)
  12.      (= (cdr (assoc 0 (entget (cadr x)))) "SPLINE")
  13.        )
  14.      )
  15.    )
  16.    (ssnamex ss)
  17.         )
  18.       )
  19. )
  20. (setq tl_p0 (getpoint "\n选择凸轮转心:"))
  21. (listp tl_p0)
  22. (or (setq zsc (getreal "\n输入凸轮每转过1度的用时(ms毫秒)<10>:"))
  23.      (setq zsc 10.)
  24. )
  25. (setq gz (car (entsel "\n选择滚子圆"))
  26.        cz (car (entsel "\n选择传力轴直线:"))
  27. )
  28.       )
  29.     (progn
  30.       (setq gz (entget gz)
  31.      cz (entget cz)
  32.      c (cdr (assoc 10 gz))
  33.      r (cdr (assoc 40 gz))
  34.      p10 (cdr (assoc 10 cz))
  35.      p11 (cdr (assoc 11 cz))
  36.      R0 (distance p10 p11)
  37.       )
  38.       (if (< (distance p10 c) (distance p11 c))
  39. (setq lm 10
  40.        C0 p11
  41. )
  42. (setq lm 11
  43.        C0 p10
  44. )
  45.       )
  46.       (setq tt0 (getvar "MilliSecs")
  47.      t0 tt0
  48.      tzs (* 360. 4. zsc)
  49.       )
  50.       (while (and (setq pt (grread t 4 2))
  51.     (= (car pt) 5)
  52.     (setq t1 (getvar "MilliSecs"))
  53.     (< (- t1 tt0) tzs)
  54.       )
  55. (if (> (- t1 t0) zsc)
  56.    (progn
  57.      (setq t0 t1)
  58.      (command "_rotate" ss "" tl_p0 1.)
  59.      (setq c (ss:get_c c0 r0 c r tl 1e-1))
  60.      (entmod (subst (cons 10 c) (assoc 10 gz) gz))
  61.      (entmod (subst (cons lm c) (assoc lm cz) cz))
  62.    )
  63. )
  64.       )
  65.     )
  66.     (princ "\n参数错误或对象不足!")
  67.   )
  68.   (princ)
  69. )
  70. ;;;核心函数
  71. ;;;滚子与凸轮求切
  72. (defun ss:get_c (c0 r0 c r tl eps / p p1 d a b)
  73.   ;;高效求凸轮滚子与凸轮切点函数
  74.   ;; get_c
  75.   ;; c0 —— 传力轴转心
  76.   ;; r0 —— 滚子到传力转心的距离
  77.   ;; c  —— 滚子初始圆心
  78.   ;; r  —— 滚子半径
  79.   ;; tl —— 凸轮外轮廓线图元名
  80.   ;; eps —— 允许误差
  81.   ;; by GSLS(SS) 2012-07-14
  82.   (setq a (angle c0 c))
  83.   (while (and (setq p (polar c0 a r0))
  84.        (setq p1 (vlax-curve-getclosestpointto tl p))
  85.        (not (equal (setq d (distance p p1)) r eps))
  86.   )
  87.     (setq b (/ (- d r) 2. pi r0))
  88.     (setq a (+ a b))
  89.   )
  90.   p
  91. )

本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +1 金钱 +55 收起 理由
hoot6335 + 5
yoyoho + 1 + 50 很给力!

查看全部评分

发表于 2012-7-14 08:46:45 | 显示全部楼层
太强大了吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-8 03:50 , Processed in 0.185508 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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