乐筑天下

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

[编程交流] lisp程序中的一些帮助

[复制链接]

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:32:54 | 显示全部楼层
这里是一个约束示例,可以看到rad3控制孔径,其他直径由内部rad控制,公式可以是rad1*5/3
 
235821tm4zdl2c3blq2crb.jpg
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:33:51 | 显示全部楼层
我仍在2012版中,所以无法打开该文件。您需要将其保存回2010年的格式,以便我能够查看。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:36:28 | 显示全部楼层
只需查看图像不需要dwg,就可以看到使用约束创建的规则,例如孔半径等于一个孔的变化,而其他所有孔的变化。
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:40:25 | 显示全部楼层
你如何解释所需的洞数?此外,他还需要一个侧面视图。我不知道是否有人愿意免费为他做这件事,至少在他要求的范围内。
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:45:00 | 显示全部楼层
Lisp10.dwgTry此
回复

使用道具 举报

2

主题

389

帖子

387

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:48:02 | 显示全部楼层
我看了你上传的图纸,但我不明白你真正想要什么。我关于想要侧视图的评论是指你,也就是说,你需要俯视图和侧视图,实际上是剖视图,而不仅仅是俯视图。
 
如果你真的想学习这一点的话,你可能不会很难做到这一点。我能帮助的是基本的AutoLISP,没有反应器。如果您需要一个可以根据用户输入绘制对象的LISP例程,我可以提供帮助。但您需要使用值表来说明可能的组合是什么。例如,如果外半径在100到120之间,则将有4个孔,它们将为R5。将所有这些信息制成表格,以便清楚地知道您的程序需要做什么。
 
如果您需要创建一个在更改几何体时自动更新的图形,那么我不知道如何使用LISP帮助您。在这种情况下,动态闭塞路线可能适用于您。
 
如果您只需要使用LISP绘制一个具有固定尺寸的图形,这是可能的,但听起来不像是需要编程的东西。你提交的图纸表明这就是你所需要的。如果不是,那么你需要分享其余的信息。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:51:38 | 显示全部楼层
N73dp你试过在这里搜索法兰吗?同时谷歌“法兰lisp”
 
