[分享]CAD精确画抛物线的画法?如何画抛物线?

发表于2021-02-20     601人浏览     2人跟帖     总热度:239  

扫码加入筑龙学社  ·  路桥市政微信群 为您优选精品资料,扫码免费领取
分享至

分享到微信朋友圈 ×

打开微信"扫一扫",扫描上方二维码
请点击右上角按钮 ,选择 

 发表于2021-02-20   |  只看该作者      

2

“五点法”画抛物线的草图

 抛物线上的点到焦点和到准线的距离相等,这是抛物线中使用频率最高的知识点,下面是我们在抛物线中常见的图,把抛物线的定义形象地表达了出来,和该图有关的一些结论我们在三十天冲刺(二十七)——《抛物线的定义、方程与性质》中介绍过一些,没介绍的以后会陆续补上.

CAD精确画抛物线的画法?如何画抛物线?_1

       我们经常在解决抛物线问题时自己去画图,画出抛物线后,然后再补上准线和焦点,如下图,对于抛物线y^2=2px(p>0),我们就可能画出这样一个草图:

CAD精确画抛物线的画法?如何画抛物线?_2

       然后我们就会发现抛物线上一点A到焦点F的距离和到准线l的距离不太相等,所以肯定是焦点的选取不太恰当,但是因为不是处女座,不等就不等吧,也就懒得改了,who care呢?

       可是这个不等或多或少会对做题产生一些负面的干扰作用,有时候甚至会对结果的判断造成严重的误导,所以一个精准的图象还是很有必要的.

       那么怎么画好抛物线呢,还是老生常谈——“描点法”,对于抛物线y^2=2px(p>0),上面的画图可以简称为“一点法”画图,也就是过原点了,后面的就随意了,所以造成了误差.

       其实该抛物线还过(p/2,p),(p/2,-p),(2p,2p),(2p,-2p). 所以我们应该改变画抛物线的顺序,首先应该画焦点和准线,然后画出(p/2,p),(p/2,-p),(2p,2p),(2p,-2p)这四个点,加上原点,一共五个点,最后描线,如下图:

CAD精确画抛物线的画法?如何画抛物线?_3

CAD精确画抛物线的画法?如何画抛物线?_4

       这个时候再在抛物线上取一点A,看看A到焦点F的距离和到准线的距离,感觉是不是就好多了?

CAD精确画抛物线的画法?如何画抛物线?_5


 发表于2021-02-20   |  只看该作者      

3

CAD画抛物线方法

方法一:
1.在EXCEL生成坐标X,Y列;X为分段值控制曲线精度,Y为公式计算的对应值; 
2.假定EXCEL中X数值在A列,Y数值在B列,生成ACAD的PLINE绘图数据,方法如下: 
(1)在新的列单元(如C列)输入公式:=An&","&Bn(n为数据的行号),按次办法将An及Bn单元格中的数据在Cn单元格中形成(x,y)的形式。关键是生成逗号。 
(2)拷贝Cn的公式(Cn单元格按CTRL拖动),形成绘图数据列。 
(3)拷贝绘图数据列(C列中的数据)。 
3.在ACAD中执行PLINE命令,输入PL回车后的命令行处按鼠标的右键,选粘贴命令,将从EXCEL中拷贝的数据粘贴到此处。 
4.完成(PL命令按x1,y1...x2,y2...xn,yn的形式绘制曲线。)
方法二:
直接画,先三点画一水平pline线,起、终对应抛物线端点,其中间点高为2倍抛物线的矢高即2f,同时将cad的splintype参数设为5。对该plnie进行编辑,选择spline项,生成的pline曲线即为您要的抛物线。注意,为了精度,可将splinesegs参数调高。
方法三:
(defun c:pwx () 
(setq pt1 (getpoint" The first point, please")) 
(setq pt2 (getpoint" The second point,please")) 
(setq pt3 (getpoint" The third point,please")) 
(setq n (getdist " Segment number")) 

(setq f (open "pwx.inp" "w")) 
(print (car pt1) f) 
(print (cadr pt1) f) 
(print (car pt2) f) 
(print (cadr pt2) f) 
(print (car pt3) f) 
(print (cadr pt3) f) 
(print fdx f) 
(close f) 
(command "shell" "pwx") 

(setq f (open "pwx.dat" "r")) 
(setq a (atof (read-line f))) 
(setq b (atof (read-line f))) 
(setq c (atof (read-line f))) 
(close f) 
(setq dx (- (car pt3) (car pt1))) 
;(setq n (fix (/ (+ (abs dx) 0.5) fdx))) 

(setq ddx (/ dx n)) 
(command "pline" pt1) 
(setq i 1) 
(while (<= i n) 
(setq x (+ (car pt1) (* ddx i))) 
(setq y (+ (* a x x) (* b x) c)) 
(setq pt (list x y)) 
(command pt) 
(setq i (1+ i)) 

(command "") 

(defun break (message / loop) 
(princ message) (setq loop t) 
(while loop (princ " >:") 
(setq query (read-line)) (if (/= query "") 
(princ (eal (read query))) (setq loop nil) 
) (princ) 
)

倾城月

北京 海淀区 | 路桥市政

999+ 关注

999+ 粉丝

999+ 发帖

999+ 荣誉分

该博主未添加简介

猜你爱看

添加简介及二维码

简介

还可输入70字

二维码(建议尺寸80*80)

发站内信息

还可输入140字
恭喜您已成功认证筑龙E会员 点击“下载附件”即可
分享
入群
扫码入群
马上领取免费资料包
2/20