如何在VB中加载DWG文件而不显式打开CAD?
leishisoft123
2007年03月08日 17:06:14
只看楼主

我在VB开发环境中每次加载DWG文件(OLE),CAD总是显式地打开了,尽管我已经设定其VISIBLE=False,并且更烦人的是,他还不能自己关闭,总提示一个命令还没有运行!请各位高手帮忙!我的代码:Set tmCAD = New AcadApplication Dim sSet As AcadSelectionSet tmCAD.Documents.Open "c:\123.dwg" tmCAD.Visible = False

我在VB开发环境中每次加载DWG文件(OLE),CAD总是显式地打开了,尽管我已经设定其VISIBLE=False,并且更烦人的是,他还不能自己关闭,总提示一个命令还没有运行!请各位高手帮忙!
我的代码:
Set tmCAD = New AcadApplication
Dim sSet As AcadSelectionSet
tmCAD.Documents.Open "c:\123.dwg"
tmCAD.Visible = False
Set sSet = tmCAD.ActiveDocument.SelectionSets.Add("TEST")
tmCAD.ActiveDocument.SendCommand "_ai_selall" & Chr(13)

tmCAD.ActiveDocument.Export app.Path & "tempcad", "WMF", sSet
tmCAD.ActiveDocument.SelectionSets.Item("TEST").Delete
Picture1.Picture = LoadPicture(app.Path & "tempcad.wmf")
tmCAD.Documents.Close
tmCAD.Quit
set tmCAD=nothing

手动关闭CAD时出现如下提示:
AutoCAD无法关闭 C:\123.dwg,因为还有一个命令在运行,请完成该命令,然后再试!
免费打赏
abs0071980
2007年03月22日 14:08:19
2楼
不清楚
回复
home3163
2007年04月07日 10:59:47
3楼
我用vc开发时,没有见到这种情况,
对vb,我不懂!
回复
wei326lzh08
2007年04月12日 01:52:12
4楼
都是高手啊!向你们学习!
回复
小萝卜的头
2007年04月21日 16:20:56
5楼
Sub Ch2_ConnectToAcad()
On Error Resume Next
’ 连接至 AutoCAD 应用程序
Dim tmCAD As AcadApplication
Set tmCAD = GetObject _
(, "AutoCAD.Application.16")
If Err Then
Err.Clear
Set tmCAD = CreateObject _
("AutoCAD.Application.16")
If Err Then
MsgBox Err.Descri ption
Exit Sub
End If
End If
’ 连接至 AutoCAD 图形
tmCAD.Visible = True ’ 隐式地打开
tmCAD.Documents.Open "c:\123.dwg"
Set sSet = tmCAD.ActiveDocument.SelectionSets.Add("TEST")
tmCAD.ActiveDocument.SendCommand "_ai_selall" & Chr(13)
tmCAD.ActiveDocument.Export app.Path & "tempcad", "WMF", sSet ’这句有问题
tmCAD.ActiveDocument.SelectionSets.Item("TEST").Delete
Picture1.Picture = LoadPicture(app.Path & "tempcad.wmf")
tmCAD.Documents.Close
tmCAD.Quit
Set tmCAD = Nothing
End Sub


回复
小萝卜的头
2007年04月21日 16:22:25
6楼

;;;可根据下面的代码修改
(defun c:test()
(setq ss (ssget "x"))
(command "EXPORT" "c:\\123.wmf" ss "")
(princ)
)
回复
小萝卜的头
2007年05月02日 22:15:57
7楼

不好意思,真正的原因是Export的对象如果是wmf的话。要把图元对象加入到sSet选择集里面。
是Export的对象如果是dxf的话。楼主的代码就没问题。
也就是说sSet是空集。所以楼主会出现“正在运行..”可以打开监视窗口,监视sSet的值。
我也是刚学习。。很多不太懂。。lisp倒是比较熟一点点。
回复

相关推荐

APP内打开