明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5498|回复: 8

[求助]请问CAD的椭圆面积是用怎样的公式计算的呢?

[复制链接]
发表于 2010-8-21 17:16 | 显示全部楼层 |阅读模式

 

椭圆面绩正常的公式: pi*sqrt(2*(a^2+b^2))
但用这样算为何与cad算的不一样呢?
是否有不一样的公式.
另外,椭圆如果有缺角又是怎样计算的呢?
烦请各位高手们解答一下
谢谢

发表于 2010-8-21 18:56 | 显示全部楼层

你错了,椭圆的面积公式是: Pi*a*b,如果有缺角的话,应该按照椭圆的起始角度和终止角度来计算面积。

但现在不清楚你说的缺角的面积是指的哪部分,你最好用图表示一下,别人就知道了。

发表于 2010-8-21 22:43 | 显示全部楼层
呵呵,先把椭圆面域,再用Massprop命令就可以得出了呀
 楼主| 发表于 2010-8-22 00:00 | 显示全部楼层

谢谢"highflybir"版主的回答
另外附上有缺角的椭圆图样,请教该怎样计算面积.

另外,再请教些问题
1.cad计算椭圆周长,是用哪种公式求出的呢?
2.Pi*a*b是椭圆面积公式,但我遇到各问题就是抓取图形后,
取出的a与b的长短轴长度,该怎样由向量的xyz转换为长度呢?

烦请各位高手们解答一下
谢谢

本帖子中包含更多资源

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

x
发表于 2010-8-22 08:16 | 显示全部楼层
 直接可以求出的
(vlax-curve-getarea en)
en-为图元名
发表于 2010-8-22 08:20 | 显示全部楼层
或者用
(vla-get-area ob)
ob-为对象,图元必须转为对象(vlax-ename->vla-object en)en-为图元名
发表于 2010-8-22 22:48 | 显示全部楼层
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=82654&star=2
参见这篇帖子

另外附上有缺角的椭圆图样,请教该怎样计算面积.
1.cad计算椭圆周长,是用哪种公式求出的呢?
2.Pi*a*b是椭圆面积公式,但我遇到各问题就是抓取图形后,
取出的a与b的长短轴长度,该怎样由向量的xyz转换为长度呢?

其实下面的代码可以求出椭圆弧的面积,不过后面的用数值计算的方法,我是匆匆写了几行,不过证明可以用另外的一种方法求出面积的。
  1. (vl-load-com)
  2. (defun c:test (/ A AN1 AN2 AR AREA B DXF ENT JS OBJ)
  3.   (setq ent (car (entsel "\n请选择椭圆对象:")))
  4.   (setq dxf (entget ent))
  5.   (setq a (distance '(0 0 0) (cdr (assoc 11 dxf))))
  6.   (setq b (* a (cdr (assoc 40 dxf))))
  7.   (setq area (* pi a b))
  8.   (princ "\n长轴是:")
  9.   (princ a)
  10.   (princ ", 短轴是:")
  11.   (princ b)
  12.   (princ ", 总面积是:")
  13.   (princ area)
  14.   (setq an1 (cdr (assoc 41 dxf)))
  15.   (setq an2 (cdr (assoc 42 dxf)))
  16.   (setq an2 (rem an2 pi))
  17.   (setq obj (vlax-ename->vla-object ent))
  18.   (princ ", 弧面积是:")
  19.   (setq ar (vla-get-area obj))
  20.   (princ ar)
  21.   (princ ", 面积是:")
  22.   (setq js (* a b 0.25 (- (sin (+ an2 an2)) an2 an2)))
  23.   (setq js (- (abs js) (* b (sin an2) (- a (* a (cos an2))) 0.5)))
  24.   (princ js)
  25.   (princ)
  26. )
 楼主| 发表于 2010-8-23 01:00 | 显示全部楼层

谢谢"highflybir"版主的回答
里面的程序,若能选取图元后,自动计算长短轴就更方便了.
而在 cad 中的 vla-get-MajorAxis ;长轴 与 vla-get-MinorAxis ;短轴
经过这样计算就可以求出长短轴的距离
(sqrt (+ (expt (nth 0 MajorAxis) 2)
  (expt (nth 1 MajorAxis) 2)
  (expt (nth 2 MajorAxis) 2)
  ))
(sqrt (+ (expt (nth 0 MinorAxis) 2)
  (expt (nth 1 MinorAxis) 2)
  (expt (nth 2 MinorAxis) 2)
  ))
但我不确定是不是这样,请各位确认.

另外,前次附图中缺角的椭圆
该怎样计算他的面积与周长呢?

烦请各位高手们解答一下
谢谢

发表于 2010-9-8 10:26 | 显示全部楼层
学习下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 02:26 , Processed in 0.272629 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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