[求助] 在VB6里用GetPoint方法出现问题!
小弟用VB6写了一个插入图块的程序,其中片断如下:<BR>Private Sub Cmdok_Click()<BR>Dim Ipt As Variant<BR>Dim Blk As String<BR>Dim BlkRef As AcadBlockReference<BR>Dim AcadUti As AcadUtilitySet AcadApp = GetObject(, "autocad.application.16")<BR>Set AcadDoc = AcadApp.ActiveDocument<BR>Set AcadMoS = AcadDoc.ModelSpace
On Error Resume Next<BR>Ipt = AcadUti.GetPoint(, "给出插入点: ")<BR> If Err Then<BR> MsgBox "错误!"<BR> End<BR> End If
Blk = "d:\123\456.dwg"<BR>Set BlkRef = AcadMoS.InsertBlock(Ipt, Blk, 1#, 1#, 1#, 0)<BR> If Err Then<BR> MsgBox "没有找到图块文件!"<BR> Exit Sub<BR> End If<BR>……<BR>End Sub
问题是执行到 Ipt = AcadUti.GetPoint(, "给出插入点: ")时总是出错,进行不下去了,在VBA里GetPoint方法是这样用的啊,哪位老大指点一下下! 对话框先隐藏。 谢谢!我试试。 还是不行,我这是VB程序,不是VBA。 AcadUti是空值 那么getpoint的功能怎么实现呢? Set AcadUti = AcadApp.Utility 根据两位的提示,现在改了一下:<BR>Private Sub Cmdok_Click()<BR>Dim Ipt(0 To 2) As Double<BR>Dim Blk As String<BR>Dim BlkRef As AcadBlockReference<BR>Dim AcadUti As AcadUtility<BR>Dim Tmpdata<BR>On Error Resume Next
Set AcadApp = GetObject(, "autocad.application.16")<BR>Set AcadDoc = AcadApp.ActiveDocument<BR>Set AcadMoS = AcadDoc.ModelSpace
Set Tmpdata = AcadUti.GetPoint(, "给出插入点: ")<BR>Debug.Print Tmpdata
Blk = "d:\123\456.dwg"<BR>Set BlkRef = AcadMoS.InsertBlock(Ipt, Blk, 1#, 1#, 1#, 0)<BR>……<BR>End Sub
原来要用Set,呵呵,GetPoint方法不再出错了。但是正如lzh741206所说,Tmpdata是空值,那么我要把GetPoint得到的点用到InsertBlock里该怎么办?! 怎么就没有仔细看我们的回答呢?<BR>这里指的是你那个 AcadUti 只是定义了,但没有赋值,所以这个变量是不能直接使用的。就好象你定义了<BR>Dim a as String<BR>一样,只是把a变量定义成字符串,而a变量是什么内容却需要另外赋值给它,如<BR>a="明经通道"<BR>则a的内容为“明经通道”。<BR>凡对象的赋值都必须用 Set ,而对于普通变量的赋值则不需要。 已经搞定了!谢谢!不过老大有误,7楼:Set AcadUti = AcadDoc.Utility
页:
[1]