Keenir 发表于 2017-11-13 15:48:23

怎么画出已知半径和弧长的弧线呢?

你好,怎么画出已知半径和弧长的弧线呢?如图所示,画一个半径2000,弧长2000的弧线。

xyp1964 发表于 2017-11-13 21:03:29

Keenir 发表于 2017-11-13 20:55
您好,这个用不了呢

(defun c:tt ()
;; (abc (getpoint) 2000 2000)
(defun abc (p0 rr ll / leng rad p1 p2)
    (setq leng (* 2 pi rr)
          rad(* (/ ll leng 1.) pi)
          p1   (polar p0 (- (* pi 0.5) rad) rr)
          p2   (polar p0 (+ (* pi 0.5) rad) rr)
    )
    (command "arc" "c" "non" p0 "non" p1 "non" p2)
)
(setq rr (Ureal 7 "" "半径" rr))
(setq ll (Ureal 7 "" "弧长" ll))
(while (setq p0 (getpoint "\n基点<退出>: "))
    (abc p0 rr ll)
)
(princ)
)

Keenir 发表于 2017-11-13 21:00:49

Andyhon 发表于 2017-11-13 19:52
套公式硬算亦可
常用的话套用编程效率较高

您好,那你有相关的编程吗,参考学习下

fan_zh 发表于 2017-11-14 09:05:46

;*****定长画弧*****
(defun c:dchh(/ r arc pt1 angle1 l1 pt2)
(setq R (getreal "请输入半径:"))
(setq arc(getreal"请输入弧长:"))
(setq pt1(getpoint "请点击第一点:"))
(setq angle1(/ (yxj r arc) 2))
(setq L1(* R (sin angle1)))
(setq pt2(polar pt1 0 (* L1 2)))
(command ".arc" pt1 "_e" pt2 "_r" R))

;******圆心角******
(defun yxj(a b)
(/ b a))

Andyhon 发表于 2017-11-13 16:24:20

先画出 R=2000 的弧

Command: lengthen
Select an object or : T
Specify total length or <1.0000)>: 2000

xyp1964 发表于 2017-11-13 18:39:27

;; (abc (getpoint) 2000 2000)
(defun abc (p0 rr ll / leng rad p1 p2)
(setq leng (* 2 pi rr)
      rad(* (/ ll leng 1.) pi)
      p1   (polar p0 (- (* pi 0.5) rad) rr)
      p2   (polar p0 (+ (* pi 0.5) rad) rr)
)
(command "arc" "c" "non" p0 "non" p1 "non" p2)
)

Keenir 发表于 2017-11-13 19:12:43

Andyhon 发表于 2017-11-13 16:24
先画出 R=2000 的弧

Command: lengthen


:lol谢谢了,我上面也是用这个方法画的呢,有没有其他简单的方法呢,或者有这种类似程序呢

Andyhon 发表于 2017-11-13 19:52:03

套公式硬算亦可
常用的话套用编程效率较高

Keenir 发表于 2017-11-13 20:55:40

xyp1964 发表于 2017-11-13 18:39


您好,这个用不了呢

hn10183051 发表于 2019-3-4 16:55:50

fan_zh 发表于 2017-11-14 09:05
;*****定长画弧*****
(defun c:dchh(/ r arc pt1 angle1 l1 pt2)
(setq R (getreal "请输入半径:"))


可以用,输入半径都是乱码。
页: [1] 2
查看完整版本: 怎么画出已知半径和弧长的弧线呢?