找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1134|回复: 5

[求助] [求助]:椭圆DXF41/42码如何用数学方法求?

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-8-6 07:36:42 | 显示全部楼层 |阅读模式

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

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

×
如题。
也就是说,已知椭圆上任意两点,如何ENTMAKE椭圆弧?也就是说,如何求两点所代表的弧度?谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 24个

财富等级: 恭喜发财

发表于 2007-8-6 09:08:26 | 显示全部楼层
[php]
;;求椭圆曲线参数
(defun pt->param (pt cen axis ratio / ang param)
  (setq ang (- (angle cen pt) (angle '(0. 0. 0.) axis)))
  (cond        ((= (cos ang) 0.0)                ;防止分母cos为零出错
         (if (> (sin ang) 0.0)
           (setq param (* 0.5 PI))
           (setq param (* 1.5 PI))
         )
        )
        ((= (sin ang) 0.0)
         (if (> (cos ang) 0.0)
           (setq param 0.0)
           (setq param PI)
         )
        )
        (T
         (setq param (atan (/ (sin ang) (* (cos ang) ratio))))
         (if (< (cos ang) 0.0)
           (setq param (+ pi param))
         )
        )
  )
  param
)
[/php]
下面是上个函数对应的参数,再根据point分别求出dxf41,dxf42
[php]
       ;;椭圆圆心
       (setq objcen (cdr (assoc 10 objlst)))
       ;;相对于中心的长轴矢量
       (setq objaxis (cdr (assoc 11 objlst)))
       ;;短轴与长轴的比例
       (setq objratio (cdr (assoc 40 objlst)))
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

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

使用道具 举报

发表于 2007-8-6 13:00:56 | 显示全部楼层
椭圆没有用过....
下面不知道有没有帮上.

  1. vla-get-StartParameter 函数

  2. 功能

  3.      取得弧、线、或椭圆的起始点。

  4. 语法及参数

  5. (vla-get-StartParameter Object )
  6. Object Ellipse
  7.   这个属性适用的对象
  8. StartParameter 双精度;读/写
  9.   有效范围从0到2*PI

  10. 说明

  11.     椭圆的起始与结束参数是依据下列等式来计算:
  12.     P(Theta) = A * cos(Theta) + B * sin(Theta)
  13.     其中A与B分别是半长轴与半短轴
  14.     例如,如果您的起始角度是Theta1,则对应的起始参数是P(Theta1)并依上述公式计算,同样地,如果结束角度是Theta2,则对应的结束参数是P(Theta2),以前面的公式计算。
  15.     可以使用角度或参数来建立椭圆。

  16. 范例

  17. (defun Example_StartParameter ()

  18. ;;;这个范例建立一个椭圆接着输入起始及结束

  19. ;;;参数来建立椭圆弧

  20.   (VL-LOAD-COM)

  21.   (setq    AcadObject   (vlax-get-acad-object)

  22.        AcadDocument (vla-get-ActiveDocument Acadobject)

  23.        mSpace        (vla-get-ModelSpace Acaddocument)

  24.   )



  25. ;;;在模型空间中建立椭圆

  26.   (setq center (vlax-3d-point (list 50 50 0)))

  27.   (setq majAxis (vlax-3d-point (list 100 200 0)))

  28.   (setq radRatio 0.3)



  29.   (setq EllipseObj (vla-AddEllipse mSpace center majAxis radRatio))

  30. ;;; 输入开始参数1.57以及结束参数6.28

  31.   (vla-put-StartParameter EllipseObj 1.57)

  32.   (vla-put-EndParameter EllipseObj 6.28)

  33.   (vla-ZoomExtents AcadObject)

  34. ;;;找出椭圆的开始与结束参数



  35.   (princ (STRCAT "椭圆的起始参数是: "

  36.                (RTOS (vla-get-StartParameter EllipseObj))

  37.                ", 结束参数是: "

  38.                (RTOS (vla-get-EndParameter EllipseObj))

  39.                "    StartParameter范例 \n"

  40.         )

  41.   )

  42.   (princ)

  43. )


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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2007-8-7 22:03:11 | 显示全部楼层
最初由 fools 发布
[B][php]
;;求椭圆曲线参数
(defun pt->param (pt cen axis ratio / ang param)
  (setq ang (- (angle cen pt) (angle '(0. 0. 0.) axis)))
  (cond        ((= (cos ang) 0.0)                ;防止分母cos为零出错
         (if (> (sin ang... [/B]


  1.   [FONT=courier new]
  2. ;;;改一下
  3. (defun pt2ep (pt cen axis ratio / ang param)
  4.   (setq ang (- (angle cen pt) (angle '(0. 0. 0.) axis)))
  5.   (setq param (atan (sin ang) (* (cos ang) ratio))
  6.         (if (< (cos ang) 0.0)
  7.           (setq param (+ pi param))
  8.         )
  9.   )
  10.   param
  11. )
  12.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2007-8-7 22:09:48 | 显示全部楼层
最初由 fools 发布
[B][php]
;;求椭圆曲线参数
(defun pt->param (pt cen axis ratio / ang param)
  (setq ang (- (angle cen pt) (angle '(0. 0. 0.) axis)))
  (cond        ((= (cos ang) 0.0)                ;防止分母cos为零出错
         (if (> (sin ang... [/B]


  1.   [FONT=courier new]
  2. ;;;改一下
  3. (defun pt2ep (pt cen axis ratio / ang param)
  4.   (setq ang (- (angle cen pt) (angle '(0. 0. 0.) axis)))
  5.   (setq param (atan (sin ang) (* (cos ang) ratio))
  6.         (if (< (cos ang) 0.0)
  7.           (setq param (+ pi param))
  8.         )
  9.   )
  10.   param
  11. )
  12.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 06:24 , Processed in 0.198604 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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