乐筑天下

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

[编程交流] 孔间距

[复制链接]

26

主题

81

帖子

55

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 15:10:04 | 显示全部楼层 |阅读模式
大家好
 
我正在尝试将沿矩形放置孔的过程自动化。
随附的图纸是我用Lisp所能得到的。
我已经在lisp文件中建立了4个角,并且可以在任意一端放置一个孔。
我的问题是,1900的测量值仅用于本例,可以是4000。我实际上不知道这个测量是什么。我所知道的是,需要在每一端50mm处开一个孔,然后在这两个孔之间等距开一个孔,间距不超过200mm。
你能给我一个关于公式如何工作的提示吗。
可能是这样的
如果两个孔之间的距离大于Y,则将该距离除以Z,然后写一系列行,以涵盖所有可能的情况,最大可达4000
 
当做
托尼
孔间距。pdf
回复

使用道具 举报

15

主题

315

帖子

361

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 16:01:15 | 显示全部楼层
我不确定我是否理解你的问题。
我做的:左一洞,右一洞;左或右各50个单元;在中间垂直对齐。
半径:10
 
还有别的事吗?
 
  1. ;; @see http://www.cadtutor.net/forum/showthread.php?44768-Entmake-Functions
  2. ;; draw a polyline
  3. (defun LWPoly (lst cls)
  4. (entmakex (append (list (cons 0 "LWPOLYLINE")
  5.                          (cons 100 "AcDbEntity")
  6.                          (cons 100 "AcDbPolyline")
  7.                          (cons 90 (length lst))
  8.                          (cons 70 cls))
  9.                    (mapcar (function (lambda (p) (cons 10 p))) lst))))
  10.                   
  11. (defun Circle (cen rad)
  12. (entmakex (list (cons 0 "CIRCLE")
  13.                  (cons 10 cen)
  14.                  (cons 40 rad))))
  15.                   
  16. ;; vertically in the middle, means: y-value is the average. => p1 + halfOf(p1, p2)   
  17. ;; => (+ (nth 1 p1) (/  (- (nth 1 p2) (nth 1 p1)) 2))
  18. (defun vmiddle (p1 p2 / )
  19.   (+ (nth 1 p1) (/  (- (nth 1 p2) (nth 1 p1)) 2))
  20. )
  21.                   
  22. (defun c:sp ( / p1 p2 y_middle lst my_poly)
  23. (setq p1 (getpoint "\nPoint 1:"))
  24. (setq p2 (getcorner p1 "\nPoint 2:"))
  25. ;; corners of the rectangle:
  26. (setq lst (list
  27.    (list  (nth 0 p1) (nth 1 p1) (nth 2 p1))
  28.    (list  (nth 0 p2) (nth 1 p1) (nth 2 p1))
  29.    (list  (nth 0 p2) (nth 1 p2) (nth 2 p1))
  30.    (list  (nth 0 p1) (nth 1 p2) (nth 2 p1))
  31. ))
  32. (setq my_poly (LWPoly lst 1))
  33. ;; calculate vertical middle
  34. (setq y_middle (vmiddle p1 p2))
  35. ;; circle 1 (left).  x-value of p1 + 50
  36. (Circle
  37.    (list (+  (nth 0 p1) 50) y_middle)
  38.    10.0  ;; radius
  39. )
  40. ;; circle 2 (right).   x-value of p2 - 50
  41. (Circle
  42.    (list (-  (nth 0 p2) 50) y_middle)
  43.    10.0  ;; radius
  44. )
  45. (princ)
  46. )
回复

使用道具 举报

0

主题

24

帖子

24

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 16:11:40 | 显示全部楼层
将端孔中心之间的距离除以200并固定结果以获得圆数,然后将距离除以圆数+1以获得圆心之间的距离。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-9 19:14 , Processed in 0.490770 second(s), 58 queries .

© 2020-2025 乐筑天下

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