当前版块:问答社区 > 综合讨论区

AutoCAD_VBA获得模型空间尺寸

Sub GetModelSpaceSize()
  Dim cPnt As Variant
  cPnt = ThisDrawing.Application.ActiveDocument.GetVariable("VIEWCTR")
  ThisDrawing.Application.ActiveDocument.Utility.Prompt vbCr & vbCr & "中心坐标:" & cPnt(0) & "," & cPnt(1) & "," & cPnt(2)
  
  Dim dHeight As Double
  dHeight = ThisDrawing.Application.ActiveDocument.GetVariable("VIEWSIZE")
  ThisDrawing.Application.ActiveDocument.Utility.Prompt vbCrLf & vbCr & "高:" & dHeight
  
  Dim dWidth As Double
  Dim dHeightWidth As Variant
  dHeightWidth = ThisDrawing.Application.ActiveDocument.GetVariable("SCREENSIZE")
  dWidth = dHeightWidth(0) / dHeightWidth(1) * dHeight
  ThisDrawing.Application.ActiveDocument.Utility.Prompt vbCrLf & vbCr & "宽:" & dWidth
  
  Dim xPnt(7) As Double
  
  xPnt(0) = cPnt(0) - dWidth / 2
  xPnt(1) = cPnt(1) - dHeight / 2
  
  xPnt(2) = cPnt(0) + dWidth / 2
  xPnt(3) = cPnt(1) - dHeight / 2
  
  xPnt(4) = cPnt(0) + dWidth / 2
  xPnt(5) = cPnt(1) + dHeight / 2
  
  xPnt(6) = cPnt(0) - dWidth / 2
  xPnt(7) = cPnt(1) + dHeight / 2
  
  ThisDrawing.Application.ActiveDocument.ModelSpace.AddLightWeightPolyline (xPnt)
  
End Sub 

全部评论

等级:LV30
积分:43235
hkai2658 2019-12-10 08:24
👍 👍
回复 0
1
提交
悬赏回复规则
1、悬赏期为24小时,从发布时间起算;
2、悬赏期内提问者如设置评论为“精选评论”,视为悬赏结束,该精选评论人将获得本题全部悬赏积分;
3、悬赏期内如提问者未设置“精选评论”,则前5位评论者平分悬赏积分(如仅有一位评论,该评论者获得50%悬赏积分);
4、悬赏积分会自动发放到生态圈账户中,请留意站内信通知。
知道了

距离打开宝箱还剩7

是否花费200积分补签?
确认
取消