我有点惊讶一个动态块还没有上传到至少做平面图作为一个例子,我不做很多机械的东西,或者我相信我会有一个4孔法兰只是坐在那里。
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:54:06 | 显示全部楼层
我已经做了。。。它正在按我需要的方式工作。
  1. (setq K_radius(getreal "Радиус крышки") K_circle_count(getint "Колличество отверстий"))
  2. (setq K_center (list 3200 4100))
  3. (setq K_radius_inLL (- K_radius (* K_radius (/ 3.0 5.0))))
  4. (setq K_radius_inL (- K_radius (* K_radius (/ 4.0 5.0))))
  5. (setq K_radius_inF (/ K_radius (/ 5.0 7.0)))
  6. (setq K_radius_inS (- K_radius_inF (- K_radius K_radius_inF)))
  7. (setq K_rad_in_dist (- K_radius_inS K_radius_inF))
  8. (setq K_circl_in_x (nth 0 K_center))
  9. (setq K_circl_in_y (+ (nth 1 K_center) (- K_radius_inS (/ K_rad_in_dist 2.0))))
  10. (setq K_circl_point (list K_circl_in_x K_circl_in_y))
  11. (setq K_circl_rad (- (/ K_rad_in_dist 2.0) (/ K_radius_inS 20.0)))
  12. (setq K_up_h (/ K_radius 4.0))
  13. (setq dist_test (/ K_rad_in_dist 2.0))
  14. (setq K_otv_r (+ dist_test K_circl_rad))
  15. (setq K_otv_l (- dist_test K_circl_rad))
  16. (setq K_circl_mass_point (list K_circl_in_x (+ K_circl_in_y K_circl_rad)))
  17. (setq K_circl_inL_x (nth 0 K_center))
  18. (setq K_circl_inL_y (+ (nth 1 K_center) K_radius_inL))
  19. (setq K_circl_inLL_x (nth 0 K_center))
  20. (setq K_circl_inLL_y (+ (nth 1 K_center) K_radius_inLL))
  21. (setq K_circl_inL_point (list K_circl_inL_x K_circl_inL_y))
  22. (setq K_circl_inLL_point (list K_circl_inLL_x K_circl_inLL_y))
  23. (command "ТИПЛИН" "У" "ПоСлою" "")
  24. (command "КРУГ" K_circl_point K_circl_rad)
  25. (command "МАССИВКРУГ" "П" "" K_center "О" K_circle_count "" "Ы")
  26. (command "КРУГ" K_center K_radius_inL)
  27. (command "КРУГ" K_center K_radius_inLL)
  28. (command "ТИПЛИН" "У" "ACAD_ISO03W100" "")
  29. (command "КРУГ" K_center K_radius)
  30. (command "ТИПЛИН" "У" "ПоСлою" "")
  31. (command "КРУГ" K_center K_radius_inF)
  32. (command "КРУГ" K_center K_radius_inS)
  33. (command "ШТРИХ" "SOLID" K_circl_inL_point K_circl_inLL_point "")
  34. (setq Point_up_side_center (list (nth 0 K_center)(+ (nth 1 K_center)(* 1.5 K_radius_inS))))
  35. (setq Point_2_up_side_right (list (+(nth 0 Point_up_side_center) K_radius_inS)(nth 1 Point_up_side_center)))
  36. (command "ОТРЕЗОК" Point_up_side_center Point_2_up_side_right "")
  37. (setq Point_3_up_side_right_up (list (nth 0 Point_2_up_side_right)(+ K_up_h (nth 1 Point_2_up_side_right))))
  38. (command "ОТРЕЗОК" Point_2_up_side_right Point_3_up_side_right_up "")
  39. (setq Point_4_up_side_r_u_l (list (- (nth 0 Point_3_up_side_right_up) (- K_radius_inS K_radius_inF))(nth 1 Point_3_up_side_right_up)))
  40. (command "ОТРЕЗОК" Point_3_up_side_right_up Point_4_up_side_r_u_l "")
  41. (setq Point_5_up_center_up (list (nth 0 Point_4_up_side_r_u_l)(+ (nth 1 Point_4_up_side_r_u_l) K_up_h)))
  42. (command "ОТРЕЗОК" Point_4_up_side_r_u_l Point_5_up_center_up "")
  43. (setq Point_6_up_up_center (list (nth 0 Point_up_side_center)(nth 1 Point_5_up_center_up)))
  44. (command "ОТРЕЗОК" Point_5_up_center_up Point_6_up_up_center "")
  45. (setq Point_7_up_up_left (list (- (nth 0 Point_6_up_up_center) K_radius_inF)(nth 1 Point_6_up_up_center)))
  46. (command "ОТРЕЗОК" Point_6_up_up_center Point_7_up_up_left "")
  47. (setq Point_8_up_left_down (list (nth 0 Point_7_up_up_left)(- (nth 1 Point_7_up_up_left) K_up_h)))
  48. (command "ОТРЕЗОК" Point_7_up_up_left Point_8_up_left_down "")
  49. (setq Point_9_up_left_left (list (- (nth 0 Point_8_up_left_down) (- K_radius_inS K_radius_inF))(nth 1 Point_8_up_left_down)))
  50. (command "ОТРЕЗОК" Point_8_up_left_down Point_9_up_left_left "")
  51. (setq Point_10_up_left_down (list (nth 0 Point_9_up_left_left)(-(nth 1 Point_9_up_left_left) K_up_h)))
  52. (command "ОТРЕЗОК" Point_9_up_left_left Point_10_up_left_down "")
  53. (setq Point_11_up_left_down_center (list (+ (nth 0 Point_10_up_left_down) (- K_radius_inS K_radius))(nth 1 Point_10_up_left_down)))
  54. (command "ОТРЕЗОК" Point_10_up_left_down Point_11_up_left_down_center "")
  55. (setq Point_12_up_center_center_left (list (nth 0 Point_11_up_left_down_center)(+ (nth 1 Point_11_up_left_down_center) K_up_h)))
  56. (command "ОТРЕЗОК" Point_11_up_left_down_center Point_12_up_center_center_left "")
  57. (setq Point_13_center_center_center (list (+ (nth 0 Point_12_up_center_center_left) K_radius)(nth 1 Point_12_up_center_center_left)))
  58. (command "ОТРЕЗОК" Point_12_up_center_center_left Point_13_center_center_center "")
  59. (command "ОТРЕЗОК" Point_13_center_center_center Point_4_up_side_r_u_l "")
  60. (command "ОТРЕЗОК" Point_6_up_up_center Point_up_side_center "")
  61. (setq K_faska_1_d (list (nth 0 Point_5_up_center_up)(- (nth 1 Point_5_up_center_up) (* 0.5 (* 0.5 K_up_h)))))
  62. (setq K_faska_1_l (list (- (nth 0 Point_5_up_center_up) (* 0.5 (* 0.5 K_up_h))) (nth 1 Point_5_up_center_up)))
  63. (setq K_faska_2_ur (list (+ (nth 0 Point_7_up_up_left) (* 0.5 (* 0.5 K_up_h))) (nth 1 Point_7_up_up_left)))
  64. (setq K_faska_2_ud (list (nth 0 Point_7_up_up_left) (- (nth 1 Point_7_up_up_left) (* 0.5 (* 0.5 K_up_h)))))
  65. (setq K_faska_3_dr (list (+ (nth 0 Point_12_up_center_center_left) (* 0.5 (* 0.5 K_up_h)))(nth 1 Point_12_up_center_center_left)))
  66. (setq K_faska_3_dd (list (nth 0 Point_12_up_center_center_left) (- (nth 1 Point_12_up_center_center_left) (* 0.5 (* 0.5 K_up_h)))))
  67. (setq Point_otv_ur (list (+ (nth 0 Point_9_up_left_left) K_otv_r) (+ (nth 1 Point_up_side_center) K_up_h)))
  68. (setq Point_otv_dr (list (+ (nth 0 Point_9_up_left_left) K_otv_r) (nth 1 Point_up_side_center)))
  69. (setq Point_otv_ul (list (- (nth 0 Point_otv_ur) (* 2.0 K_circl_rad))(nth 1 Point_otv_ur)))
  70. (setq Point_otv_dl (list (- (nth 0 Point_otv_dr) (* 2.0 K_circl_rad))(nth 1 Point_otv_dr)))
  71. (command "ОТРЕЗОК" Point_otv_ur Point_otv_dr "")
  72. (command "ОТРЕЗОК" Point_otv_ul Point_otv_dl "")
  73. (command "ТИПЛИН" "У" "ACAD_ISO03W100" "")
  74. (command "ОТРЕЗОК" Point_up_side_center Point_11_up_left_down_center "")
  75. (command "ТИПЛИН" "У" "ПоСлою" "")
  76. (setq point_shtrih_1 (list (+ (nth 0 Point_9_up_left_left) 2)(- (nth 1 Point_9_up_left_left) 2)))
  77. (command "ШТРИХ" "SOLID" K_circl_inL_point K_circl_inLL_point "")
  78. (command "СОПРЯЖЕНИЕ" "Д" (* 0.5 K_up_h))
  79. (command "СОПРЯЖЕНИЕ" K_faska_1_d K_faska_1_l)
  80. (command "СОПРЯЖЕНИЕ" K_faska_2_ur K_faska_2_ud)
  81. (command "СОПРЯЖЕНИЕ" K_faska_3_dr K_faska_3_dd)
  82. (command "ТИПЛИН" "У" "ACAD_ISO03W100" "")
  83. (setq k_line (list(nth 0 Point_up_side_center) (- (nth 1 Point_up_side_center) (* 0.5 K_up_h))))
  84. (setq k_line2 (list(nth 0 Point_6_up_up_center) (+ (nth 1 Point_6_up_up_center) (* 0.5 K_up_h))))
  85. (command "ОТРЕЗОК" k_line k_line2 "")
  86. (setq s_line (list(+ K_circl_rad (nth 0 Point_otv_ul)) (+ (nth 1 Point_otv_ul) (* 0.5 K_up_h))))
  87. (setq s_line2 (list(+ K_circl_rad (nth 0 Point_otv_ul)) (- (nth 1 Point_otv_dl) (* 0.5 K_up_h))))
  88. (command "ОТРЕЗОК" s_line s_line2 "")
  89. (command "ТИПЛИН" "У" "ПоСлою" "")
  90. (command "_.bhatch" "Свойства" "ANSI31" 0.5 "" Point_12_up_center_center_left "")
  91. (setq Point10_1 (list (+ (nth 0 Point_10_up_left_down) 10.0)(+ (nth 1 Point_10_up_left_down) 10.0)))
  92. (command "_.bhatch" "Свойства" "ANSI31" 0.5 "" Point10_1 "")

你能帮我在其他细节上做同样的事情吗?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:55:30 | 显示全部楼层
你需要看看POLAR命令是如何工作的,然后很容易画线,最后做圆角。我会在一张纸上手工绘制pt编号,以生成新的点,这样您可以在编写代码时看到。
 
  1. (setq pt1 (getpoint))
  2. (setq pt2 (polar pt1 100 0)) ; a new pt 100 units away from pt1 at an angle of 0.0
  3. (command "line" pt1 pt2)

 
几个建议(/3.0 5.0)只需做计算器0.6的答案
 
当在极坐标系中进行角度计算时,它们是sq,请注意Pi是一个保留变量
  1. ; put at start of code
  2. (setq A90 (/ Pi 2.0))
  3. (setq A180 pi)
  4. (setq a270 (* pi 1.5))
  5. (setq pt2 (polar pt1 100.0 A90))
回复

使用道具 举报

1

主题

8

帖子

7

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:58:55 | 显示全部楼层
嗯,我会试试的,但我觉得下一部分没用
235829oji55ezyyilz1ps7.jpg
你能提供更多的建议吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:24 , Processed in 0.480983 second(s), 73 queries .

© 2020-2025 乐筑天下

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