matrix 发表于 2006-4-7 22:20:00

mccad进来看一下,你的程序有点不懂

mccad你好,我在论坛上看到你回答在VBA中打开有预览的对话框,你的回答如下:
在VBA没有直接的方法这样做。但是,你可以通过LISP和之间的通讯来完成。在LISP中有一个名叫getfiled的函数,它可以预览DWG并且与AutoCAD的"Open File Dialog"表现一样。
    首先,通过SendCommand方法发送getfiled表达式给AutoCAD命令行并且定义一个系统变量USERS1以保存文件名。然后,你可以用GetVariable方法获得这个系统变量。最后,象使用其它任何变量一样使用它。
Public Sub OpenDialog()
Dim fileName As String
ThisDrawing.SendCommand "(setvar " & """users1""" & "(getfiled " & """Select a DWG File""" & """c:/program files/acad2000/""" & """dwg""" & "8)) "
fileName = ThisDrawing.GetVariable("users1")
MsgBox "You have selected " & fileName & "!!!", , "File Message"
End Sub
我运行了一下,可以运行,但就是选择了文件之后没法打开,且一直在选择文件对话框里面,请你看看,
再者想请问一下,你的sendcommand里面的代码都是代表什么意思,
我的编程代码是这样的,好像也可以实现有图片显示的打开对话框啊,你看一下,谢谢
UserForm1.Hide
ThisDrawing.SendCommand "open"
ThisDrawing.SendCommand " chr(13)"
UserForm1.show
好像也行的

matrix 发表于 2006-4-7 22:30:00

不好意思,没看到你在另外一个页面里回答了,
我运行了,出来一个对话框,但是点打开图片时不能加载图片,一直让我打开,命令行提示为
命令: (setvar "users1"(getfiled "Select a DWG File""c:/program
files/acad2000/""dwg"8)) ; 错误: AutoCAD 变量设置被拒绝: "users1" nil
好像只有点取消才能退出,不知道为什么,请解答一下,谢谢

mccad 发表于 2006-4-8 06:21:00

这段代码只是用于选择文件,把文件名和路径传递给系统变量users1,而不是用于打开文件。
而你前面的代码open是直接调用AutoCAD的命令打开文件。
页: [1]
查看完整版本: mccad进来看一下,你的程序有点不懂