yyi 发表于 2005-2-11 20:15:00

[求助] 在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 AcadUtility


Set 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方法是这样用的啊,哪位老大指点一下下!

mccad 发表于 2005-2-12 15:44:00

对话框先隐藏。

yyi 发表于 2005-2-12 18:39:00

谢谢!我试试。

yyi 发表于 2005-2-13 14:12:00

还是不行,我这是VB程序,不是VBA。

雪山飞狐_lzh 发表于 2005-2-13 19:01:00

AcadUti是空值

yyi 发表于 2005-2-14 15:09:00

那么getpoint的功能怎么实现呢?

mccad 发表于 2005-2-14 18:01:00

Set AcadUti = AcadApp.Utility

yyi 发表于 2005-2-15 19:32:00

根据两位的提示,现在改了一下:<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里该怎么办?!

mccad 发表于 2005-2-15 23:14:00

怎么就没有仔细看我们的回答呢?<BR>这里指的是你那个 AcadUti 只是定义了,但没有赋值,所以这个变量是不能直接使用的。就好象你定义了<BR>Dim a as String<BR>一样,只是把a变量定义成字符串,而a变量是什么内容却需要另外赋值给它,如<BR>a="明经通道"<BR>则a的内容为“明经通道”。<BR>凡对象的赋值都必须用 Set ,而对于普通变量的赋值则不需要。

yyi 发表于 2005-2-17 19:58:00

已经搞定了!谢谢!不过老大有误,7楼:Set AcadUti = AcadDoc.Utility
页: [1]
查看完整版本: [求助] 在VB6里用GetPoint方法出现问题!