panliang9 发表于 2025-1-6 18:36:07

已知总长和两个圆弧的半径,求中心距

经常有这样的需求,如下图所示,知道两段弧的半径,也知道总长,但是中心距不知道,只能一点点画着试,能不能有一个程序
或者宏,可能很简单的计算出来。

各位大佬,能不能写个程序或者在EXCE里搞个宏程序。






llsheng_73 发表于 2025-1-7 13:39:10

本帖最后由 llsheng_73 于 2025-1-7 13:44 编辑

mahuan1279 发表于 2025-1-7 11:17
数值计算,二分法,牛顿法……
感谢详细的图解
(defun tt(l r1 r2 / d l1 len)
(defun len(d r1 r2 / a)
    (setq a(/(- r1 r2)d)
          a(angle'(0 0)(list a(sqrt(- 1(* a a))))))
    (+(* r1(- pi a)2)(*(sin a)d 2)(* r2 2 a)))
(setq d(+ r1 r2))
(while(not(equal(setq l1(len d r1 r2))l 1e-8))
    (setq d(+(*(- l l1)0.5)d))))

(rtos(TT 3650 315 75)2 8)=>"1188.06486864"
通过设置全局变量(setq i 0),在while内增加(setq i(1+ i))检查,3650 315 75这一组数据运行至结束仅循环7次

xyp1964 发表于 2025-1-6 22:07:42

;; 暴力求解法

(defun abc (r1 r2 ll jd / dd dr hc1 hc2 l1 rad)
"(abc 315 75 3650 1e-4)"
(defun acos (a) (atan (/ (sqrt (- 1 (* a a))) a)))
(setq dr(- r1 r2)
      dd(* ll 0.5)
      l1(* (sqrt (- (* dd dd) (* dr dr))) 2)
      rad (acos (/ dr dd))
      hc1 (* r1 (- (* pi 2) rad rad))
      hc2 (* r2 rad 2)
)
(while (> (+ l1 hc1 hc2) ll)
    (setq dd(- dd jd)
          l1(* (sqrt (- (* dd dd) (* dr dr))) 2)
          rad (acos (/ dr dd))
          hc1 (* r1 (- (* pi 2) rad rad))
          hc2 (* r2 rad 2)
    )
)
(rtos dd 2 4) ;1188.0648
)

xyp1964 发表于 2025-1-7 12:30:51

(defun llhz (r1 r2 leng jd / dd dr hc1 hc2 l1 rad tt acos)
"llhz 链轮护罩 (llhz r1大圆半径 r2小圆半径 leng链轮长度 jd步差)"
"(llhz 315 75 3650 1e-4) → 1188.0648"
(defun acos (a) (atan (/ (sqrt (- 1 (* a a))) a)))
(defun tt (r1 r2 dd jd / dr l1 rad h1 h2)
    (setq dr(- r1 r2)
          l1(* (sqrt (- (* dd dd) (* dr dr))) 2)
          rad (acos (/ dr dd))
          h1(* r1 (- (* pi 2) rad rad))
          h2(* r2 rad 2)
    )
    (+ l1 h1 h2)
)
(setq dd (* leng 0.5))
(while (> (tt r1 r2 dd jd) leng)
    (setq dd (- dd jd))
)
(rtos dd 2 4)
)

aws 发表于 2025-1-6 19:17:07

论坛长老----注册时间2008-5-30

自贡黄明儒 发表于 2025-1-6 20:02:46

链轮护罩,皮带轮护罩

panliang9 发表于 2025-1-6 20:52:30

自贡黄明儒 发表于 2025-1-6 20:02
链轮护罩,皮带轮护罩
对的,已知两个皮带轮,皮带总长,求解中心距{:1_1:}

llsheng_73 发表于 2025-1-6 21:36:34

好象最主要的问题就是计算一个圆心角

panliang9 发表于 2025-1-6 22:12:39

xyp1964 发表于 2025-1-6 22:07
;; 暴力求解法

版主太厉害了,又在明经取到了真经!!!

zmzk 发表于 2025-1-7 06:44:44

院长的数学功底 太好了,望尘莫及

cable2004 发表于 2025-1-7 09:12:11

本帖最后由 cable2004 于 2025-1-7 11:24 编辑


两段圆弧中心之间的距离 d 是:1188.064869L 是:3650.000000


mahuan1279 发表于 2025-1-7 11:17:12

数值计算,二分法,牛顿法……
页: [1] 2
查看完整版本: 已知总长和两个圆弧的半径,求中心距