tsimaros 发表于 2022-7-6 22:29:23

Vba问题

私有子GetPlais\u Click()
Dim tmpnt1作为变体,tmpnt2作为变体,tmpPnt1作为变体
Dim lole(0到2)为双精度,upri(0到2)为双精度
Dim returnobj作为AcadObject
FrmGrid3.隐藏
关于错误转到Eline
此图纸。公用事业GetEntity returnobj,tmpPnt1,“ðÝëëëëëëëëëëëëëëëëëëëëëë
如果returnobj的类型为IAcadPViewport,则
设置viewportObj=returnobj
视口对象。UCSIconOn=真
视口对象。UCSIconAtOrigin=True
视口对象。显示真实
Scal=1000/viewportObj。CustomScale’=1000/CDbl(cbScale.Text)
 
其他的
MsgBox“ViewPort!!!”,vbOKOnly,“Ó÷åäßççèèè
FrmGrid3.Show
出口接头
如果结束
lole(0)=视口对象。居中(0)-视口对象。宽度/2
lole(1)=视口对象。居中(1)-视口对象。高度/2
upri(0)=视口对象。居中(0)+视口对象。宽度/2
upri(1)=视口对象。居中(1)+视口对象。高度/2
PntUpLPap(0)=lole(0):PntDoLPap(0)=lole(0):PntUpRPap(0)=upri(0):PntDoRPap(0)=upri(0)
PntUpLPap(1)=upri(1):PntDoLPap(1)=lole(1):PntUpRPap(1)=upri(1):PntDoRPap(1)=lole(1)
tmpnt1=此图纸。公用事业平移坐标(lole、acPaperSpaceDCS、acDisplayDCS、False)
tmpnt1=此图纸。公用事业平移坐标(tmpnt1、acDisplayDCS、acWorld、False)
TxtDoLX。文本=格式(tmpnt1(0),“0.##0”):PntDoLmod(0)=tmpnt1(0)
TxtDoLY。文本=格式(tmpnt1(1),“0.##0”):PntDoLmod(1)=tmpnt1(1)
tmpnt1=此图纸。公用事业平移坐标(upri、acPaperSpaceDCS、acDisplayDCS、False)
tmpnt1=此图纸。公用事业平移坐标(tmpnt1、acDisplayDCS、acWorld、False)
TxTPRx。文本=格式(tmpnt1(0),“0.##0”):PntUpRmod(0)=tmpnt1(0)
TxtUpRY。文本=格式(tmpnt1(1),“0.##0”):PntUpRmod(1)=tmpnt1(1)
tmpnt1(0)=lole(0)
tmpnt1(1)=upri(1)
tmpnt1=此图纸。公用事业平移坐标(tmpnt1、acPaperSpaceDCS、acDisplayDCS、False)
tmpnt1=此图纸。公用事业平移坐标(tmpnt1、acDisplayDCS、acWorld、False)
TxTPLx。文本=格式(tmpnt1(0),“0.##0”):PntUpLmod(0)=tmpnt1(0)
TxtUpLY。文本=格式(tmpnt1(1),“0.##0”):PntUpLmod(1)=tmpnt1(1)
tmpnt1(0)=upri(0)
tmpnt1(1)=lole(1)
tmpnt1=此图纸。公用事业平移坐标(tmpnt1、acPaperSpaceDCS、acDisplayDCS、False)
tmpnt1=此图纸。公用事业平移坐标(tmpnt1、acDisplayDCS、acWorld、False)
TxtDoRX。文本=格式(tmpnt1(0),“0.##0”):PntDoRmod(1)=tmpnt1(0)
TxtDoRY。文本=格式(tmpnt1(1),“0.##0”):PntDoRmod(1)=tmpnt1(1)
 
Eline:
FrmGrid3.Show
末端接头
我无法理解这个问题!!!!

SLW210 发表于 2022-7-6 23:02:13

齐马罗斯,
 
请阅读代码发布指南并编辑您的帖子。

btraemoore 发表于 2022-7-6 23:16:18

你应该重做你的项目或给所有的模块代码。。。
 
Private Sub GetPlais_Click()
   'you have to dim these as open arrays, SEE OPEN ARRAY below
   Dim tmpnt1() As Variant
' where is this one??
   Dim tmpPnt1 As Variant
   ' YOUR NOT USING THIS ONE AT ALL
   tmpnt2 As Variant
   
   Dim lole(0 To 2) As Double, upri(0 To 2) As Double
   Dim returnobj As AcadObject
   FrmGrid3.Hide
   On Error GoTo Eline
   ThisDrawing.Utility.GetEntity returnobj, tmpPnt1, "ÅðÝëåîå ôï ViewPort ðïõ èá äçìéïõñãçèåß ï êÜíáâïò!"
   If TypeOf returnobj Is IAcadPViewport Then
       Set viewportObj = returnobj
       viewportObj.UCSIconOn = True
       viewportObj.UCSIconAtOrigin = True
       viewportObj.Display True
       Scal = 1000 / viewportObj.CustomScale '= 1000 / CDbl(cbScale.Text)
   Else
       MsgBox "ÄÝí åðÝëåîåò ViewPort!!!", vbOKOnly, "Ó÷åäßáóç êáíÜâïõ"
       FrmGrid3.Show
       Exit Sub
   End If
   
   lole(0) = viewportObj.Center(0) - viewportObj.Width / 2
   lole(1) = viewportObj.Center(1) - viewportObj.Height / 2
   
   upri(0) = viewportObj.Center(0) + viewportObj.Width / 2
   upri(1) = viewportObj.Center(1) + viewportObj.Height / 2
   
   ' ARE THESE GLOBAL?
   PntUpLPap(0) = lole(0): PntDoLPap(0) = lole(0): PntUpRPap(0) = upri(0): PntDoRPap(0) = upri(0)
   PntUpLPap(1) = upri(1): PntDoLPap(1) = lole(1): PntUpRPap(1) = upri(1): PntDoRPap(1) = lole(1)
   
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(lole, acPaperSpaceDCS, acDisplayDCS, False)
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(tmpnt1, acDisplayDCS, acWorld, False)
   
   TxtDoLX.Text = Format(tmpnt1(0), "0.##0"): PntDoLmod(0) = tmpnt1(0)
   TxtDoLY.Text = Format(tmpnt1(1), "0.##0"): PntDoLmod(1) = tmpnt1(1)
   
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(upri, acPaperSpaceDCS, acDisplayDCS, False)
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(tmpnt1, acDisplayDCS, acWorld, False)
   
   TxtUpRX.Text = Format(tmpnt1(0), "0.##0"): PntUpRmod(0) = tmpnt1(0)
   TxtUpRY.Text = Format(tmpnt1(1), "0.##0"): PntUpRmod(1) = tmpnt1(1)
   
   ' OPEN ARRAY:
   tmpnt1(0) = lole(0)
   tmpnt1(1) = upri(1)
   
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(tmpnt1, acPaperSpaceDCS, acDisplayDCS, False)
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(tmpnt1, acDisplayDCS, acWorld, False)
   
   TxtUpLX.Text = Format(tmpnt1(0), "0.##0"): PntUpLmod(0) = tmpnt1(0)
   TxtUpLY.Text = Format(tmpnt1(1), "0.##0"): PntUpLmod(1) = tmpnt1(1)
   
   tmpnt1(0) = upri(0)
   tmpnt1(1) = lole(1)
   
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(tmpnt1, acPaperSpaceDCS, acDisplayDCS, False)
   tmpnt1 = ThisDrawing.Utility.TranslateCoordinates(tmpnt1, acDisplayDCS, acWorld, False)
   
   TxtDoRX.Text = Format(tmpnt1(0), "0.##0"): PntDoRmod(1) = tmpnt1(0)
   TxtDoRY.Text = Format(tmpnt1(1), "0.##0"): PntDoRmod(1) = tmpnt1(1)

Eline:
FrmGrid3.Show
End Sub
I can 't understand the problem!!!!

BIGAL 发表于 2022-7-6 23:46:44

有什么问题?请描述一下
 
Dim tmpPnt1 As Variant, tmpnt2 As Variant
   ' YOUR NOT USING THIS ONE AT ALL
页: [1]
查看完整版本: Vba问题