明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2308|回复: 2

实时错误13,类型不匹配”的错误,问解决办法

[复制链接]
发表于 2007-3-5 18:26:00 | 显示全部楼层 |阅读模式

我制作了一个程序,调用CAD2007运行正常,调用CAD2004时运行却出现“实时错误13,类型不匹配”的错误,问原因和解决方法

调试时提示修改代码如下红色部分所示:

Option Explicit
'Dim DotCAD As AcadApplication
Dim acadApp As Object
Dim acadDoc As Object
 

Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, _
    ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _
    ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)

Private Sub Check1_Click()  ' 窗口置前
  Dim myval
  myval = SetWindowPos(dot3.hwnd, -1, 0, 0, 0, 0, 3)
End Sub

(略去一段声明)
' 创建圆
Dim circleObj() As AcadCircle
ReDim circleObj(n) As AcadCircle
Dim center(0 To 2) As Double

Dim retObj() As Variant
ReDim retObj(n) As Variant
Dim m
Dim columns
Ad = (An - A0) / n

Dim i
For i = 0 To n
If i Mod 2 = 0 Then
center(0) = returnpnt(0)
Else
center(0) = returnpnt(0) + (A0 + i * Ad) / 2
End If
 center(1) = returnpnt(1) - (B0 * i + i * (i - 1) * Bd / 2)
 center(2) = returnpnt(2)
 
Set circleObj(i) = acadApp.ActiveDocument.ModelSpace.AddCircle(center, 0.5 * D0 + i * Rd)

Private Sub Form_Load()
On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application")
If Err Then End
End If
acadApp.Visible = True
Set acadDoc = acadApp.ActiveDocument

发表于 2007-3-6 12:36:00 | 显示全部楼层
不会是在执行 Set circleObj(i) = acadApp.ActiveDocument.ModelSpace.AddCircle(center, 0.5 * D0 + i * Rd) 语句之前, acadApp 还没有被赋与有效的值吧.
发表于 2007-3-7 09:13:00 | 显示全部楼层

2004版,好像是要把

GetObject("AutoCAD.Application")

CreateObject ("AutoCAD.Application")

改为

GetObject("AutoCAD.Application.16")

CreateObject ("AutoCAD.Application.16")

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-2-22 18:25 , Processed in 0.183591 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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