乐筑天下

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

[编程交流] 绘制圆顶

[复制链接]

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 20:15:02 | 显示全部楼层 |阅读模式
我在协调方面也有同样的问题。我的代码有这样的错误:“错误:错误的参数类型:2D/3D点:nil”
 
  1. (defun dtr (a)
  2. (* pi (/ a 180.00))
  3. )
  4. (defun rtd (a)
  5. (/ (* a 180.00) pi)
  6. )
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. (defun c:Dome ()
  9. (setq osm (getvar "osmode"))
  10. (setq dK (getdist   "\nDiameter of dome: "))
  11. (setq hv (getreal   "\nHeight of dome: "))
  12. (setq n (getint       "\nNumber of grid: "))
  13. (setq p1 (getpoint "\nBase point: "))
  14. (setq goc (/ 360 n))
  15. (setq alpha (dtr  goc ))
  16. ;(setq beta  (dtr (- 180 goc)) )
  17. (setq beta  (dtr  (/ (- 180 goc) 2) ))
  18. (setvar "cmdecho" 1)
  19. (setvar "osmode" 0)
  20. (setq p2 ( polar p1 (* 0 pi)  dK) )
  21. (setq pc (mid p1 p2))
  22. (setq ra  (distance p1 pc))
  23. (setq canh (* 2 ra  (sin (/ alpha 2) )) )
  24. (setq p3  (polar p1 beta  canh ))
  25. (setq  x1      (car pc)
  26.       y1     (cadr pc)
  27.       z1     (caddr pc) )
  28. (setq  z2  (+ z1 hv))
  29. (setq pdc (list  x1 y1 z2))
  30. (command  "line" p1 p3 "" )
  31. (setq s1 (entlast))
  32. (command  "-array" s1  ""  "p" pc  n "" "" )
  33. (command "_.ucs" "zaxis"  zo pdc)
  34. (setq zo (trans zo 0 1))
  35. (setq phi (/ 180 8 ))
  36. (setq phi (dtr  phi ))
  37. (setq canh2 (* 2 ra  (sin (/ phi 2) )) )
  38. (setq r2 (/ (+ (* dk dk) (* 4 (* hv hv)) ) (* 8 hv)) ) ; ban kinh cua vom
  39. (setq  zo  (- z2 r2))
  40. (setq oc (list  x1 y1 zo))
  41. (setq deta  (dtr  (/ (- 180 phi) 2) ))
  42. (setq zeta  (angle p1 zo))
  43. (setq zeta1 (abs (- deta zeta)))
  44. (setq zd1   (*  r2 (sin zeta1) ))
  45. (setq zeta2 (abs (- zeta1 phi)))
  46. (setq zd2   (+ zd1 (*  r2 (sin (rtd zeta2)) )))
  47. (setq zeta3  (abs (- zeta1 phi)))
  48. (setq zd3   (+ zd2 (*  r2 (sin (rtd zeta3)) )))
  49. (setq xd1 (*  r2 (cos (rtd zeta1)) ))
  50. (setq xd2 (*  r2 (cos (rtd zeta2)) ))
  51. (setq xd3 (*  r2 (cos (rtd zeta3)) ))
  52. (setq pd2 (list  xd1 y1 zd1))
  53. (setq pd3 (list  xd2 y1 zd2))
  54. (setq pd4 (list  xd3 y1 zd3))
  55. (command  "line" p1 pd2 "")
  56. (setq s2 (entlast))
  57. (command  "line" pd2 pd3 "")
  58. (setq s3 (entlast))
  59. (command  "line" pd3 pdc "")
  60. (setq s4 (entlast))
  61. (command  "-array"  s2  s3 s3 ""  "p" pc  n "" "" )
  62. (command "_.ucs"  "p" )
  63. (setvar "osmode" osm)
  64. (princ)
  65. )
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

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

铜币
474
发表于 2022-7-5 20:53:03 | 显示全部楼层
(defun dtr(a)(*pi(/a180.00))(defun rtd(a)(/(*a180.00)pi))[颜色=洋红色](defun mid(p1 p2)(list(/(+(car p1)(car p2))2)(/(+(cadr p1)(cadr p2))2)(/(+(caddr p1)(caddr p2))2))[/颜色];;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(defun c:dome()(setq osm(getvar“osmode”))(setq dK(getdist”\n dome的参数:)(setq hv(getreal”\n dome的高度:)(setq n(getint”\n网格数:)(setq p1(getpoint“\n基点:)(setq goc(/360 n))(setq alpha(dtr goc));(setq beta(dtr(-180 goc)))(setq beta(dtr(/(-180 goc)2))(setvar“cmdecho”1)(setvar“osmode”0)(setq p2(polar p1(*0 pi)dK))[color=洋红色](setq pc(mid p1 p2))[/color(setq ra(distance p1 pc))(setq canh(*2 ra(sin(/alpha 2)))(setq p3(polar p1 beta canh))(setq x1(car pc)y1(cadr pc)z1(caddr pc))(setq zq 2(+z1 hv))(setq pdc(列表x1 y1 z2))(命令行)p1 p3“”)(setq s1(entlast))(命令“-array“s1”“p”pc n“”)[color=洋红色];----->(setq zo(反式zo 0 1));
回复

使用道具 举报

2

主题

4

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 21:21:37 | 显示全部楼层
谢谢我有中点函数,但我忘了。谢谢你的帮助。让我测试一下。
 
......
 
在我运行它之后。所以它仍然有点误差。只画下面的边界,不画圆顶的曲线
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 08:59 , Processed in 0.489252 second(s), 58 queries .

© 2020-2025 乐筑天下

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