乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 28|回复: 5

[综合讨论] 精确渐开线。

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-7 16:02:53 | 显示全部楼层 |阅读模式
我正在绘制一个齿轮,现在我需要连接点来绘制一个齿轮齿的渐开线:
http://i46.tinypic.com/1o6fls.png
 
点已编号。我试着用样条曲线画图,但我不知道把样条曲线的最后一点放在哪里来画一个精确的渐开线-例如-如果我像这样画,然后按enter键-我会得到这个样条曲线:
 
http://i46.tinypic.com/546ttv.png
 
但如果我将光标移到不同的方向,然后按enter键,我仍然会得到几乎相同的样条曲线,但仍然不相同:
http://i48.tinypic.com/2le1c3m.png
 
那么,如何绘制精确的渐开线呢?也许我应该再画一个点,然后停止绘制样条曲线?
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-7 16:19:06 | 显示全部楼层
如果你从公式中得到了点,那么是的,你可以在顶部计算更多的点来提高精度。
关于样条曲线:如果移动一个点,曲线将获得不同的形状。离变化点越远,变化越小。理论上,整个曲线都会发生变化,但使用足够多的点,变化量可以足够小。
我的建议是:在顶部使用一个附加点来结束曲线,再使用一个点(当然,使用相同的公式计算)作为切线方向。
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-7 16:37:19 | 显示全部楼层
谢谢
嗯,我在按书做渐开线-它是公式和图形方法的混合,所以我只计算了更多的点,得到了样条曲线。可悲的是,我的齿轮出了问题。。不适合。
另一个小问题-如何绘制样条曲线上某个点的切线?就像这样:
http://i47.tinypic.com/33lo5xc.png
 
我在这里读到,你可以用偏移来实现这一点,但这还不够准确,因为从一个图中,我需要计算一些未知量。睡懒觉实际上也不管用。
回复

使用道具 举报

2

主题

14

帖子

12

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-7 16:42:38 | 显示全部楼层
可以使用切线捕捉。使用“开始直线”命令创建一个圆(任意大小)。选择屏幕上的任意位置,按住键盘上的shift键,然后用鼠标右键单击。你应该得到一个浮动菜单,上面有捕捉选项。选择切线捕捉并拾取圆上的某个位置。这条线现在应该与圆相切。如果在按住shift键并单击鼠标右键时未显示浮动菜单,请在命令行中键入osnap,并勾选“切线捕捉”框,使其始终处于启用状态。也可以绘制一条与两个圆相切的线。在图形中存在两个圆的情况下,启动line命令,并(假设具有永久的切线捕捉)单击第一个圆。什么也不会发生,因为这是一个延迟的快照,正在等待第二个点。单击第二个圆和与两个圆均相切的线。
170256yn1pp17z999n23z3.jpg
170254ldu8fi7i8z0gyyy8.jpg
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-7 16:59:23 | 显示全部楼层
我知道如何在圆中做,但问题是-我需要在样条曲线上做。我有这样的图:
http://i45.tinypic.com/1zgu5q0.png
 
其点与样条线连接。现在我需要让每个点都相切:
 
http://i50.tinypic.com/104i5nt.png
 
捕捉结果如下(我选择了右移切线,然后按下一个点):
http://i49.tinypic.com/dd0nm.png
 
所以,也许我没有正确使用快照,或者有人知道怎么做?
回复

使用道具 举报

0

主题

375

帖子

385

银币

限制会员

铜币
-7
发表于 2022-7-7 17:06:26 | 显示全部楼层
潜伏,
这将绘制样条曲线(我希望是齿轮的正确轮廓)
  1. (defun c:gear (/ e o r a i l)
  2. (if
  3.    (and
  4.      (setq e (car (entsel)))
  5.      (eq (cdr (assoc 0 (setq e (entget e)))) "CIRCLE")
  6.      )
  7.     (progn
  8.       (setq o (cdr (assoc 10 e))
  9.             r (cdr (assoc 40 e))
  10.             a (/ pi 180)
  11.             i -1)
  12.       (repeat 360
  13.         (setq l (cons (polar (polar o (* a (setq i (1+ i))) r) (- (* a i) (/ pi 2)) (* a i r)) l))
  14.       )
  15.       (entmake
  16.           (append
  17.             (list
  18.               '(0 . "SPLINE")
  19.               '(100 . "AcDbEntity")
  20.               '(100 . "AcDbSpline")
  21.               '(70 . 40)
  22.               '(71 . 3)
  23.               (cons 74 (length l))
  24.               '(44 . 1.0e-010)
  25.             )
  26.             (mapcar '(lambda (x) (cons 11 x)) l)
  27.           )
  28.         )
  29.       )
  30.     )
  31. (princ)
  32. )
这将绘制曲线的切线
  1. (defun c:tgl (/ vs unit e p l d)
  2. (vl-load-com)
  3. (defun unit (l / d)
  4.    (if (> (setq d (distance '(0 0 0) l)) 0.0)
  5.      (mapcar '(lambda (x) (/ x d)) l)
  6.    )
  7. )
  8. (defun vs (v s)
  9.    (mapcar '(lambda (x) (* x s)) v)
  10. )
  11. (if
  12.    (and
  13.      (setq e (ssget "_:E:S" '((0 . "*POLYLINE,SPLINE,ARC,CIRCLE,ELLIPSE"))))
  14.      (setq e (ssname e 0))
  15.      (not (redraw e 3))
  16.      (setq p (getpoint "\nSelect point on object: "))
  17.      (equal p (setq p (vlax-curve-GetClosestPointTo e p)) 1e-10)
  18.      (not (redraw e 4))
  19.    )
  20.    (progn
  21.      (setq l (* 0.1 (vlax-curve-GetDistAtParam e (vlax-curve-GetEndParam e)))
  22.            d (vs (unit (vlax-curve-GetFirstderiv e (vlax-curve-GetParamAtPoint e p))) l)
  23.      )
  24.      (entmake
  25.        (list
  26.          '(0 . "line")
  27.          (cons 10 (mapcar '- p d))
  28.          (cons 11 (mapcar '+ p d))
  29.        )
  30.      )
  31.    )
  32. )
  33. (princ)
  34. )
170300qxscctxd5ntcrthc.png
您可能需要调整这些功能以满足您的需要。
第一个是绘制一条完整的曲线,因为它穿过整个圆。显然,你不需要这样。
第二条将绘制一条长度等于所选曲线20%的线,但可以进行调整。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 20:58 , Processed in 1.051171 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表