找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 16485|回复: 2
打印 上一主题 下一主题

请教一个很菜鸟的问题——怎么用vba画椭球体?

[复制链接]
跳转到指定楼层
1
发表于 2005-7-26 22:46:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
本人想通过AddRevolvedSolid命令实现,似乎这个命令只对直线和圆弧有效,对椭圆好像不行,望大虾指教
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-7-27 13:41:45 | 只看该作者

可以先做成半个椭圆,形成面域之后在回转成椭球体。
3
发表于 2005-7-28 13:17:59 | 只看该作者
呵呵,谢了,昨天仔细研究了一下,终于搞定了
Public Sub AddMyEllipsoid(ellipsoid As EllipsoidModel)
    Dim majAxis(0 To 2) As Double
    Dim center(0 To 2) As Double
    Dim radRatio As Double
    Dim curves(0 To 1) As AcadEntity
    Dim regionObj As Variant
    Dim startpt(0 To 2) As Double
    Dim endpt(0 To 2) As Double
    
    center(0) = ellipsoid.cx: center(1) = ellipsoid.cy: center(2) = ellipsoid.cz
    majAxis(0) = ellipsoid.rx: majAxis(1) = 0: majAxis(2) = 0
    radRatio = ellipsoid.ry / ellipsoid.rx
    
    Set curves(0) = ThisDrawing.ModelSpace.AddEllipse(center, majAxis, radRatio)
    curves(0).StartParameter = 0
    curves(0).EndParameter = 3.141592
    
    startpt(0) = ellipsoid.cx: startpt(1) = ellipsoid.cy: startpt(2) = ellipsoid.cz
    endpt(0) = ellipsoid.rx: endpt(1) = 0: endpt(2) = 0
    
    Set curves(1) = ThisDrawing.ModelSpace.AddLine(curves(0).StartPoint, curves(0).EndPoint)
    
    regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
  
    Set ModelObj = ThisDrawing.ModelSpace.AddRevolvedSolid(regionObj(0), startpt, endpt, 6.28)
  
End Sub
  
其中EllipsoidModel是个结构体
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-2-1 11:05 , Processed in 0.029459 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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