我在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,因为还有一个命令在运行,请完成该命令,然后再试!
2楼
不清楚
回复
3楼
我用vc开发时,没有见到这种情况,
对vb,我不懂!
回复
4楼
都是高手啊!向你们学习!
回复
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
回复
6楼
;;;可根据下面的代码修改
(defun c:test()
(setq ss (ssget "x"))
(command "EXPORT" "c:\\123.wmf" ss "")
(princ)
)
回复
7楼
不好意思,真正的原因是Export的对象如果是wmf的话。要把图元对象加入到sSet选择集里面。
是Export的对象如果是dxf的话。楼主的代码就没问题。
也就是说sSet是空集。所以楼主会出现“正在运行..”可以打开监视窗口,监视sSet的值。
我也是刚学习。。很多不太懂。。lisp倒是比较熟一点点。
回复