明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2628|回复: 12

为什么两个圆弧不能重合呢?

  [复制链接]
发表于 2004-5-27 03:02:00 | 显示全部楼层 |阅读模式
该程序画的是蜗壳内壁型线,奇怪的是,第2条圆弧终点和第3条的起点始终不能重合,百思不得其解,所以来这向高人求助,望各位大大帮帮忙 谢谢了 (defun c:woke()
(progn

;输入数据 (setq p0 (getpoint "\n 请输入基准点:"))
(setq s (getreal "\n 绘图比例<默认值 0.1>:"))
(if (null s) (setq s 0.1))
(setq r (getreal "\n 请输入进口半径R<默认值750>:"))
(if (null r) (setq r 750))
(setq r1 (getreal "\n 请蜗壳输入半径R1<默认值818>:"))
(if (null r1) (setq r1 818))
(setq r2 (getreal "\n 请输入蜗壳半径R2<默认值954>:"))
(if (null r2) (setq r2 954))
(setq r3 (getreal "\n 请输入蜗壳半径R3<默认值1090>:"))
(if (null r3) (setq r3 1090))
(setq r4 (getreal "\n 请输入蜗壳半径R4<默认值1226>:"))
(if (null r4) (setq r4 1226))
(setq c (getreal "\n 蜗壳出口长度C<默认值760>:"))
(if (null c) (setq c 760))
(setq l (getreal "\n 请输入蜗壳内壁间距L<默认值544>:"))
(if (null l) (setq l 544))
(setq a (/ l 4))

(setq px (car p0)
py (cadr p0)
pz (caddr p0))
;定义等边基点坐标
(setq xa1 (+ px (/ a 2))
ya1 (+ py (/ a 2))
xa2 xa1
ya2 (- py (/ a 2))
xa3 (- px (/ a 2))
)
(setq ya3 ya2)
(setq xa4 xa3)
(setq ya4 ya1)
;蜗壳个弧线端点坐标
(setq xb1 (+ px (+ r (- l c))))
(setq yb1 (+ py (+ (sqrt (- (* r1 r1) (* (+ (+ r (- l c)) (/ a 2)) (+ (+ r (- l c)) (/ a 2))))) (/ a 2))))
(setq xb2 px)

(setq yb2 (+ py (+ (sqrt (- (* r1 r1) (* (/ a 2) (/ a 2)))) (/ a 2))))
(setq xb3 (- px (sqrt (- (* r2 r2) (* (/ a 2) (/ a 2))))))
(setq yb3 py)
(setq xb4 px)
(setq yb4 (- py (sqrt (- (* r3 r3) (* (/ a 2) (/ a 2))))))
(setq xb5 (+ px (+ r l)))
(setq yb5 py )
(setq xc1 xb1);(+ (- (+ px (sqrt (- (* r4 r4) (* (/ a 2) (/ a 2))))) c) (/ a 2))
(setq yc1 (+ py r4))
(setq xc2 xb5);(+ (+ px (sqrt (- (* r4 r4) (* (/ a 2) (/ a 2))))) (/ a 2)))
(setq yc2 yc1)

(setq a1 (list xa1 ya1 pz)
a2 (list xa2 ya2 pz)
a3 (list xa3 ya3 pz)
a4 (list xa4 ya4 pz)
b1 (list xb1 yb1 pz)
b2 (list xb2 yb2 pz)
b3 (list xb3 yb3 pz)
b4 (list xb4 yb4 pz)
b5 (list xb5 yb5 pz)
c1 (list xc1 yc1 pz)
c2 (list xc2 yc2 pz))
(command "arc" b1 "c" a4 b2 "")
(command "arc" b2 "c" a3 b3 "")
(command "arc" b3 "c" a2 b4 "")
(command "arc" b4 "c" a1 b5 "")
(command "line" a1 a2 ""
"line" a2 a3 ""
"line" a3 a4 ""
"line" a4 a1 ""
"line" c1 b1 ""
"line" c1 c2 ""
"line" c2 b5 ""
"circle" p0 r
)



))
发表于 2004-5-27 07:52:00 | 显示全部楼层
可能是你的计算问题,你用起点、中心点、终点的画法不一定按你要求画的,起点和中心点选择后,终点的位置就限制在了这个圆上,你计算出的点如果不是这样,就回导致这种结果
发表于 2004-5-27 09:01:00 | 显示全部楼层
两位也太厉害了,夜里还在战斗吗? btlelite 2004-5-27 3:02:43 meflying 2004-5-27 7:52:30
发表于 2004-5-27 09:43:00 | 显示全部楼层
在程序前面部分关闭捕捉模式试试看。


(setq os (getvar "osmode"))


(setvar "osmode" 0)


......


(setvar "osmode" os)
发表于 2004-5-27 11:04:00 | 显示全部楼层
gare1000发表于2004-5-27 9:01:00两位也太厉害了,夜里还在战斗吗?



btlelite                                 2004-5-27 3:02:43

  1. 快8点了,还算夜里?你新疆的吗?
复制代码
 楼主| 发表于 2004-5-27 13:00:00 | 显示全部楼层
计算没有问题,也和计算无关,因为上一个弧的终点就是下一个弧的起点;


                                 不知道会不会和捕捉有关,我试试


                                 谢谢指导
发表于 2004-5-27 13:11:00 | 显示全部楼层
点是没错,可你这样的圆弧是不存在的,起点确定,圆心确定,终点不是随便哪儿都可以的,你可以用手在你的图上画画,起点,终点都按你的给定点,看圆心能不能到你要求的地方
 楼主| 发表于 2004-5-27 13:31:00 | 显示全部楼层
哦,对啊,有道理,我再检查一下
 楼主| 发表于 2004-5-27 13:42:00 | 显示全部楼层
确实是设计本身误差造成的,看来得换方法了.


我想如果追求圆弧能接合到一起,用 起点,终点半径应该可以解决,但是出现了一个新的问题,画不出来啊,也不知道是什么原因,请问一下,用这三个参数应该怎么画呢?
 楼主| 发表于 2004-5-27 13:56:00 | 显示全部楼层
我想让它们的点重合,圆心位置另外做修正,我应该怎么做呢


不是我不愿意动脑筋,我是个初学者,想不出好点子了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 07:05 , Processed in 0.199577 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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