找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1273|回复: 2

[求助] 请教如何改变视口中的视图中心点,显示不同的内容

[复制链接]
发表于 2016-11-18 13:11:56 | 显示全部楼层 |阅读模式

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

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

×
Private Sub CommandButton1_Click()

Dim textObj As AcadText
Dim textString As String
Dim insertionPoint(0 To 2) As Double
Dim pp(0 To 2) As Double

ThisDrawing.Application.Documents.Add
For i = 0 To 5          '写文字
    insertionPoint(0) = i * 200: insertionPoint(1) = 0: insertionPoint(2) = 0:  '文字插入点
    textString = Str(i + 1)
    Set textObj = ThisDrawing.ModelSpace.AddText(textString, insertionPoint, 50)
Next i
ZoomAll

Dim mylayout As AcadLayout          '定义布局
Dim myVport As AcadPViewport        '定义视口
For i = 0 To 5          '新建5个布局
     Set mylayout = ThisDrawing.Layouts.Add("P" + LTrim(Str(i + 1))) '新建布局
     ThisDrawing.ActiveLayout = mylayout        '激活布局
     ThisDrawing.MSpace = True
    '获取当前布局中的视口
    Set myVport = ThisDrawing.ActivePViewport
    myVport.Display True
    myVport.Width = 200             '视口宽
    myVport.height = 150         '视口高
    myVport.CustomScale = 1
    pp(0) = 125: pp(1) = 100: pp(2) = 0         '视口中心
    myVport.Center = pp
    ThisDrawing.MSpace = False
    ZoomAll
Next i


'让 p1,p2,p3,p4,p5 视口分别显示 对应的1,2,3,4,5数字
'如何改变视口中视图的中心点
End Sub

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

已领礼包: 6个

财富等级: 恭喜发财

发表于 2016-11-18 13:23:27 | 显示全部楼层
VBA  使用 ActiveViewPort方法

下面是创建一个VIEW的例子代码,

Sub createViewWithTwistAngle()
   ' This example creates a new paperspace viewport.
   ' It then sets the viewdirection, and the TwistAngle
   ' Then view is then created using SendCommand (VIEW)
   ' The viewport erased it is only created to set the
   ' TwistAngle
           
   Dim pviewportObj As AcadPViewport
   Dim viewportObj As AcadViewport
   Dim myView As AcadView
   Dim center(0 To 2) As Double
   Dim width As Double
   Dim height As Double
   Dim int1 As Integer
  
   ' Define the pviewport
   center(0) = 3: center(1) = 3: center(2) = 0
 
   width = 4
   height = 4
    
   ' Change from model space to paperspace
   ThisDrawing.ActiveSpace = acPaperSpace
 
   ' Create the pviewport
   Set pviewportObj = ThisDrawing.PaperSpace.AddPViewport(center, width,
height)
   pviewportObj.Display True
   pviewportObj.ViewportOn = True
   ThisDrawing.MSpace = True
   ThisDrawing.ActivePViewport = pviewportObj
 
   ' Change the viewing direction of the ViewPort
   Dim NewDirection(0 To 2) As Double
   NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
   pviewportObj.Direction = NewDirection
     
   ' Set the twist angle for the viewport
   pviewportObj.twistAngle = 0.57
     
  
   ' Remove view named test1
   For int1 = 0 To ThisDrawing.Views.Count - 1
            If ThisDrawing.Views(int1).Name = "test1" Then
                ThisDrawing.Views(int1).Delete
            End If
   Next int1
     
     
   ThisDrawing.Application.ZoomExtents
  
   ' Create a view
   SendCommand "-view" & Chr(13) & "Save" & Chr(13) & "test1" & Chr(13)
           
   ' Erase the paper space view port
   pviewportObj.Delete
  
   ThisDrawing.ActiveSpace = acModelSpace
  
   ' Reference model space viewport and set the view to the one
   ' created above
   Set viewportObj = ThisDrawing.ActiveViewport
   Set myView = ThisDrawing.Views.Item("Test1")
   viewportObj.SetView myView
   ThisDrawing.ActiveViewport = viewportObj
 
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-18 16:39:07 | 显示全部楼层
这段代码对我很有帮助,但问题还没有解决,如何将自定义视图放在视口中呢   
viewportObj.SetView myView   我以为是的,结果不是
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 08:05 , Processed in 0.185123 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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