明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1544|回复: 5

我怎么调不出函数啊?(附代码)

[复制链接]
发表于 2005-9-29 17:09:00 | 显示全部楼层 |阅读模式

我式新手,请看下面代码:

Public Sub Command1_Click()
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
If Err Then
   Err.Clear
   Set AcadApp = CreateObject("AutoCAD.Application")
   If Err Then
      MsgBox ("不能运行AutoCAD2000,请检查是否安装了AutoCAD2000")
      Exit Sub
    End If
End If


Form1.Hide
AcadApp.Visible = True
Dim pt1(0 To 2) As Double
pt1(0) = 100#: pt1(1) = 100#: pt1(2) = 0#
Dim radius As Double
radius = 60#


Dim cirobj1 As AcadCircle

Set cirobj1 = Addcir(pt1, radius)


ZoomAll

End Sub

Public Function Addcir(ByVal pt As Variant, ByVal radius As Double) As AcadCircle

Dim cirobj As AcadCircle
Dim ptcen(0 To 2) As Double
ptcen(0) = pt(0): ptcen(1) = pt(1): ptcen(2) = pt(2)

Set cirobj = AcadApp.ActiveDocument.ModelSpace.AddCircle(ptcen, radius)
cirobj.Update
Addcir = cirobj

End Function

我是想打开CAD后调用Addcir函数画一个圆,可是怎么不对啊?好像ptcen的值赋不进去,我从立即窗口赋值,还是画不出圆,Addcir是从工具里添加进去的,请高手指点一下嘛,

发表于 2005-9-29 18:58:00 | 显示全部楼层
点要定义为variant, 不能定义为数组。
 楼主| 发表于 2005-9-29 22:05:00 | 显示全部楼层

怎么定义成Variant啊,我现在发现值已经赋进去了,但是执行Set cirobj = AcadApp.ActiveDocument.ModelSpace.AddCircle(ptcen, radius)时好像出了问题,开始ptcen,radius的值已经赋进去了,但执行这一句后又没有值了,麻烦高手试一下嘛

发表于 2005-9-30 17:01:00 | 显示全部楼层

对啊,ptcen必需定义为variant,不能直接定义为数组。

你试试看先将其定义为variant,然后用其getpoint,这时它会变成数组,再修改数组的值,再addcircle看看。

发表于 2005-9-30 20:52:00 | 显示全部楼层
整个程序没有什么大问题。
AcadApp有没有定义,可在最前面写上 Dim AcadApp As AcadApplication 试试。
另外,在你的函数中最后一个语句应为 Set Addcir = cirobj
还有,你那个函数AddCir有什么用,简直就是AddCircle一样,如果还是想写成函数,呵呵,那就写成这样吧:
  1. Public Function Addcir(ByVal pt As Variant, ByVal radius As Double) As AcadCircle
  2.     Set Addcir = AcadApp.ActiveDocument.ModelSpace.AddCircle(pt, radius)
  3.     Addcir.Update
  4. End Function
AddCircle方法中的点坐标,两种定义方法都可以。并不存在问题。
 楼主| 发表于 2005-10-3 15:50:00 | 显示全部楼层

谢谢各位,现在对了,现在我试了一下,是没有定义AcadApp为AcadApplication的原因,我这里主要是为了看怎么调函数,所以Addcir与VBA自己的Addcircle一样,因为在其他的一个程序中需要调函数,没有反影应,而将函数的代码不用函数形式写又是对的,我在去看看那个程序,谢谢各位,先走了哈

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

本版积分规则

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

GMT+8, 2024-11-27 10:36 , Processed in 0.152659 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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