乐筑天下

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

[编程交流] 弧与多段线弧的角度

[复制链接]

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 09:12:27 | 显示全部楼层 |阅读模式
大家好。
 
我有一个弧,我提取了它的dxf代码加上它的角度。
  1. (0 . "ARC")
  2. (330 . <Entity name: 7ef0dcf8>)
  3. (5 . "184")
  4. (100 . "AcDbEntity")
  5. (67 . 0)
  6. (410 . "Model")
  7. (8 . "0")
  8. (100 . "AcDbCircle")
  9. (10 18.7416 8.43585 0.0)
  10. (40 . 3.50105)
  11. (210 0.0 0.0 1.0)
  12. (100 . "AcDbArc")
  13. (50 . 6.06166)
  14. (51 . 3.36312)

 
如何转换要在多段线的弧中使用的弧的角度?
 
希望有人能在编码之前给我解释一下。
 
提前感谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:26:23 | 显示全部楼层
我使用的是:
 
  1. ;; Arc to Bulge - Lee Mac 2011
  2. ;; cen  - Centre
  3. ;; ang1 - Start Angle
  4. ;; ang2 - End Angle
  5. ;; rad  - Radius
  6. ;; Returns: (<vertex> <vertex> <bulge>)
  7. (defun LM:Arc->Bulge ( cen ang1 ang2 rad )
  8. (list
  9.    (polar cen ang1 rad)
  10.    (polar cen ang2 rad)
  11.    ( (lambda ( a ) (/ (sin a) (cos a))) (/ (rem (+ pi pi (- ang2 ang1)) (+ pi pi)) 4.))
  12. )
  13. )
  14. ;; Bulge to Arc - Lee Mac 2011
  15. ;; p1   - Start Vertex
  16. ;; p2   - End Vertex
  17. ;; bulg - Bulge
  18. ;; Returns: (<centre> <start angle> <end angle> <radius>)
  19. (defun LM:Bulge->Arc ( p1 p2 bulg / cen ang rad )
  20. (setq ang (* 2.0 (atan bulg))
  21.        rad (/ (distance p1 p2) (* 2.0 (sin ang)))
  22.        cen (polar p1 (+ (- (/ pi 2.) ang) (angle p1 p2)) rad)
  23. )
  24. (if (minusp bulg)
  25.    (list cen (angle cen p2) (angle cen p1) (abs rad))
  26.    (list cen (angle cen p1) (angle cen p2) (abs rad))
  27. )
  28. )
为了解释凸出到圆弧的函数,考虑这个关系并重新排列R。
 
101229jtddtttlipttl9t0.png
 
还要注意,负凸起表示顺时针弧,因此在这种情况下,弧角必须反转,因为弧总是逆时针定义的。
 
为了解释弧到凸度函数,这使用了多段线弧的凸度是四分之一夹角的切线这一事实。
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 09:41:49 | 显示全部楼层
这些是我多年来保存下来的:
 
  1. ;;;;From Cadtutor
  2. ;For 90 degrees bulge
  3. ;tangent (90/4) = 0.4142 (+/-)
  4. ;(tan (/ (* pi 0.5) 4))
  5. ;Wizman
  6. (defun Tan (X)
  7. (if (zerop (cos X))
  8. (prompt "Tangent error.")
  9. (/ (sin X) (cos X))))
  10. ;Gile
  11. (defun tan (a) (/ (sin a) (cos a)))
  12. ; AutoLISP function to convert from Polyline "Bulge" representation
  13. ; of an arc to AutoCAD's normal "center, radius, start/end angles"
  14. ; form of arc.  This function applies the bulge between two adjacent
  15. ; vertices.  It assumes that global symbols "sp", "ep", and "bulge"
  16. ; contain the current vertex (start point), next vertex (end point),
  17. ; and bulge, respectively.  It sets the appropriate values in global
  18. ; symbols "cen", "rad", "sa", and "ea".
  19. ; by Duff Kurland - Autodesk, Inc.
  20. ; July 7, 1986
  21. (defun cvtbulge (/ cotbce x1 x2 y1 y2 temp)
  22. (setq x1 (car  sp) x2 (car  ep))
  23. (setq y1 (cadr sp) y2 (cadr ep))
  24. (setq cotbce (/ (- (/ 1.0 bulge) bulge) 2.0))
  25. ; Compute center point and radius
  26. (setq cen (list (/ (+ x1 x2 (- (* (- y2 y1) cotbce))) 2.0)
  27.                  (/ (+ y1 y2    (* (- x2 x1) cotbce) ) 2.0))
  28. )
  29. (setq rad (distance cen sp))
  30. ; Compute start and end angles
  31. (setq sa  (atan (- y1 (cadr cen)) (- x1 (car cen))))
  32. (setq ea  (atan (- y2 (cadr cen)) (- x2 (car cen))))
  33. (if (< sa 0.0)                      ; Eliminate negative angles
  34.     (setq sa (+ sa (* 2.0 pi)))
  35. )
  36. (if (< ea 0.0)
  37.     (setq ea (+ ea (* 2.0 pi)))
  38. )
  39. (if (< bulge 0.0)                   ; Swap angles if clockwise
  40.     (progn
  41.        (setq temp sa)
  42.        (setq sa ea)
  43.        (setq ea temp)
  44.     )
  45. )
  46. )
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 09:54:01 | 显示全部楼层
多段线凸起(afralisp)。浏览internet explorer
回复

使用道具 举报

55

主题

293

帖子

239

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
275
发表于 2022-7-6 10:06:25 | 显示全部楼层
非常感谢大家。
 
这肯定需要很多时间才能取得好结果。
 
谢谢。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:17:03 | 显示全部楼层
终于开始在我的网站上添加这个主题:
 
http://lee-mac.com/bulgeconversion.html
 
希望这有帮助
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 05:10 , Processed in 0.381600 second(s), 66 queries .

© 2020-2025 乐筑天下

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