ddroyce 发表于 2004-12-22 19:20:00

[求助]VB与R14的问题

vb中怎么引用 R14的类库啊?
在AUTOCAD 2005环境中开发出来的应用程序在R14中运行不了啊
我该怎么配制,转移环境啊?
再此请教啊!:)

雪山飞狐_lzh 发表于 2004-12-22 20:56:00

后期绑定,不引用类型库,所有对象声明为Object

ddroyce 发表于 2004-12-23 10:47:00

后期怎么绑定啊?还是不大明白。
就把所有对象声明为Object就可以了吗?

ddroyce 发表于 2004-12-23 15:28:00

我还是想请教一下,用vb在R 14的环境下开发CAD和在2005的环境在一样吗?
现在在2005下开发的怎么转到R14下依然能用?急啊~~~
谢谢了!:)

雪山飞狐_lzh 发表于 2004-12-23 15:39:00

R14是单文档,2005是多文档,新建文件时会有不同,其他的应该差不多,
一定要不引用类型库,在GetObject或CreateObject时把版本号附上
比如2005是AutoCad.Application.16
R14是AutoCad.Application.14?(忘了,先试试吧)

ddroyce 发表于 2004-12-23 16:20:00

谢谢斑竹。
连接R 14没有问题。连上了。但是打不开文件啊?
在2005中我是这样写的:
Dim acadapp As Object                                                                                                                                                                                                                                                       '建立Application对象
Dim acaddocs As Object                                                                                                                                                                                                                                               '建立Document对象
On Error Resume Next
Set acadapp = GetObject(, "autocad.application.14")                               '若AutoCad已启动 , 则直接得到
If Err Then
       Err.Clear
       Set acadapp = CreateObject("autocad.application.14")       '若AutoCad未启动,则运行它
       If Err Then
               MsgBox Err.Description
               Exit Function
       End If
End If
MsgBox "Now running " + acadapp.Name + " version " + acadapp.Version
Set acaddocs = acadapp.Documents                                                                                                                                                               '设acaddocs为当前图形文件
Dim dwgname As String
dwgname = "C:\temp\temp.dwg"
If Dir(dwgname)"" Then
       acaddocs.Open (dwgname)                                                                                                                                                                                                                       '打开一个CAD文件
       MsgBox "有文件"
       acadapp.Visible = True
       Dim temp() As String
       Dim signer As String
       Dim time As String
       
       Dim insPoint(0 To 2) As Double                                                                                                                                                               '定义插入点
       Dim textHeight As Double                                                                                                                                                                                                               '定义文本高度
       Dim textStr As String                                                                                                                                                                                                                                       '定义文本字符
       Dim textObj As Object                                                                                                                                                                                                                                       '定义文本对象
       
       insPoint(0) = -18990
       insPoint(1) = 3424
       insPoint(2) = 0
       textHeight = height
       textStr = "乐筑天下"
       
       Dim ts As Object                                                                                                                                                                                                                       '设置字体
       Set ts = acaddocs(0).TextStyles.Add("option")
       ts.SetFont "宋体", True, False, 0, 1
       acaddocs(0).ActiveTextStyle = ts
       
       '创建文本对象
       Set textObj = acaddocs(0).ModelSpace.AddText(textStr, insPoint, textHeight)
       textObj.Update
       textObj.StyleName = "option"
       
       acaddocs(0).SaveAs ("C:\temp\temp.dwg")
        Else
       MsgBox "没有此文件,请建文件,路径为:C:\temp\temp.dwg"
       Exit Function
End If
cad可见后,什么都没有啊,里面不是temp.dwg文件啊?
我该怎么处理啊?

雪山飞狐_lzh 发表于 2004-12-23 16:22:00

试试
acadapp.ActiveDocument.open

ddroyce 发表于 2004-12-23 17:59:00

现在可以打开文件了,但是还是有一个问题啊,我修改后的代码如下:
Dim acadapp As Object                                                                                                                                                                                                                                                       '建立Application对象
Dim acaddoc As Object                                                                                                                                                                                                                                                       '建立Document对象
On Error Resume Next
Set acadapp = GetObject(, "autocad.application.14")                               '若AutoCad已启动 , 则直接得到
If Err Then
       Err.Clear
       Set acadapp = CreateObject("autocad.application.14")       '若AutoCad未启动,则运行它
       If Err Then
               MsgBox Err.Description
               Exit Function
       End If
End If
MsgBox "Now running " + acadapp.Name + " version " + acadapp.Version
Set acaddoc = acadapp.ActiveDocument                                                                                                                                                               '设acaddocs为当前图形文件
Dim dwgname As String
dwgname = "C:\temp\temp.dwg"
If Dir(dwgname)"" Then
       acaddoc.Open (dwgname)                                                                                                                                                                                                                       '打开一个CAD文件
       MsgBox "有文件"
       acadapp.Visible = True
               
       Dim temp() As String
       Dim signer As String
       Dim time As String
       
       Dim insPoint(0 To 2) As Double                                                                                                                                                               '定义插入点
       Dim textHeight As Double                                                                                                                                                                                                               '定义文本高度
       Dim textStr As String                                                                                                                                                                                                                                       '定义文本字符
       Dim textObj As Object                                                                                                                                                                                                                                       '定义文本对象
       
       insPoint(0) = -18990
       insPoint(1) = 3424
       insPoint(2) = 0
       textHeight = height
       textStr = "乐筑天下"
       
       Dim ts As Object                                                                                                                                                                                                                       '设置字体
       Set ts = acaddoc.TextStyles.Add("option")
       ts.SetFont "宋体", True, False, 0, 1
       acaddoc.ActiveTextStyle = ts
       
       '创建文本对象
       Set textObj = acaddoc.ModelSpace.AddText(textStr, insPoint, textHeight)
       textObj.Update
       textObj.StyleName = "option"
       
       acaddoc.SaveAs ("C:\temp\temp.dwg")
       'acadapp.Visible = True                                                                                                                                                                                                                       '使AutoCad可见
Else
       MsgBox "没有此文件,请建文件,路径为:C:\temp.dwg"
       Exit Function
End If
执行到打开文件后出现下面的情况:
出现一个对话框:Font not found: hztxt
我做的程序是在服务器上的,是不允许人工手动来选择对话框的。
我很疑惑,用vb在2005的环境下,打开文件可以后台执行这样一个过程,R14怎么不行啊?
我怎么解决啊?

雪山飞狐_lzh 发表于 2004-12-23 19:18:00

hztxt.shx在Font目录下么?

ddroyce 发表于 2004-12-23 20:51:00

HZFS
hztxt
gbcbig
都是字体库吗?
打开文件时,都说找不到。
我是刚开始接触开发CAD的程序,不是很懂。
我能在哪里找到啊?
页: [1]
查看完整版本: [求助]VB与R14的问题