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

[求助]VB与R14的问题

vb中怎么引用AUTOCAD 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对象<BR>Dim acaddocs As Object                                                                                                                                                                                                                                               '建立Document对象<BR>On Error Resume Next


Set acadapp = GetObject(, "autocad.application.14")                               '若AutoCad已启动 , 则直接得到<BR>If Err Then<BR>       Err.Clear<BR>       Set acadapp = CreateObject("autocad.application.14")       '若AutoCad未启动,则运行它<BR>       If Err Then<BR>               MsgBox Err.Description<BR>               Exit Function<BR>       End If<BR>End If<BR>MsgBox "Now running " + acadapp.Name + " version " + acadapp.Version<BR>Set acaddocs = acadapp.Documents                                                                                                                                                               '设acaddocs为当前图形文件


<BR>Dim dwgname As String<BR>dwgname = "C:\temp\temp.dwg"


If Dir(dwgname) &lt;&gt; "" Then<BR>       acaddocs.Open (dwgname)                                                                                                                                                                                                                       '打开一个CAD文件<BR>       MsgBox "有文件"<BR>       acadapp.Visible = True <BR>       Dim temp() As String<BR>       Dim signer As String<BR>       Dim time As String<BR>       <BR>       Dim insPoint(0 To 2) As Double                                                                                                                                                               '定义插入点<BR>       Dim textHeight As Double                                                                                                                                                                                                               '定义文本高度<BR>       Dim textStr As String                                                                                                                                                                                                                                       '定义文本字符<BR>       Dim textObj As Object                                                                                                                                                                                                                                       '定义文本对象<BR>       <BR>       insPoint(0) = -18990<BR>       insPoint(1) = 3424<BR>       insPoint(2) = 0<BR>       textHeight = height<BR>       textStr = "明经通道"<BR>       <BR>       Dim ts As Object                                                                                                                                                                                                                       '设置字体<BR>       Set ts = acaddocs(0).TextStyles.Add("option")<BR>       ts.SetFont "宋体", True, False, 0, 1<BR>       acaddocs(0).ActiveTextStyle = ts<BR>       <BR>       '创建文本对象<BR>       Set textObj = acaddocs(0).ModelSpace.AddText(textStr, insPoint, textHeight)<BR>       textObj.Update<BR>       textObj.StyleName = "option"<BR>       <BR>       acaddocs(0).SaveAs ("C:\temp\temp.dwg")<BR>        Else<BR>       MsgBox "没有此文件,请建文件,路径为:C:\temp\temp.dwg"<BR>       Exit Function<BR>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对象<BR>Dim acaddoc As Object                                                                                                                                                                                                                                                       '建立Document对象<BR>On Error Resume Next


Set acadapp = GetObject(, "autocad.application.14")                               '若AutoCad已启动 , 则直接得到<BR>If Err Then<BR>       Err.Clear<BR>       Set acadapp = CreateObject("autocad.application.14")       '若AutoCad未启动,则运行它<BR>       If Err Then<BR>               MsgBox Err.Description<BR>               Exit Function<BR>       End If<BR>End If<BR>MsgBox "Now running " + acadapp.Name + " version " + acadapp.Version<BR>Set acaddoc = acadapp.ActiveDocument                                                                                                                                                               '设acaddocs为当前图形文件


<BR>Dim dwgname As String<BR>dwgname = "C:\temp\temp.dwg"


If Dir(dwgname) &lt;&gt; "" Then<BR>       acaddoc.Open (dwgname)                                                                                                                                                                                                                       '打开一个CAD文件<BR>       MsgBox "有文件"<BR>       acadapp.Visible = True<BR>               <BR>       Dim temp() As String<BR>       Dim signer As String<BR>       Dim time As String<BR>       <BR>       Dim insPoint(0 To 2) As Double                                                                                                                                                               '定义插入点<BR>       Dim textHeight As Double                                                                                                                                                                                                               '定义文本高度<BR>       Dim textStr As String                                                                                                                                                                                                                                       '定义文本字符<BR>       Dim textObj As Object                                                                                                                                                                                                                                       '定义文本对象<BR>       <BR>       insPoint(0) = -18990<BR>       insPoint(1) = 3424<BR>       insPoint(2) = 0<BR>       textHeight = height<BR>       textStr = "明经通道"<BR>       <BR>       Dim ts As Object                                                                                                                                                                                                                       '设置字体<BR>       Set ts = acaddoc.TextStyles.Add("option")<BR>       ts.SetFont "宋体", True, False, 0, 1<BR>       acaddoc.ActiveTextStyle = ts<BR>       <BR>       '创建文本对象<BR>       Set textObj = acaddoc.ModelSpace.AddText(textStr, insPoint, textHeight)<BR>       textObj.Update<BR>       textObj.StyleName = "option"<BR>       <BR>       acaddoc.SaveAs ("C:\temp\temp.dwg")<BR>       'acadapp.Visible = True                                                                                                                                                                                                                       '使AutoCad可见<BR>Else<BR>       MsgBox "没有此文件,请建文件,路径为:C:\temp.dwg"<BR>       Exit Function<BR>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<BR>hztxt<BR>gbcbig


都是字体库吗?


打开文件时,都说找不到。


我是刚开始接触开发CAD的程序,不是很懂。


我能在哪里找到啊?
页: [1] 2
查看完整版本: [求助]VB与R14的问题