乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 129|回复: 7

三维效果如何实现?

[复制链接]

20

主题

115

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2005-6-2 12:42:00 | 显示全部楼层 |阅读模式
我想将下图中的管线用VBA以三维形式显示,如在图上画一条线与其相交的管线以三维开式显示,也就是剖面图那种效果,可不知该如下下手?下图中每条管线都有属性信息,(如管径\埋深...),井位有坐标信息
       

rsclzoqh5pf.JPG

rsclzoqh5pf.JPG

回复

使用道具 举报

20

主题

115

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2005-6-2 22:47:00 | 显示全部楼层
简单点说就是图上有多条直线,Z坐标都不为零,我想用三维显示。并且有些显示方的,有些是圆的。请问斑主用VBA该怎么做?
回复

使用道具 举报

20

主题

115

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2005-6-3 06:28:00 | 显示全部楼层
如果想创建圆柱体,RetVal = object.AddCylinder(Center, Radius, Height) 它的参数就这三个,那我有多条直线本来是相交的,但变成柱体后不得变成平行了?熟悉3D操作的朋友麻烦你们也指点一下。谢谢
回复

使用道具 举报

25

主题

134

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
234
发表于 2005-6-3 09:40:00 | 显示全部楼层
楼主公司是做地下管线探测的?在哪?
可以用AddRegion先构成一个矩形的面,然后用AddRevolvedSolid旋转所构成的面,就可以得到一个三维管线了
回复

使用道具 举报

20

主题

115

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2005-6-3 11:14:00 | 显示全部楼层
是啊,我们是搞测绘的,我们现在开始做管线方面的工作.yulijin608你也搞这方面的吧?
有机会多向你学习.我先试试
回复

使用道具 举报

20

主题

115

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2005-6-3 12:55:00 | 显示全部楼层
为什么我这么旋转不好用呢?
Sub test()
                         Dim curves(0 To 3) As AcadEntity
       
                         
                         ' This example adds a line in model space
                         
                         Dim lineObj As AcadLine
                         Dim startPoint(0 To 2) As Double
                         Dim endPoint(0 To 2) As Double
                         
                         ' Define the start and end points for the line
                         startPoint(0) = 1#: startPoint(1) = 1#: startPoint(2) = 0#
                         endPoint(0) = 5#: endPoint(1) = 5#: endPoint(2) = 0#
                         
                         'Á¬½Ó³É·â±ÕÇøÓò
                         Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
                         Dim offsetobj As Variant
                         offsetobj = lineObj.Offset(0.25)
                         Set curves(0) = lineObj
                         Set curves(1) = offsetobj(0)
                         Set curves(2) = ThisDrawing.ModelSpace.AddLine(lineObj.startPoint, offsetobj(0).startPoint)
                         Set curves(3) = ThisDrawing.ModelSpace.AddLine(lineObj.endPoint, offsetobj(0).endPoint)
                                                         
                         ' Create the region
                         Dim regionObj As Variant
                         regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
                         regionObj(0).Color = acCyan
                         ZoomAll
                         MsgBox "Revolve the region to create the solid.", , "AddRevolvedSolid Example"
                         
                         ' Define the rotation axis
                         Dim axisPt(0 To 2) As Double
                         Dim axisDir(0 To 2) As Double
                         Dim angle As Double
                         axisPt(0) = 5: axisPt(1) = 5: axisPt(2) = 0
                         axisDir(0) = 11: axisDir(1) = 1: axisDir(2) = 3
                         angle = 0.785
                                                         
                         ' Create the solid
                         Dim solidObj As Acad3DSolid
                         Set solidObj = ThisDrawing.ModelSpace.AddRevolvedSolid(regionObj(0), axisPt, axisDir, angle)
                         solidObj.Color = acRed
                         ZoomAll
                         
                                 ' Change the viewing direction of the viewport
                         Dim NewDirection(0 To 2) As Double
                         NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
                         ThisDrawing.ActiveViewport.Direction = NewDirection
                         ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
                         ZoomAll
                         MsgBox "Solid created.", , "AddRevolvedSolid Example"
       
End Sub
回复

使用道具 举报

25

主题

134

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
234
发表于 2005-6-3 13:41:00 | 显示全部楼层
应当是旋转轴的问题, Set solidObj = ThisDrawing.ModelSpace.AddRevolvedSolid(regionObj(0), lineObj.startPoint, lineObj.endPoint, 6.28)                         '6.28表示旋转一周
回复

使用道具 举报

20

主题

115

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
195
发表于 2005-6-3 19:41:00 | 显示全部楼层
AddRevolvedSolid出错,怪了我就只是把示例改了一点就不行了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 13:31 , Processed in 0.442835 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表