找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1977|回复: 2

[原创]:利用vla-sectionsolid剖圆锥得抛物线

[复制链接]
发表于 2005-9-21 08:37:31 | 显示全部楼层 |阅读模式

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

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

×
程序思路:利用圆锥曲线的特性:对于正圆锥,垂直底面剖为双曲线,平行
母线剖为抛物线,平行底面剖为圆,斜底面剖为椭圆,于是用平面截锥体得
到抛物线,当然稍微改动即可变为双曲线
程序动机:学习vla-sectionsolid这个语句
思考:得到的spline是否为准确的抛物线呢?或者说近似度非常高呢?假如
我们承认acad的实体是足够精确,而其布尔运算也足够精确的话,这个剖面
线应该足够精确。个人觉得,spline似乎是三次曲线,按道理应该可以很好的
模拟二次曲线抛物线,但对于y^2/a^2-x^2/b^2=1的双曲线,又和y=x^3这
种三次曲线不一样。有点晕,对spline没有研究,麻烦高手解释一下,谢谢。
[PHP]
(defun c:test ()
  (vl-load-com)
  (setq *acad-object* nil)
  (setq *active-document* nil)
  (setq *model-space* nil)
  (setq ratio (getreal "\n y=kx^2 k=?:"))
  (setq vl-p1 (vlax-3d-point '(0 0 0)))
  (setq vl-p2 (vlax-3d-point '(1000 0 0)))
  (setq vl-p3 (vlax-3d-point '(1000 1000 0)))
  (setq vl-p4 (vlax-3d-point '(0 0 -500)))
  (setq vl-p5 (vlax-3d-point (list 0 0 (/ 0.5 ratio))))
  (setq mycone (vla-addcone (model-space) vl-p1 1000 1000))
  (vla-move mycone vl-p1 vl-p4)
  (vla-rotate3d mycone vl-p1 vl-p2 (/ pi 4))
  (vla-move mycone vl-p1 vl-p5)
  (setq cur (vla-sectionsolid mycone vl-p1 vl-p2 vl-p3))
  (vla-erase mycone)
  (vla-explode cur)
  (setq a (ssget "X" '((-4 . "<OR") (0 . "region")
                  (0 . "line")
                  (-4 . "OR>")
                 )
          )
  )
  (command "erase" a "")
)

(defun acad-object ()
  (cond
    (*acad-object*)
    (t
      (setq *acad-object* (vlax-get-acad-object))
    )
  )
)


(defun active-document ()
  (cond
    (*active-document*)
    (t
      (setq *active-document* (vla-get-activedocument (acad-object)))
    )
  )
)


(defun model-space ()
  (cond
    (*model-space*)
    (t
      (setq *model-space* (vla-get-modelspace (active-document)))
    )
  )
)

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

使用道具 举报

 楼主| 发表于 2006-4-29 09:01:47 | 显示全部楼层
还是不是很懂spline的原理,所以不确定,但是对于自己测试的一些点,感觉精度还挺高的
取坐标的时候,宜用(setq a (entget (car (entsel))))之类来取,小数位多点,比id命令和list命令要好些
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 06:55 , Processed in 0.362033 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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