找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 964|回复: 12

[编程申请]:已知两点和其间的弧长画圆弧

[复制链接]
发表于 2005-9-7 19:03:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
*-*3 *-*3 *-*3
请大侠帮忙编程:已知两点座标以及其间的弧长,画圆弧——在画地形图中红线范围时常用到!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-9-8 09:24:22 | 显示全部楼层
;请试用以下程序
;并注意已知两点输入的先后顺序不同会不同的结果

  1. (defun c:lc()
  2.     (setq cm (getvar "cmdecho") os (getvar "osmode"))
  3.     (setvar "cmdecho" 0)(setvar "osmode" 33)
  4.     (setq p1 (getpoint "\n请输入第一点:")
  5.           p2 (getpoint p1 "\n请输入第二点:")
  6.           l  (getdist "\n请输入圆弧长度L=")
  7.           c  (distance p1 p2)
  8.           r0 1e45      dr 1        b3 (/ 1.0 3.0)
  9.           
  10.    )
  11.    (while (> dr 1e-6)
  12.       (setq b  (/  l 2.0 r0)    bb (* b b)
  13.             r1 (/ c 2.0 (* b (- 1 (* (/ bb 2.0) (- b3 (* (/ bb 20.0)(- b3 (/ bb 131.0))))))))
  14.       )
  15.       (setq dr (abs (- r1 r0))  r0 r1)
  16.    )
  17.    (setvar "osmode" 0)
  18.    (command "_arc" p1 "e" p2 "r" r1 "chprop" (entlast) "" "c" 1 "")
  19.    (setvar "cmdecho" cm)(setvar "osmode" os)(princ)
  20. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-8 10:22:27 | 显示全部楼层
楼上的结果不准确!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-9-8 10:33:22 | 显示全部楼层
请问xyp1964,是如何的不准确?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-9 17:47:49 | 显示全部楼层
测试结果:
请输入第一点:
请输入第二点:
请输入圆弧长度L=1200
Command: li nil

Select objects: 1 found

Select objects:
                  ARC       Layer: "0"
                            Space: Model space
                   Color: 1 (red)    Linetype: "BYLAYER"
                   Handle = 16A
            center point, X=2823.1930  Y=-1787.4167  Z=   0.0000
            radius  420.9321
             start angle    188
               end angle    351
            length 1200.1443
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-12 18:48:47 | 显示全部楼层
大侠们加油啊,小弟在这里给大家加油啦!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2005-9-12 21:06:25 | 显示全部楼层
最初由 caibaobao 发布
[B]大侠们加油啊,小弟在这里给大家加油啦!!! [/B]

你经常怎么算出来或者画出来?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-12 21:11:16 | 显示全部楼层
这里有个程序可以画
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-12 23:14:12 | 显示全部楼层
楼上的程序似乎是用逼近法得出的结果。
  1. [FONT=courier new](while (> (abs (- x xx)) 0.0000000001)
  2.         (setq x          xx
  3.               fx  (- (/ (sin (/ x 2)) x) (/ (* 0.5 l) s))
  4.               flx (/ (- (* 0.5 x (cos (* 0.5 x))) (sin (* 0.5 x))) (* x x))
  5.               xx  (- x (/ fx flx))
  6.         )
  7.       )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-19 23:59:11 | 显示全部楼层
不能下载
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-20 07:51:27 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  13. ;;;起点、终点和弧长画圆弧
  14. (defun c:test212 ()
  15.   (cmdla0)
  16.   (setq        pt1 (getpoint "\圆弧端点 : ")
  17.         pt2 (getpoint pt1 "\圆弧终点 : ")
  18.         no1 (UREAL 7 "" "\n弧长" no1)
  19.         a   (/ (distance pt1 pt2) 2.0)
  20.         l   (/ no1 2.0)
  21.         b   0.001
  22.   )
  23.   (if (> l b)
  24.     (progn
  25.       (while (< (/ b (sin b)) (/ l a 1.0))
  26.         (setq b (+ b 0.000001))
  27.       )
  28.       (setq ang (rad2ang (* b 2)))
  29.     )
  30.   )
  31.   (mkla"圆弧"1)
  32.   (setvar "osmode"0)
  33.   (command "arc" pt1 "e" pt2 "a" ang)
  34.   (princ "弧长误差 = ")
  35.   (princ (rtos (- no1 (CURVE-LENG (entlast))) 2 8));测试线长
  36.   (cmdla1)
  37. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-15 21:14:18 | 显示全部楼层
请教楼上斑竹,大概要用到您的函数库吧,那个XYP_LIB?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-16 00:59:07 | 显示全部楼层
8楼的不错,精度和速度都比较满意.
是哈哈写的还是长不大版主写的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-22 07:14 , Processed in 0.540386 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表